Extend AudioSelection width, fix mediaplayer subtitle selection key
authorFraxinas <andreas.frisch@multimedia-labs.de>
Wed, 2 Jun 2010 13:03:52 +0000 (15:03 +0200)
committerghost <andreas.monzner@multimedia-labs.de>
Wed, 6 Oct 2010 21:30:20 +0000 (23:30 +0200)
data/skin_default.xml
lib/python/Plugins/Extensions/MediaPlayer/plugin.py
lib/python/Screens/AudioSelection.py

index 5c40c7d..779e2be 100755 (executable)
@@ -62,8 +62,8 @@
                <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 -->
                <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="420,330" title="Audio">
-               <widget name="config" position="50,10" size="360,110" scrollbarMode="showOnDemand" />
+       <screen name="AudioSelection" position="center,center" size="560,330" title="Audio">
+               <widget name="config" position="50,10" size="500,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 source="key_red" render="Pixmap" pixmap="skin_default/buttons/key_red.png" position="10,10" size="35,25" alphatest="on">
                        <convert type="ConditionalShowHide" />
                        <convert type="ConditionalShowHide" />
                </widget>
                
                        <convert type="ConditionalShowHide" />
                </widget>
                
-               <ePixmap pixmap="skin_default/div-h.png" position="10,112" zPosition="10" size="360,2" />
+               <ePixmap pixmap="skin_default/div-h.png" position="10,112" zPosition="10" size="540,2" />
 
 
-               <widget source="streams" render="Listbox" scrollbarMode="showOnDemand" position="10,120" size="400,200" zPosition="3" transparent="1" >
+               <widget source="streams" render="Listbox" scrollbarMode="showOnDemand" position="10,120" size="540,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,
                        <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,
+                                               MultiContentEntryText(pos = (40, 0),  size = (60, 25),  font = 0, flags = RT_HALIGN_LEFT,  text = 2), # number,
+                                               MultiContentEntryText(pos = (110, 0), size = (120, 25),  font = 0, flags = RT_HALIGN_LEFT,  text = 3), # description,
+                                               MultiContentEntryText(pos = (240, 0), size = (210, 25), font = 0, flags = RT_HALIGN_LEFT,  text = 4), # language,
+                                               MultiContentEntryText(pos = (460, 4), size = (80, 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,
                                        ], 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,
+                                               MultiContentEntryText(pos = (40, 0),  size = (60, 25),  font = 0, flags = RT_HALIGN_LEFT,  text = 2), # number,
+                                               MultiContentEntryText(pos = (110, 0), size = (120, 25),  font = 0, flags = RT_HALIGN_LEFT,  text = 3), # description,
+                                               MultiContentEntryText(pos = (240, 0), size = (210, 25), font = 0, flags = RT_HALIGN_LEFT,  text = 4), # language,
+                                               MultiContentEntryText(pos = (460, 4), size = (80, 25),  font = 1, flags = RT_HALIGN_RIGHT, text = 5), # selection,
                                        ], False, "showNever")
                                        },
                                "fonts": [gFont("Regular", 20), gFont("Regular", 16)],
                                        ], False, "showNever")
                                        },
                                "fonts": [gFont("Regular", 20), gFont("Regular", 16)],
index 28cf723..9ae886f 100755 (executable)
@@ -901,11 +901,11 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB
 
        def unPauseService(self):
                self.setSeekState(self.SEEK_STATE_PLAY)
 
        def unPauseService(self):
                self.setSeekState(self.SEEK_STATE_PLAY)
-               
+
        def subtitleSelection(self):
        def subtitleSelection(self):
-               from Screens.Subtitles import Subtitles
-               self.session.open(Subtitles, self)
-       
+               from Screens.AudioSelection import SubtitleSelection
+               self.session.open(SubtitleSelection, self)
+
        def hotplugCB(self, dev, media_state):
                if dev == harddiskmanager.getCD():
                        if media_state == "1":
        def hotplugCB(self, dev, media_state):
                if dev == harddiskmanager.getCD():
                        if media_state == "1":
index 2cae1de..2dd6ad9 100644 (file)
@@ -14,9 +14,10 @@ from enigma import iPlayableService
 from Tools.ISO639 import LanguageCodes
 from Tools.BoundFunction import boundFunction
 FOCUS_CONFIG, FOCUS_STREAMS = range(2)
 from Tools.ISO639 import LanguageCodes
 from Tools.BoundFunction import boundFunction
 FOCUS_CONFIG, FOCUS_STREAMS = range(2)
+[PAGE_AUDIO, PAGE_SUBTITLES] = ["audio", "subtitles"]
 
 class AudioSelection(Screen, ConfigListScreen):
 
 class AudioSelection(Screen, ConfigListScreen):
-       def __init__(self, session, infobar=None):
+       def __init__(self, session, infobar=None, page=PAGE_AUDIO):
                Screen.__init__(self, session)
 
                self["streams"] = List([])
                Screen.__init__(self, session)
 
                self["streams"] = List([])
