diff options
| author | Andreas Frisch <andreas.frisch@multimedia-labs.de> | 2008-10-02 14:57:27 +0000 |
|---|---|---|
| committer | Andreas Frisch <andreas.frisch@multimedia-labs.de> | 2008-10-02 14:57:27 +0000 |
| commit | 07c8a0395bd3df78c2c885b848f500c99b1c4407 (patch) | |
| tree | 39a4c9994de4c1df38df3e6d5cbee3459e03a451 /lib/python | |
| parent | 471b217e32f45b8ca085593f8f93735883e2be2a (diff) | |
| download | enigma2-07c8a0395bd3df78c2c885b848f500c99b1c4407.tar.gz enigma2-07c8a0395bd3df78c2c885b848f500c99b1c4407.zip | |
add basic mkv inline ssa/ass subtitle support
Diffstat (limited to 'lib/python')
| -rw-r--r-- | lib/python/Plugins/Extensions/MediaPlayer/plugin.py | 10 | ||||
| -rw-r--r-- | lib/python/Screens/Subtitles.py | 8 |
2 files changed, 16 insertions, 2 deletions
diff --git a/lib/python/Plugins/Extensions/MediaPlayer/plugin.py b/lib/python/Plugins/Extensions/MediaPlayer/plugin.py index 752a036b..c4282a07 100644 --- a/lib/python/Plugins/Extensions/MediaPlayer/plugin.py +++ b/lib/python/Plugins/Extensions/MediaPlayer/plugin.py @@ -14,7 +14,7 @@ from Tools.Directories import resolveFilename, SCOPE_CONFIG, SCOPE_PLAYLIST, SCO from Components.ServicePosition import ServicePositionGauge from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase from Components.Playlist import PlaylistIOInternal, PlaylistIOM3U, PlaylistIOPLS -from Screens.InfoBarGenerics import InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSupport, InfoBarNotifications +from Screens.InfoBarGenerics import InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSupport, InfoBarNotifications, InfoBarSubtitleSupport from ServiceReference import ServiceReference from Screens.ChoiceBox import ChoiceBox from Screens.HelpMenu import HelpableScreen @@ -42,7 +42,7 @@ class MediaPixmap(Pixmap): self.default_pixmap = resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/no_coverArt.png") return Pixmap.applySkin(self, desktop, screen) -class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSupport, InfoBarNotifications, HelpableScreen): +class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSupport, InfoBarNotifications, InfoBarSubtitleSupport, HelpableScreen): ALLOW_SUSPEND = True ENABLE_RESUME_SUPPORT = True @@ -52,6 +52,7 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB InfoBarCueSheetSupport.__init__(self, actionmap = "MediaPlayerCueSheetActions") InfoBarNotifications.__init__(self) InfoBarBase.__init__(self) + InfoBarSubtitleSupport.__init__(self) HelpableScreen.__init__(self) self.summary = None self.oldService = self.session.nav.getCurrentlyPlayingServiceReference() @@ -123,6 +124,7 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB "delete": (self.deletePlaylistEntry, _("delete playlist entry")), "shift_stop": (self.clear_playlist, _("clear playlist")), "shift_record": (self.playlist.PlayListShuffle, _("shuffle playlist")), + "subtitles": (self.subtitleSelection, _("Subtitle selection")), }, -2) self["InfobarEPGActions"] = HelpableActionMap(self, "InfobarEPGActions", @@ -751,6 +753,10 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB def unPauseService(self): self.setSeekState(self.SEEK_STATE_PLAY) + + def subtitleSelection(self): + from Screens.Subtitles import Subtitles + self.session.open(Subtitles) class MediaPlayerLCDScreen(Screen): skin = """ diff --git a/lib/python/Screens/Subtitles.py b/lib/python/Screens/Subtitles.py index b1c4475e..31733d80 100644 --- a/lib/python/Screens/Subtitles.py +++ b/lib/python/Screens/Subtitles.py @@ -55,6 +55,14 @@ class Subtitles(Screen, ConfigListScreen): self.list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2])+" "+LanguageCodes[x[4]][0], ConfigNothing(), x)) else: self.list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2])+" "+x[4], ConfigNothing(), x)) + elif x[0] == 2: + if x[4] == 'und': #undefined + self.list.append(getConfigListEntry(text+" subtitle stream %d " % x[1], ConfigNothing(), x)) + else: + if LanguageCodes.has_key(x[4]): + self.list.append(getConfigListEntry(text+" subtitle stream %d " % x[1] +LanguageCodes[x[4]][0], ConfigNothing(), x)) + else: + self.list.append(getConfigListEntry(text+" subtitle stream %d " % x[1] +x[4], ConfigNothing(), x)) # return _("Disable subtitles") self["config"].list = self.list self["config"].l.setList(self.list) |
