experimentally merge audio + subtitle streams selection dialogs into one
authorFraxinas <andreas.frisch@multimedia-labs.de>
Tue, 25 May 2010 08:43:10 +0000 (10:43 +0200)
committerFraxinas <andreas.frisch@multimedia-labs.de>
Sun, 30 May 2010 21:56:27 +0000 (23:56 +0200)
data/menu.xml
data/skin_default.xml
lib/python/Screens/AudioSelection.py [new file with mode: 0644]
lib/python/Screens/InfoBarGenerics.py
lib/python/Screens/Makefile.am
lib/python/Screens/Subtitles.py [deleted file]

index b437fbc7d7646bcfb4f3e48b2f712c13f70027d9..0d8747189bdd3df05e448ce3a470da41ecb66ef3 100755 (executable)
@@ -17,7 +17,6 @@
                <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>
 
index 0114349bb97764b9c4b5f50d18c841bf9f22b2cd..396515e91ba973837fc2f09836a73c0ce6247dda 100755 (executable)
                <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">
@@ -935,9 +974,9 @@ self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y()))
                </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 -->
diff --git a/lib/python/Screens/AudioSelection.py b/lib/python/Screens/AudioSelection.py
new file mode 100644 (file)
index 0000000..b97c25b
--- /dev/null
@@ -0,0 +1,308 @@
+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"] = Boolean(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"] = Boolean(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))
+
+                               #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"), "")]
+
+               elif self.settings.menupage.getValue() == "subtitles":
+                       self.setTitle(_("Subtitle selection"))
+                       
+                       self.settings.dummy = ConfigNothing()
+                       conflist.append(getConfigListEntry("", self.settings.dummy))
+                       conflist.append(getConfigListEntry("", self.settings.dummy))
+
+                       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 = [(None, "", "", _("none"), "")]
+
+               conflist.append(getConfigListEntry(_("Menu"), self.settings.menupage))
+               self["config"].list = conflist
+               self["config"].l.setList(conflist)
+
+               self["streams"].list = streams
+               self["streams"].setIndex(selectedidx)
+
+       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):
+               if self.focus == FOCUS_CONFIG:
+                       ConfigListScreen.keyRight(self)
+               elif self.focus == FOCUS_STREAMS and self["streams"].count():
+                       self["streams"].setIndex(self["streams"].count()-1)
+
+       def keyRed(self):
+               self.colorkey(0)
+
+       def keyGreen(self):
+               self.colorkey(1)
+
+       def keyYellow(self):
+               self.colorkey(2)
+       
+       def keyBlue(self):
+               pass
+               
+       def colorkey(self, idx):
+               self["config"].setCurrentIndex(idx)
+               ConfigListScreen.keyRight(self)
+
+       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]:
+                               self.changeAudio(cur[2])
+                               self.__updatedInfo()
+                       if self.settings.menupage.getValue() == "subtitles" and cur[0]:
+                               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()
index 1c577eecad42141750176d4871f5e7c54649bf12..6fa891122c9beb5621ed6a035b8d598875dfb0c7 100644 (file)
@@ -1673,126 +1673,11 @@ class InfoBarAudioSelection:
                        })
 
        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):
index d96b491e3e225b06419f801f4ef1c15ff7086e25..5cec5127b5060a3777626ce2fd26e1065539303c 100755 (executable)
@@ -1,13 +1,13 @@
 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 \
diff --git a/lib/python/Screens/Subtitles.py b/lib/python/Screens/Subtitles.py
deleted file mode 100644 (file)
index 9ba7e0a..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-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()