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)
- 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([])
- choicelist = [("audio",_("audio tracks")), ("subtitles",_("Subtitles"))]
- self.settings.menupage = ConfigSelection(choices = choicelist)
- self.settings.menupage.addNotifier(self.fillList)
+ choicelist = [(PAGE_AUDIO,_("audio tracks")), (PAGE_SUBTITLES,_("Subtitles"))]
+ self.settings.menupage = ConfigSelection(choices = choicelist, default=page)
self.onLayoutFinish.append(self.__layoutFinished)
def __layoutFinished(self):
self["config"].instance.setSelectionEnable(False)
self.focus = FOCUS_STREAMS
self.onLayoutFinish.append(self.__layoutFinished)
def __layoutFinished(self):
self["config"].instance.setSelectionEnable(False)
self.focus = FOCUS_STREAMS
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
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.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))
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)
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)
description = types[x[2]]
streams.append((x, "", number, description, language, selected))
description = types[x[2]]
streams.append((x, "", number, description, language, selected))
self.fnc(*self.args)
Plugins = [ (p.name, PluginCaller(self.infobar.runPlugin, p)) for p in plugins.getPlugins(where = PluginDescriptor.WHERE_AUDIOMENU) ]
self.fnc(*self.args)
Plugins = [ (p.name, PluginCaller(self.infobar.runPlugin, p)) for p in plugins.getPlugins(where = PluginDescriptor.WHERE_AUDIOMENU) ]
return self.infobar.subtitles_enabled
def enableSubtitle(self, subtitles):
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 self.infobar.selected_subtitle != subtitles:
self.infobar.subtitles_enabled = False
self.infobar.selected_subtitle = subtitles
self.infobar.subtitles_enabled = True
def changeAC3Downmix(self, downmix):
self.infobar.subtitles_enabled = True
def changeAC3Downmix(self, downmix):
config.av.downmix_ac3.save()
def changeMode(self, mode):
config.av.downmix_ac3.save()
def changeMode(self, mode):
if mode is not None:
self.audioChannel.selectChannel(int(mode.getValue()))
def changeAudio(self, audio):
if mode is not None:
self.audioChannel.selectChannel(int(mode.getValue()))
def changeAudio(self, audio):
track = int(audio)
if isinstance(track, int):
if self.session.nav.getCurrentService().audioTracks().getNumberOfTracks() > track:
track = int(audio)
if isinstance(track, int):
if self.session.nav.getCurrentService().audioTracks().getNumberOfTracks() > track:
ConfigListScreen.keyRight(self)
elif hasattr(self, "plugincallfunc"):
self.plugincallfunc()
ConfigListScreen.keyRight(self)
elif hasattr(self, "plugincallfunc"):
self.plugincallfunc()
if self.focus == FOCUS_CONFIG:
self["config"].instance.moveSelection(self["config"].instance.moveUp)
elif self.focus == FOCUS_STREAMS:
if self.focus == FOCUS_CONFIG:
self["config"].instance.moveSelection(self["config"].instance.moveUp)
elif self.focus == FOCUS_STREAMS:
if self.focus == FOCUS_CONFIG:
if self["config"].getCurrentIndex() < len(self["config"].getList())-1:
self["config"].instance.moveSelection(self["config"].instance.moveDown)
if self.focus == FOCUS_CONFIG:
if self["config"].getCurrentIndex() < len(self["config"].getList())-1:
self["config"].instance.moveSelection(self["config"].instance.moveDown)
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()
+
+class SubtitleSelection(AudioSelection):
+ def __init__(self, session, infobar=None):
+ AudioSelection.__init__(self, session, infobar, page=PAGE_SUBTITLES)
+ self.skinName = ["AudioSelection"]