@@ -48,8 +49,8 @@ class AudioSelection(Screen, ConfigListScreen):
                }, -3)
 
                self.settings = ConfigSubsection()
                }, -3)
 
                self.settings = ConfigSubsection()
-               choicelist = [("audio",_("audio tracks")), ("subtitles",_("Subtitles"))]
-               self.settings.menupage = ConfigSelection(choices = choicelist)
+               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)
 
                self.settings.menupage.addNotifier(self.fillList)
                self.onLayoutFinish.append(self.__layoutFinished)
 
@@ -66,7 +67,7 @@ class AudioSelection(Screen, ConfigListScreen):
                self.audioTracks = audio = service and service.audioTracks()
                n = audio and audio.getNumberOfTracks() or 0
                
                self.audioTracks = audio = service and service.audioTracks()
                n = audio and audio.getNumberOfTracks() or 0
                
-               if self.settings.menupage.getValue() == "audio":
+               if self.settings.menupage.getValue() == PAGE_AUDIO:
                        self.setTitle(_("Select audio track"))
                        if SystemInfo["CanDownmixAC3"]:
                                print "config.av.downmix_ac3.value=", config.av.downmix_ac3.value
                        self.setTitle(_("Select audio track"))
                        if SystemInfo["CanDownmixAC3"]:
                                print "config.av.downmix_ac3.value=", config.av.downmix_ac3.value
@@ -115,8 +116,11 @@ class AudioSelection(Screen, ConfigListScreen):
 
                        else:
                                streams = []
 
                        else:
                                streams = []
+                               self.settings.dummy = ConfigNothing()
+                               conflist.append(getConfigListEntry("", self.settings.dummy))
+                               self["key_green"].setBoolean(False)
 
 
-               elif self.settings.menupage.getValue() == "subtitles":
+               elif self.settings.menupage.getValue() == PAGE_SUBTITLES:
                        self.setTitle(_("Subtitle selection"))
                        
                        self.settings.dummy = ConfigNothing()
                        self.setTitle(_("Subtitle selection"))
                        
                        self.settings.dummy = ConfigNothing()
@@ -158,9 +162,9 @@ class AudioSelection(Screen, ConfigListScreen):
                                        elif x[0] == 1:
                                                description = "TTX"
                                                number = "%x%02x" % (x[3],x[2])
                                        elif x[0] == 1:
                                                description = "TTX"
                                                number = "%x%02x" % (x[3],x[2])
-                                       
+
                                        elif x[0] == 2:
                                        elif x[0] == 2:
-                                               types = (" UTF-8 text "," SSA / AAS "," .SRT file ")
+                                               types = ("UTF-8 text","SSA / AAS",".SRT file")
                                                description = types[x[2]]
 
                                        streams.append((x, "", number, description, language, selected))
                                                description = types[x[2]]
 
                                        streams.append((x, "", number, description, language, selected))
@@ -252,7 +256,7 @@ class AudioSelection(Screen, ConfigListScreen):
                                ConfigListScreen.keyRight(self)
                        elif hasattr(self, "plugincallfunc"):
                                self.plugincallfunc()
                                ConfigListScreen.keyRight(self)
                        elif hasattr(self, "plugincallfunc"):
                                self.plugincallfunc()
-               if self.focus == FOCUS_STREAMS and self["streams"].count():
+               if self.focus == FOCUS_STREAMS and self["streams"].count() and config == False:
                        self["streams"].setIndex(self["streams"].count()-1)
 
        def keyRed(self):
                        self["streams"].setIndex(self["streams"].count()-1)
 
        def keyRed(self):
@@ -305,10 +309,10 @@ class AudioSelection(Screen, ConfigListScreen):
                print "[keyok]", self["streams"].list, self["streams"].getCurrent()
                if self.focus == FOCUS_STREAMS and self["streams"].list:
                        cur = self["streams"].getCurrent()
                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:
+                       if self.settings.menupage.getValue() == PAGE_AUDIO and cur[0] is not None:
                                self.changeAudio(cur[2])
                                self.__updatedInfo()
                                self.changeAudio(cur[2])
                                self.__updatedInfo()
-                       if self.settings.menupage.getValue() == "subtitles" and cur[0] is not None:
+                       if self.settings.menupage.getValue() == PAGE_SUBTITLES and cur[0] is not None:
                                if self.infobar.selected_subtitle == cur[0]:
                                        self.enableSubtitle(None)
                                        selectedidx = self["streams"].getIndex()
                                if self.infobar.selected_subtitle == cur[0]:
                                        self.enableSubtitle(None)
                                        selectedidx = self["streams"].getIndex()
@@ -323,3 +327,8 @@ class AudioSelection(Screen, ConfigListScreen):
 
        def cancel(self):
                self.close(0)
 
        def cancel(self):
                self.close(0)
+
+class SubtitleSelection(AudioSelection):
+       def __init__(self, session, infobar=None):
+               AudioSelection.__init__(self, session, infobar, page=PAGE_SUBTITLES)
+               self.skinName = ["AudioSelection"]