<widget name="green" position="140,0" size="140,40" backgroundColor="green" halign="center" valign="center" font="Regular;21" />
<widget name="yellow" position="280,0" size="140,40" backgroundColor="yellow" halign="center" valign="center" font="Regular;21" />
<widget name="blue" position="420,0" size="140,40" backgroundColor="blue" halign="center" valign="center" font="Regular;21" />
- <widget name="serviceslist" position="0,40" size="280,360" />
- <widget name="alternativeslist" position="280,40" size="280,360" selectionDisabled="1" />
+ <widget name="serviceslist" position="0,40" size="280,360" scrollbarMode="showOnDemand" />
+ <widget name="alternativeslist" position="280,40" size="280,360" selectionDisabled="1" scrollbarMode="showOnDemand" />
</screen>"""
def __init__(self, session):
self.skin = AlternativeZapping.skin
def greenKey(self):
self.session.openWithCallback(self.finishedChannelSelection, SimpleChannelSelection, _("Select reference service"))
- def finishedChannelSelection(self, args):
- serviceString = str(ServiceReference(args))
- if not self.alternatives.has_key(serviceString):
- self.alternatives[serviceString] = []
- self.updateServices()
- self.selectService(serviceString)
- self.updateAlternatives()
+ def finishedChannelSelection(self, *args):
+ if len(args):
+ serviceString = str(ServiceReference(args))
+ if not self.alternatives.has_key(serviceString):
+ self.alternatives[serviceString] = []
+ self.updateServices()
+ self.selectService(serviceString)
+ self.updateAlternatives()
def yellowKey(self):
if len(self.serviceslist) > 0:
pass
-oldPlayService = NavigationInstance.instance.playService
+oldPlayService = None
from Components.PerServiceDisplay import PerServiceDisplay
#print "Alternatives: No playable alternative found!"
-servicechanged = ServiceChanged(NavigationInstance.instance)
+servicechanged = None
def playService(self, ref):
#print "--------------------Alternatives: trying to play service", str(ServiceReference(ref))
- servicechanged.lastPlayAction = str(ServiceReference(ref))
+ if ref is not None:
+ servicechanged.lastPlayAction = str(ServiceReference(ref))
servicechanged.nextPlayTry = 0
result = oldPlayService(ref)
-
return result
-def autostart(reason):
+def sessionstart(reason, session, **kwargs):
if reason == 0:
try:
loadAlternatives()
- except:
+ except: # FIXME, THIS IS ILLEGAL CODE AND WILL BE PROSECUTED!
pass
- NavigationInstance.instance.playService = type(NavigationInstance.instance.playService)(playService, NavigationInstance, Navigation)
+ # attach to this sessions navigation instance.
+ global oldPlayService, servicechanged
+ oldPlayService = session.nav.playService
+ session.nav.playService = type(session.nav.playService)(playService, NavigationInstance, Navigation)
+ servicechanged = ServiceChanged(session.nav)
-def AlternativeZappingSetup(session):
+def AlternativeZappingSetup(session, **kwargs):
session.open(AlternativeZapping)
-def Plugins():
- return [PluginDescriptor(where = PluginDescriptor.WHERE_AUTOSTART, fnc = autostart),
+def Plugins(**kwargs):
+ return [PluginDescriptor(where = PluginDescriptor.WHERE_SESSIONSTART, fnc = sessionstart),
PluginDescriptor(name="Alternative services setup" , description="Defines alternatives for services.", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=AlternativeZappingSetup)]