X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FAudioSelection.py;h=4c6896201d5e04aeb6d4b456761c1b10db7788e2;hb=0a8ef296e0417751ab82715d1e9d8c538aa3a1a5;hp=b4ee929dac125a9d0a5b1107e23029fc3462e01d;hpb=6e09f26f57500f8acfe5bcf28faa930849d457a2;p=vuplus_dvbapp diff --git a/lib/python/Screens/AudioSelection.py b/lib/python/Screens/AudioSelection.py index b4ee929..4c68962 100644 --- a/lib/python/Screens/AudioSelection.py +++ b/lib/python/Screens/AudioSelection.py @@ -51,24 +51,23 @@ class AudioSelection(Screen, ConfigListScreen): self.settings = ConfigSubsection() choicelist = [(PAGE_AUDIO,_("audio tracks")), (PAGE_SUBTITLES,_("Subtitles"))] self.settings.menupage = ConfigSelection(choices = choicelist, default=page) - self.settings.menupage.addNotifier(self.fillList) self.onLayoutFinish.append(self.__layoutFinished) def __layoutFinished(self): self["config"].instance.setSelectionEnable(False) self.focus = FOCUS_STREAMS + self.settings.menupage.addNotifier(self.fillList) def fillList(self, arg=None): streams = [] conflist = [] selectedidx = 0 - - service = self.session.nav.getCurrentService() - self.audioTracks = audio = service and service.audioTracks() - n = audio and audio.getNumberOfTracks() or 0 - + if self.settings.menupage.getValue() == PAGE_AUDIO: self.setTitle(_("Select audio track")) + service = self.session.nav.getCurrentService() + self.audioTracks = audio = service and service.audioTracks() + n = audio and audio.getNumberOfTracks() or 0 if SystemInfo["CanDownmixAC3"]: self.settings.downmix = ConfigOnOff(default=config.av.downmix_ac3.value) self.settings.downmix.addNotifier(self.changeAC3Downmix, initial_call = False) @@ -77,11 +76,15 @@ class AudioSelection(Screen, ConfigListScreen): if n > 0: self.audioChannel = service.audioChannel() - choicelist = [("0",_("left")), ("1",_("stereo")), ("2", _("right"))] - 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"].setBoolean(True) + if self.audioChannel: + choicelist = [("0",_("left")), ("1",_("stereo")), ("2", _("right"))] + 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"].setBoolean(True) + else: + conflist.append(('',)) + self["key_green"].setBoolean(False) selectedAudio = self.audioTracks.getCurrentTrack() for x in range(n): number = str(x) @@ -110,8 +113,6 @@ class AudioSelection(Screen, ConfigListScreen): streams.append((x, "", number, description, language, selected)) else: - conflist.append(getConfigListEntry("", self.settings.dummy)) - self["key_green"].setBoolean(False) streams = [] conflist.append(('',)) self["key_green"].setBoolean(False) @@ -139,7 +140,7 @@ class AudioSelection(Screen, ConfigListScreen): language = _("") selected = "" - if sel and x[:4] == sel[:4]: + if sel and x == sel: selected = _("Running") selectedidx = idx @@ -158,7 +159,7 @@ class AudioSelection(Screen, ConfigListScreen): number = "%x%02x" % (x[3],x[2]) elif x[0] == 2: - types = (_(""), "UTF-8 text", "SSA / AAS", ".SRT", "VOB") + types = (_(""), "UTF-8 text", "SSA", "AAS", ".SRT file", "VOB", "PGS (unsupported)") description = types[x[2]] streams.append((x, "", number, description, language, selected)) @@ -187,7 +188,7 @@ class AudioSelection(Screen, ConfigListScreen): conflist.append(getConfigListEntry(Plugins[0][0], ConfigNothing())) self.plugincallfunc = Plugins[0][1] if len(Plugins) > 1: - print "these plugins are installed but not displayed in the dialog box:", Plugins[1:] + print "plugin(s) installed but not displayed in the dialog box:", Plugins[1:] self["config"].list = conflist self["config"].l.setList(conflist) @@ -221,7 +222,7 @@ class AudioSelection(Screen, ConfigListScreen): config.av.downmix_ac3.save() def changeMode(self, mode): - if mode is not None: + if mode is not None and self.audioChannel: self.audioChannel.selectChannel(int(mode.getValue())) def changeAudio(self, audio): @@ -303,7 +304,7 @@ class AudioSelection(Screen, ConfigListScreen): else: self.enableSubtitle(cur[0]) self.__updatedInfo() - #self.close() + self.close(0) elif self.focus == FOCUS_CONFIG: self.keyRight() @@ -312,4 +313,5 @@ class AudioSelection(Screen, ConfigListScreen): class SubtitleSelection(AudioSelection): def __init__(self, session, infobar=None): - AudioSelection.__init__(self, session, infobar, PAGE_SUBTITLES) + AudioSelection.__init__(self, session, infobar, page=PAGE_SUBTITLES) + self.skinName = ["AudioSelection"]