remove info info
[enigma2.git] / lib / python / Screens / InfoBarGenerics.py
index e3fa423f818df4c362242b18a1887955f9fcf93c..aac470bf0a1fd811b81af20fc85400f47a439545 100644 (file)
@@ -292,7 +292,7 @@ class InfoBarNumberZap:
                        bouquetlist = serviceHandler.list(bouquet)
                        if not bouquetlist is None:
                                while number:
-                                       bouquet = bouquetlist.getNext()
+                                       bouquet = self.servicelist.appendDVBTypes(bouquetlist.getNext())
                                        if not bouquet.valid(): #check end of list
                                                break
                                        if ((bouquet.flags & eServiceReference.flagDirectory) != eServiceReference.flagDirectory):
@@ -374,6 +374,39 @@ class InfoBarEPG:
                else: #no bouquets so we open single epg
                        self.openSingleEPGSelector(self.session.nav.getCurrentlyPlayingServiceReference())
 
+       def bouquetEPGCallback(self, info):
+               if info:
+                       self.openSingleServiceEPG()
+       
+       def singleEPGCallback(self, info):
+               if info:
+                       self.showEPGList()
+                       
+       def openEventView(self):
+               try:
+                       self.epglist = [ ]
+                       service = self.session.nav.getCurrentService()
+                       info = service.info()
+                       ptr=info.getEvent(0)
+                       if ptr:
+                               self.epglist.append(ptr)
+                       ptr=info.getEvent(1)
+                       if ptr:
+                               self.epglist.append(ptr)
+                       if len(self.epglist) > 0:
+                               self.session.open(EventView, self.epglist[0], ServiceReference(ref), self.eventViewCallback)
+               except:
+                       pass
+                       
+       def openSingleServiceEPG(self):
+               ref=self.session.nav.getCurrentlyPlayingServiceReference()
+               ptr=eEPGCache.getInstance()
+               if ptr.startTimeQuery(ref) != -1:
+                       self.session.openWithCallback(self.singleEPGCallback, EPGSelection, ref)
+               else: # try to show now/next
+                       print 'no epg for service', ref.toString()
+
+       
        def openBouquetEPG(self, bouquet):
                ptr=eEPGCache.getInstance()
                services = [ ]
@@ -387,7 +420,7 @@ class InfoBarEPG:
                                        continue
                                services.append(ServiceReference(service))
                if len(services):
-                       self.session.open(EPGSelection, services)
+                       self.session.openWithCallback(self.bouquetEPGCallback, EPGSelection, services)
 
        def openSingleEPGSelector(self, ref):
                ptr=eEPGCache.getInstance()