<item text="Network setup" entryID="network_setup">self.openSetup("network")</item>-->
<!--<item text="CI"><screen module="Ci" screen="CiSelection" /></item>-->
<!--<item text="Radio"><code>print "radio mode"</code></item>-->
- <item level="0" text="Subtitles" entryID="subtitle_selection" weight="40"><screen module="Subtitles" screen="Subtitles" /></item>
<item level="0" text="Timer" entryID="timer_edit"><screen module="TimerEdit" screen="TimerEditList" /></item>
<item level="1" text="VCR scart" entryID="scart_switch" requires="ScartSwitch"><code>self.session.scart.VCRSbChanged(3)</code></item>
<widget name="statuspic" pixmaps="skin_default/buttons/button_green.png,skin_default/buttons/button_green_off.png" position="130,380" zPosition="10" size="15,16" transparent="1" alphatest="on"/>
</screen>
<!-- Audio selection -->
- <screen name="AudioSelection" position="center,center" size="300,170" title="Audio">
- <widget name="tracks" position="20,10" size="260,150" scrollbarMode="showOnDemand" />
+ <screen name="AudioSelection" position="center,center" size="420,330" title="Audio">
+ <widget name="config" position="50,10" size="360,110" scrollbarMode="showOnDemand" />
+
+ <widget source="key_red" render="Pixmap" pixmap="skin_default/buttons/key_red.png" position="10,10" size="35,25" alphatest="on">
+ <convert type="ConditionalShowHide" />
+ </widget>
+ <widget source="key_green" render="Pixmap" pixmap="skin_default/buttons/key_green.png" position="10,35" size="35,25" alphatest="on">
+ <convert type="ConditionalShowHide" />
+ </widget>
+ <widget source="key_yellow" render="Pixmap" pixmap="skin_default/buttons/key_yellow.png" position="10,60" size="35,25" alphatest="on">
+ <convert type="ConditionalShowHide" />
+ </widget>
+ <widget source="key_blue" render="Pixmap" pixmap="skin_default/buttons/key_blue.png" position="10,85" size="35,25" alphatest="on">
+ <convert type="ConditionalShowHide" />
+ </widget>
+
+ <ePixmap pixmap="skin_default/div-h.png" position="10,112" zPosition="10" size="360,2" />
+
+ <widget source="streams" render="Listbox" scrollbarMode="showOnDemand" position="10,120" size="400,200" zPosition="3" transparent="1" >
+ <convert type="TemplatedMultiContent">
+ {"templates":
+ {"default": (25, [
+ MultiContentEntryText(pos = (0, 0), size = (35, 25), font = 0, flags = RT_HALIGN_LEFT, text = 1), # key,
+ MultiContentEntryText(pos = (40, 0), size = (55, 25), font = 0, flags = RT_HALIGN_LEFT, text = 2), # number,
+ MultiContentEntryText(pos = (100, 0), size = (80, 25), font = 0, flags = RT_HALIGN_LEFT, text = 3), # description,
+ MultiContentEntryText(pos = (190, 0), size = (140, 25), font = 0, flags = RT_HALIGN_LEFT, text = 4), # language,
+ MultiContentEntryText(pos = (340, 4), size = (60, 25), font = 1, flags = RT_HALIGN_RIGHT, text = 5), # selection,
+ ], True, "showNever"),
+ "notselected": (25, [
+ MultiContentEntryText(pos = (0, 0), size = (35, 25), font = 0, flags = RT_HALIGN_LEFT, text = 1), # key,
+ MultiContentEntryText(pos = (40, 0), size = (55, 25), font = 0, flags = RT_HALIGN_LEFT, text = 2), # number,
+ MultiContentEntryText(pos = (100, 0), size = (80, 25), font = 0, flags = RT_HALIGN_LEFT, text = 3), # description,
+ MultiContentEntryText(pos = (190, 0), size = (140, 25), font = 0, flags = RT_HALIGN_LEFT, text = 4), # language,
+ MultiContentEntryText(pos = (340, 4), size = (60, 25), font = 1, flags = RT_HALIGN_RIGHT, text = 5), # selection,
+ ], False, "showNever")
+ },
+ "fonts": [gFont("Regular", 20), gFont("Regular", 16)],
+ "itemHeight": 25
+ }
+ </convert>
+ </widget>
</screen>
<!-- Bouquet selector -->
<screen name="BouquetSelector" position="center,center" size="300,240" title="Choose bouquet">
</widget>
</screen>
<!-- Subtitle selection -->
- <screen name="Subtitles" position="center,center" size="380,285" title="Subtitle selection">
+<!-- <screen name="Subtitles" position="center,center" size="380,285" title="Subtitle selection">
<widget name="config" position="10,10" zPosition="1" size="360,275" scrollbarMode="showOnDemand" />
- </screen>
+ </screen>-->
<!-- Subtitle area -->
<screen name="SubtitleDisplay" position="0,0" size="720,576" zPosition="-1" flags="wfNoBorder" backgroundColor="transparent" />
<!-- TextBox -->
--- /dev/null
+from Screen import Screen
+from Components.ServiceEventTracker import ServiceEventTracker
+from Components.ActionMap import ActionMap
+from Components.ConfigList import ConfigListScreen
+from Components.ChoiceList import ChoiceList, ChoiceEntryComponent
+from Components.config import config, ConfigSubsection, getConfigListEntry, ConfigNothing, ConfigSelection, ConfigOnOff
+from Components.MultiContent import MultiContentEntryText
+from Components.Sources.List import List
+from Components.Sources.Boolean import Boolean
+from Components.SystemInfo import SystemInfo
+
+from enigma import iPlayableService
+
+from Tools.ISO639 import LanguageCodes
+from Tools.BoundFunction import boundFunction
+FOCUS_CONFIG, FOCUS_STREAMS = range(2)
+
+class AudioSelection(Screen, ConfigListScreen):
+ def __init__(self, session, infobar=None):
+ Screen.__init__(self, session)
+
+ self["streams"] = List([])
+ self["key_red"] = Boolean(False)
+ self["key_green"] = Boolean(False)
+ self["key_yellow"] = Boolean(True)
+ self["key_blue"] = Boolean(False)
+
+ ConfigListScreen.__init__(self, [])
+ self.infobar = infobar or self.session.infobar
+
+ self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
+ {
+ iPlayableService.evUpdatedInfo: self.__updatedInfo
+ })
+ self.cached_subtitle_checked = False
+ self.__selected_subtitle = None
+
+ self["actions"] = ActionMap(["ColorActions", "SetupActions", "DirectionActions"],
+ {
+ "red": self.keyRed,
+ "green": self.keyGreen,
+ "yellow": self.keyYellow,
+ "blue": self.keyBlue,
+ "ok": self.keyOk,
+ "cancel": self.cancel,
+ "up": self.keyUp,
+ "down": self.keyDown,
+ }, -3)
+
+ self.settings = ConfigSubsection()
+ choicelist = [("audio",_("audio tracks")), ("subtitles",_("Subtitles"))]
+ self.settings.menupage = ConfigSelection(choices = choicelist)
+ self.settings.menupage.addNotifier(self.fillList)
+ self.onLayoutFinish.append(self.__layoutFinished)
+
+ def __layoutFinished(self):
+ self["config"].instance.setSelectionEnable(False)
+ self.focus = FOCUS_STREAMS
+
+ 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() == "audio":
+ self.setTitle(_("Select audio track"))
+ if SystemInfo["CanDownmixAC3"]:
+ print "config.av.downmix_ac3.value=", config.av.downmix_ac3.value
+ 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"].setBoolean(True)
+
+ if n > 0:
+ self.audioChannel = service.audioChannel()
+ print "self.audioChannel.getCurrentChannel()", self.audioChannel.getCurrentChannel()
+ 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)
+
+ selectedAudio = self.audioTracks.getCurrentTrack()
+ print "selectedAudio:", selectedAudio
+
+ for x in range(n):
+ number = str(x)
+ i = audio.getTrackInfo(x)
+ languages = i.getLanguage().split('/')
+ description = i.getDescription() or _("<unknown>")
+ selected = ""
+ language = ""
+
+ if selectedAudio == x:
+ selected = _("Running")
+ selectedidx = x
+
+ cnt = 0
+ for lang in languages:
+ if cnt:
+ language += ' / '
+ if LanguageCodes.has_key(lang):
+ language += LanguageCodes[lang][0]
+ elif lang == "und":
+ _("<unknown>")
+ else:
+ language += lang
+ cnt += 1
+
+ streams.append((x, "", number, description, language, selected))
+
+ else:
+ 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
+ else:
+ sel = None
+
+ idx = 0
+
+ subtitlelist = self.getSubtitleList()
+
+ if len(subtitlelist):
+ for x in subtitlelist:
+ number = str(x[1])
+ description = "?"
+ language = _("<unknown>")
+ selected = ""
+
+ if sel and x[:4] == sel[:4]:
+ selected = _("Running")
+ selectedidx = idx
+
+ if x[4] != "und":
+ if LanguageCodes.has_key(x[4]):
+ language = LanguageCodes[x[4]][0]
+ else:
+ language = x[4]
+
+ if x[0] == 0:
+ description = "DVB"
+ number = "%x" % (x[1])
+
+ elif x[0] == 1:
+ description = "TTX"
+ number = "%x%02x" % (x[3],x[2])
+
+ elif x[0] == 2:
+ types = (" UTF-8 text "," SSA / AAS "," .SRT file ")
+ description = types[x[2]]
+
+ streams.append((x, "", number, description, language, selected))
+ idx += 1
+
+ else:
+ 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()
+
+ def getSubtitleList(self):
+ s = self.infobar and self.infobar.getCurrentServiceSubtitle()
+ l = s and s.getSubtitleList() or [ ]
+ return l
+
+ def subtitlesEnabled(self):
+ return self.infobar.subtitles_enabled
+
+ def enableSubtitle(self, subtitles):
+ print "[enableSubtitle]", subtitles
+ if self.infobar.selected_subtitle != subtitles:
+ self.infobar.subtitles_enabled = False
+ self.infobar.selected_subtitle = subtitles
+ if subtitles:
+ self.infobar.subtitles_enabled = True
+
+ def changeAC3Downmix(self, downmix):
+ print "changeAC3Downmix config.av.downmix_ac3.value=", config.av.downmix_ac3.value, downmix.getValue()
+ if downmix.getValue() == True:
+ config.av.downmix_ac3.value = True
+ else:
+ config.av.downmix_ac3.value = False
+ config.av.downmix_ac3.save()
+
+ def changeMode(self, mode):
+ print "changeMode", mode, mode.getValue()
+ if mode is not None:
+ self.audioChannel.selectChannel(int(mode.getValue()))
+
+ def changeAudio(self, audio):
+ print "changeAudio", audio, "self.session.nav.getCurrentService().audioTracks().getNumberOfTracks():", self.session.nav.getCurrentService().audioTracks().getNumberOfTracks()
+ track = int(audio)
+ if isinstance(track, int):
+ if self.session.nav.getCurrentService().audioTracks().getNumberOfTracks() > track:
+ self.audioTracks.selectTrack(track)
+
+ def keyLeft(self):
+ if self.focus == FOCUS_CONFIG:
+ ConfigListScreen.keyLeft(self)
+ elif self.focus == FOCUS_STREAMS:
+ self["streams"].setIndex(0)
+
+ 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):
+ if self["key_red"].getBoolean():
+ self.colorkey(0)
+
+ def keyGreen(self):
+ if self["key_green"].getBoolean():
+ self.colorkey(1)
+
+ def keyYellow(self):
+ if self["key_yellow"].getBoolean():
+ self.colorkey(2)
+
+ def keyBlue(self):
+ if self["key_blue"].getBoolean():
+ print "colorkey(3)"
+ self.colorkey(3)
+
+ def colorkey(self, idx):
+ self["config"].setCurrentIndex(idx)
+ self.keyRight(True)
+
+ def keyUp(self):
+ print "[keyUp]", self["streams"].getIndex()
+ if self.focus == FOCUS_CONFIG:
+ self["config"].instance.moveSelection(self["config"].instance.moveUp)
+ elif self.focus == FOCUS_STREAMS:
+ if self["streams"].getIndex() == 0:
+ self["config"].instance.setSelectionEnable(True)
+ self["streams"].style = "notselected"
+ self["config"].setCurrentIndex(len(self["config"].getList())-1)
+ self.focus = FOCUS_CONFIG
+ else:
+ self["streams"].selectPrevious()
+
+ def keyDown(self):
+ print "[keyDown]", self["config"].getCurrentIndex(), len(self["config"].getList())-1
+ if self.focus == FOCUS_CONFIG:
+ if self["config"].getCurrentIndex() < len(self["config"].getList())-1:
+ self["config"].instance.moveSelection(self["config"].instance.moveDown)
+ else:
+ self["config"].instance.setSelectionEnable(False)
+ self["streams"].style = "default"
+ self.focus = FOCUS_STREAMS
+ elif self.focus == FOCUS_STREAMS:
+ self["streams"].selectNext()
+
+ def keyOk(self):
+ print "[keyok]", self["streams"].list, self["streams"].getCurrent()
+ if self.focus == FOCUS_STREAMS and self["streams"].list:
+ cur = self["streams"].getCurrent()
+ if self.settings.menupage.getValue() == "audio" and cur[0] is not None:
+ self.changeAudio(cur[2])
+ self.__updatedInfo()
+ if self.settings.menupage.getValue() == "subtitles" and cur[0] is not None:
+ if self.infobar.selected_subtitle == cur[0]:
+ self.enableSubtitle(None)
+ selectedidx = self["streams"].getIndex()
+ self.__updatedInfo()
+ self["streams"].setIndex(selectedidx)
+ else:
+ self.enableSubtitle(cur[0])
+ self.__updatedInfo()
+ #self.close()
+ elif self.focus == FOCUS_CONFIG:
+ self.keyRight()
+
+ def cancel(self):
+ self.close(0)
})
def audioSelection(self):
- service = self.session.nav.getCurrentService()
- self.audioTracks = audio = service and service.audioTracks()
- n = audio and audio.getNumberOfTracks() or 0
- tlist = []
- if n > 0:
- self.audioChannel = service.audioChannel()
-
- idx = 0
- while idx < n:
- cnt = 0
- i = audio.getTrackInfo(idx)
- languages = i.getLanguage().split('/')
- description = i.getDescription()
- language = ""
-
- for lang in languages:
- if cnt:
- language += ' / '
- if LanguageCodes.has_key(lang):
- language += LanguageCodes[lang][0]
- else:
- language += lang
- cnt += 1
-
- if len(description):
- description += " (" + language + ")"
- else:
- description = language
-
- tlist.append((description, idx))
- idx += 1
-
- tlist.sort(key=lambda x: x[0])
-
- selectedAudio = self.audioTracks.getCurrentTrack()
-
- selection = 0
-
- for x in tlist:
- if x[1] != selectedAudio:
- selection += 1
- else:
- break
-
- availableKeys = []
- usedKeys = []
-
- if SystemInfo["CanDownmixAC3"]:
- flist = [(_("AC3 downmix") + " - " +(_("Off"), _("On"))[config.av.downmix_ac3.value and 1 or 0], "CALLFUNC", self.changeAC3Downmix),
- ((_("Left"), _("Stereo"), _("Right"))[self.audioChannel.getCurrentChannel()], "mode")]
- usedKeys.extend(["red", "green"])
- availableKeys.extend(["yellow", "blue"])
- selection += 2
- else:
- flist = [((_("Left"), _("Stereo"), _("Right"))[self.audioChannel.getCurrentChannel()], "mode")]
- usedKeys.extend(["red"])
- availableKeys.extend(["green", "yellow", "blue"])
- selection += 1
-
- 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("")
-
- flist.append(("--", ""))
- usedKeys.append("")
- selection += 1
-
- keys = usedKeys + [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" ] + [""] * n
- self.session.openWithCallback(self.audioSelected, ChoiceBox, title=_("Select audio track"), list = flist + tlist, selection = selection, keys = keys, skin_name = "AudioTrackSelection")
- else:
- del self.audioTracks
-
- def changeAC3Downmix(self, arg):
- choicelist = self.session.current_dialog["list"]
- list = choicelist.list
- t = list[0][1]
- list[0][1]=(t[0], t[1], t[2], t[3], t[4], t[5], t[6],
- _("AC3 downmix") + " - " + (_("On"), _("Off"))[config.av.downmix_ac3.value and 1 or 0])
- choicelist.setList(list)
- if config.av.downmix_ac3.value:
- config.av.downmix_ac3.value = False
- else:
- config.av.downmix_ac3.value = True
- config.av.downmix_ac3.save()
-
- def audioSelected(self, audio):
- if audio is not None:
- if isinstance(audio[1], str):
- if audio[1] == "mode":
- keys = ["red", "green", "yellow"]
- selection = self.audioChannel.getCurrentChannel()
- tlist = ((_("left"), 0), (_("stereo"), 1), (_("right"), 2))
- self.session.openWithCallback(self.modeSelected, ChoiceBox, title=_("Select audio mode"), list = tlist, selection = selection, keys = keys, skin_name ="AudioModeSelection")
- else:
- del self.audioChannel
- if self.session.nav.getCurrentService().audioTracks().getNumberOfTracks() > audio[1]:
- self.audioTracks.selectTrack(audio[1])
- else:
- del self.audioChannel
- del self.audioTracks
-
- def modeSelected(self, mode):
- if mode is not None:
- self.audioChannel.selectChannel(mode[1])
- del self.audioChannel
+ from Screens.AudioSelection import AudioSelection
+ self.session.openWithCallback(self.audioSelected, AudioSelection, infobar=self)
+
+ def audioSelected(self, ret=None):
+ print "[infobar::audioSelected]", ret
class InfoBarSubserviceSelection:
def __init__(self):
installdir = $(pkglibdir)/python/Screens
install_PYTHON = \
- ChannelSelection.py ClockDisplay.py ConfigMenu.py InfoBar.py Menu.py \
- MessageBox.py Screen.py ServiceScan.py TimerEdit.py \
+ AudioSelection.py ChannelSelection.py ClockDisplay.py ConfigMenu.py InfoBar.py \
+ Menu.py MessageBox.py Screen.py ServiceScan.py TimerEdit.py \
MovieSelection.py Setup.py About.py HarddiskSetup.py FixedMenu.py \
Satconfig.py ScanSetup.py NetworkSetup.py Ci.py TimerEntry.py Volume.py \
EpgSelection.py EventView.py Mute.py Standby.py ServiceInfo.py \
InfoBarGenerics.py HelpMenu.py Wizard.py __init__.py \
- Dish.py LanguageSelection.py StartWizard.py PiPSetup.py Subtitles.py \
+ Dish.py LanguageSelection.py StartWizard.py PiPSetup.py \
TutorialWizard.py PluginBrowser.py MinuteInput.py Scart.py PVRState.py \
Console.py InputBox.py ChoiceBox.py SimpleSummary.py \
TimerSelection.py PictureInPicture.py TimeDateInput.py \
+++ /dev/null
-from Screen import Screen
-from Components.ServiceEventTracker import ServiceEventTracker
-from Components.ActionMap import ActionMap
-from Components.ConfigList import ConfigListScreen
-from Components.config import config, getConfigListEntry, ConfigNothing
-from enigma import iPlayableService
-
-from Tools.ISO639 import LanguageCodes
-
-class Subtitles(Screen, ConfigListScreen):
- def __init__(self, session, infobar=None):
- Screen.__init__(self, session)
-
- self["actions"] = ActionMap(["SetupActions"],
- {
- "ok": self.ok,
- "cancel": self.cancel,
- }, -2)
-
- self.list = []
- ConfigListScreen.__init__(self, self.list)
- self.infobar = infobar or self.session.infobar
- self.fillList()
-
- self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
- {
- iPlayableService.evUpdatedInfo: self.__updatedInfo
- })
- self.cached_subtitle_checked = False
- self.__selected_subtitle = None
-
- def fillList(self):
- list = self.list
- del list[:]
- print "self.list", list
- if self.subtitlesEnabled():
- list.append(getConfigListEntry(_("Disable Subtitles"), ConfigNothing(), None))
- sel = self.infobar.selected_subtitle
- else:
- sel = None
- for x in self.getSubtitleList():
- if sel and sel[:4] == x[:4]: #ignore Language code in compare
- text = _("Running")
- else:
- text = _("Enable")
- if x[0] == 0:
- if LanguageCodes.has_key(x[4]):
- list.append(getConfigListEntry(text+" DVB "+LanguageCodes[x[4]][0], ConfigNothing(), x))
- else:
- list.append(getConfigListEntry(text+" DVB "+x[4], ConfigNothing(), x))
- elif x[0] == 1:
- if x[4] == 'und': #undefined
- list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2]), ConfigNothing(), x))
- else:
- if LanguageCodes.has_key(x[4]):
- list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2])+" "+LanguageCodes[x[4]][0], ConfigNothing(), x))
- else:
- list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2])+" "+x[4], ConfigNothing(), x))
- elif x[0] == 2:
- types = (" UTF-8 text "," SSA / AAS "," .SRT file ")
- if x[4] == 'und': #undefined
- list.append(getConfigListEntry(text+types[x[2]]+_("Subtitles")+" %d" % x[1], ConfigNothing(), x))
- else:
- if LanguageCodes.has_key(x[4]):
- list.append(getConfigListEntry(text+types[x[2]]+_("Subtitles") + ' ' + LanguageCodes[x[4]][0], ConfigNothing(), x))
- else:
- list.append(getConfigListEntry(text+types[x[2]]+_("Subtitles")+" %d " % x[1] +x[4], ConfigNothing(), x))
-# return _("Disable subtitles")
- self["config"].list = list
- self["config"].l.setList(list)
-
- def __updatedInfo(self):
- self.fillList()
-
- def getSubtitleList(self):
- s = self.infobar and self.infobar.getCurrentServiceSubtitle()
- l = s and s.getSubtitleList() or [ ]
- return l
-
- def subtitlesEnabled(self):
- return self.infobar.subtitles_enabled
-
- def enableSubtitle(self, subtitles):
- if self.infobar.selected_subtitle != subtitles:
- self.infobar.subtitles_enabled = False
- self.infobar.selected_subtitle = subtitles
- if subtitles:
- self.infobar.subtitles_enabled = True
-
- def keyLeft(self):
- ConfigListScreen.keyLeft(self)
-
- def keyRight(self):
- ConfigListScreen.keyRight(self)
-
- def ok(self):
- if self.list:
- cur = self["config"].getCurrent()
- self.enableSubtitle(cur[2])
- self.close(1)
-
- def cancel(self):
- self.close()