Plugins/Videomode/VideoHardware.py: remove DVI-PC when not DVI-PC modes are usable
[enigma2.git] / lib / python / Screens / ChannelSelection.py
index bae8f7ded05f19ee1b4b35b16e45483d4dfcbcbf..5d78ec77c433819f6c5126fc1319c594c9116624 100644 (file)
@@ -317,11 +317,24 @@ class ChannelSelectionEPG:
 
        def showEPGList(self):
                ref=self.getCurrentSelection()
-               ptr=eEPGCache.getInstance()
-               if ptr.startTimeQuery(ref) != -1:
-                       self.session.open(EPGSelection, ref)
-               else:
-                       print 'no epg for service', ref.toString()
+               if ref:
+                       self.savedService = ref
+                       self.session.openWithCallback(self.SingleServiceEPGClosed, EPGSelection, ref, serviceChangeCB=self.changeServiceCB)
+
+       def SingleServiceEPGClosed(self, ret=False):
+               self.setCurrentSelection(self.savedService)
+
+       def changeServiceCB(self, direction, epg):
+               beg = self.getCurrentSelection()
+               while True:
+                       if direction > 0:
+                               self.moveDown()
+                       else:
+                               self.moveUp()
+                       cur = self.getCurrentSelection()
+                       if cur == beg or not (cur.flags & eServiceReference.isMarker):
+                               break
+               epg.setService(ServiceReference(self.getCurrentSelection()))
 
 class ChannelSelectionEdit:
        def __init__(self):
@@ -640,9 +653,18 @@ class ChannelSelectionEdit:
 MODE_TV = 0
 MODE_RADIO = 1
 
-# this makes it much simple to implement a selectable radio or tv mode :)
-service_types_tv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) || (type == 134)'
-service_types_radio = '1:7:2:0:0:0:0:0:0:0:(type == 2)'
+# type 1 = digital television service
+# type 4 = nvod reference service (NYI)
+# type 17 = MPEG-2 HD digital television service
+# type 22 = advanced codec SD digital television
+# type 24 = advanced codec SD NVOD reference service (NYI)
+# type 25 = advanced codec HD digital television
+# type 27 = advanced codec HD NVOD reference service (NYI)
+# type 2 = digital radio sound service
+# type 10 = advanced codec digital radio sound service
+
+service_types_tv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 22) || (type == 25) || (type == 134) || (type == 195)'
+service_types_radio = '1:7:2:0:0:0:0:0:0:0:(type == 2) || (type == 10)'
 
 class ChannelSelectionBase(Screen):
        def __init__(self, session):