aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Screens
diff options
context:
space:
mode:
authorFraxinas <andreas.frisch@multimedia-labs.de>2010-05-26 11:33:11 +0200
committerghost <andreas.monzner@multimedia-labs.de>2010-10-06 23:29:55 +0200
commit71dcc2c21cb3488861444e6f4e82a25b77df70ed (patch)
tree8ce18a71cff017332d966343db8aaa545946ad1d /lib/python/Screens
parent2afff9a1e6fd80a1dce00ba861b50d72a1541f88 (diff)
downloadenigma2-71dcc2c21cb3488861444e6f4e82a25b77df70ed.tar.gz
enigma2-71dcc2c21cb3488861444e6f4e82a25b77df70ed.zip
fix empty streams list crash, correctly show/hide color key buttons, re-implement plugin-hook for blue key, fix possible exit crash
Diffstat (limited to 'lib/python/Screens')
-rw-r--r--lib/python/Screens/AudioSelection.py87
1 files changed, 52 insertions, 35 deletions
diff --git a/lib/python/Screens/AudioSelection.py b/lib/python/Screens/AudioSelection.py
index a11127cb..2cae1de9 100644
--- a/lib/python/Screens/AudioSelection.py
+++ b/lib/python/Screens/AudioSelection.py
@@ -73,7 +73,7 @@ class AudioSelection(Screen, ConfigListScreen):
self.settings.downmix = ConfigOnOff(default=config.av.downmix_ac3.value)
self.settings.downmix.addNotifier(self.changeAC3Downmix, initial_call = False)
conflist.append(getConfigListEntry(_("AC3 downmix"), self.settings.downmix))
- self["key_red"] = Boolean(True)
+ self["key_red"].setBoolean(True)
if n > 0:
self.audioChannel = service.audioChannel()
@@ -82,7 +82,7 @@ class AudioSelection(Screen, ConfigListScreen):
self.settings.channelmode = ConfigSelection(choices = choicelist, default = str(self.audioChannel.getCurrentChannel()))
self.settings.channelmode.addNotifier(self.changeMode, initial_call = False)
conflist.append(getConfigListEntry(_("Channel"), self.settings.channelmode))
- self["key_green"] = Boolean(True)
+ self["key_green"].setBoolean(True)
selectedAudio = self.audioTracks.getCurrentTrack()
print "selectedAudio:", selectedAudio
@@ -113,33 +113,17 @@ class AudioSelection(Screen, ConfigListScreen):
streams.append((x, "", number, description, language, selected))
- #if hasattr(self, "runPlugin"):
- #class PluginCaller:
- #def __init__(self, fnc, *args):
- #self.fnc = fnc
- #self.args = args
- #def __call__(self, *args, **kwargs):
- #self.fnc(*self.args)
-
- #Plugins = [ (p.name, PluginCaller(self.runPlugin, p)) for p in plugins.getPlugins(where = PluginDescriptor.WHERE_AUDIOMENU) ]
-
- #for p in Plugins:
- #selection += 1
- #flist.append((p[0], "CALLFUNC", p[1]))
- #if availableKeys:
- #usedKeys.append(availableKeys[0])
- #del availableKeys[0]
- #else:
- #usedKeys.append("")
else:
- streams = [(None, "", "", _("none"), "")]
+ streams = []
elif self.settings.menupage.getValue() == "subtitles":
self.setTitle(_("Subtitle selection"))
self.settings.dummy = ConfigNothing()
conflist.append(getConfigListEntry("", self.settings.dummy))
+ self["key_red"].setBoolean(False)
conflist.append(getConfigListEntry("", self.settings.dummy))
+ self["key_green"].setBoolean(False)
if self.subtitlesEnabled():
sel = self.infobar.selected_subtitle
@@ -149,7 +133,7 @@ class AudioSelection(Screen, ConfigListScreen):
idx = 0
subtitlelist = self.getSubtitleList()
-
+
if len(subtitlelist):
for x in subtitlelist:
number = str(x[1])
@@ -183,14 +167,39 @@ class AudioSelection(Screen, ConfigListScreen):
idx += 1
else:
- streams = [(None, "", "", _("none"), "")]
+ streams = []
conflist.append(getConfigListEntry(_("Menu"), self.settings.menupage))
+
+ from Components.PluginComponent import plugins
+ from Plugins.Plugin import PluginDescriptor
+
+ if hasattr(self.infobar, "runPlugin"):
+ class PluginCaller:
+ def __init__(self, fnc, *args):
+ self.fnc = fnc
+ self.args = args
+ def __call__(self, *args, **kwargs):
+ self.fnc(*self.args)
+
+ Plugins = [ (p.name, PluginCaller(self.infobar.runPlugin, p)) for p in plugins.getPlugins(where = PluginDescriptor.WHERE_AUDIOMENU) ]
+
+ print "Plugins", Plugins
+
+ self.settings.dummy = ConfigNothing()
+ if len(Plugins):
+ self["key_blue"].setBoolean(True)
+ conflist.append(getConfigListEntry(Plugins[0][0], self.settings.dummy))
+ self.plugincallfunc = Plugins[0][1]
+
self["config"].list = conflist
self["config"].l.setList(conflist)
+ print "setting self[streams].list:", streams
self["streams"].list = streams
+ print "setting self[streams].setIndex:", selectedidx
self["streams"].setIndex(selectedidx)
+ print "debug1"
def __updatedInfo(self):
self.fillList()
@@ -237,27 +246,35 @@ class AudioSelection(Screen, ConfigListScreen):
elif self.focus == FOCUS_STREAMS:
self["streams"].setIndex(0)
- def keyRight(self):
- if self.focus == FOCUS_CONFIG:
- ConfigListScreen.keyRight(self)
- elif self.focus == FOCUS_STREAMS and self["streams"].count():
+ def keyRight(self, config = False):
+ if config or self.focus == FOCUS_CONFIG:
+ if self["config"].getCurrentIndex() < 3:
+ ConfigListScreen.keyRight(self)
+ elif hasattr(self, "plugincallfunc"):
+ self.plugincallfunc()
+ if self.focus == FOCUS_STREAMS and self["streams"].count():
self["streams"].setIndex(self["streams"].count()-1)
def keyRed(self):
- self.colorkey(0)
+ if self["key_red"].getBoolean():
+ self.colorkey(0)
def keyGreen(self):
- self.colorkey(1)
+ if self["key_green"].getBoolean():
+ self.colorkey(1)
def keyYellow(self):
- self.colorkey(2)
-
+ if self["key_yellow"].getBoolean():
+ self.colorkey(2)
+
def keyBlue(self):
- pass
-
+ if self["key_blue"].getBoolean():
+ print "colorkey(3)"
+ self.colorkey(3)
+
def colorkey(self, idx):
self["config"].setCurrentIndex(idx)
- ConfigListScreen.keyRight(self)
+ self.keyRight(True)
def keyUp(self):
print "[keyUp]", self["streams"].getIndex()
@@ -305,4 +322,4 @@ class AudioSelection(Screen, ConfigListScreen):
self.keyRight()
def cancel(self):
- self.close()
+ self.close(0)