diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-11-01 14:33:57 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-11-01 14:33:57 +0000 |
| commit | 95c570d26ce81e3dd1e0610ff6c5c0b34d75ba5a (patch) | |
| tree | ceaecf5c729fdcda66120b62d96adcbdf0994522 /lib/python | |
| parent | c2502ea9d3d2886882e8fd27912e416bfc933567 (diff) | |
| download | enigma2-95c570d26ce81e3dd1e0610ff6c5c0b34d75ba5a.tar.gz enigma2-95c570d26ce81e3dd1e0610ff6c5c0b34d75ba5a.zip | |
store subtitle data in service cache and reenable subtitles on next zap to
the same service
Diffstat (limited to 'lib/python')
| -rw-r--r-- | lib/python/Screens/InfoBarGenerics.py | 28 | ||||
| -rw-r--r-- | lib/python/Screens/Subtitles.py | 3 |
2 files changed, 17 insertions, 14 deletions
diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index b69ef4e1..a85bcc97 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -1750,14 +1750,24 @@ class InfoBarSubtitleSupport(object): self.__event_tracker = ServiceEventTracker(screen=self, eventmap= { iPlayableService.evStart: self.__serviceStarted, + iPlayableService.evUpdatedInfo: self.__updatedInfo }) def __serviceStarted(self): - # reenable if it was enabled - r = self.__subtitles_enabled + self.cached_subtitle_checked = False + self.subtitle_window.hide() self.__subtitles_enabled = False - self.__selected_subtitle = None - self.setSubtitlesEnable(r) + + def __updatedInfo(self): + if not self.cached_subtitle_checked: + subtitle = self.getCurrentServiceSubtitle() + self.cached_subtitle_checked = True + if subtitle: + self.__selected_subtitle = subtitle.getCachedSubtitle() + if self.__selected_subtitle: + subtitle.enableSubtitles(self.subtitle_window.instance, self.selected_subtitle) + self.subtitle_window.show() + self.__subtitles_enabled = True def getCurrentServiceSubtitle(self): service = self.session.nav.getCurrentService() @@ -1773,17 +1783,11 @@ class InfoBarSubtitleSupport(object): else: if subtitle: subtitle.disableSubtitles(self.subtitle_window.instance) - - self.subtitle_window.hide() self.__subtitles_enabled = False + self.subtitle_window.hide() def setSelectedSubtitle(self, subtitle): - if self.__selected_subtitle != subtitle and self.subtitles_enabled: - # kick - self.__selected_subtitle = subtitle - self.__serviceStarted() - else: - self.__selected_subtitle = subtitle + self.__selected_subtitle = subtitle subtitles_enabled = property(lambda self: self.__subtitles_enabled, setSubtitlesEnable) selected_subtitle = property(lambda self: self.__selected_subtitle, setSelectedSubtitle) diff --git a/lib/python/Screens/Subtitles.py b/lib/python/Screens/Subtitles.py index 6a1deedb..d72ea336 100644 --- a/lib/python/Screens/Subtitles.py +++ b/lib/python/Screens/Subtitles.py @@ -25,7 +25,7 @@ class Subtitles(Screen, ConfigListScreen): else: sel = None for x in self.getSubtitleList(): - if sel and sel == x: + if sel and sel[:4] == x[:4]: #ignore Language code in compare text = _("Running") else: text = _("Enable") @@ -50,7 +50,6 @@ class Subtitles(Screen, ConfigListScreen): def enableSubtitle(self, subtitles): if self.infobar.selected_subtitle != subtitles: - print "enable subtitles", subtitles self.infobar.subtitles_enabled = False self.infobar.selected_subtitle = subtitles self.infobar.subtitles_enabled = True |
