aboutsummaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-11-01 14:33:57 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-11-01 14:33:57 +0000
commit95c570d26ce81e3dd1e0610ff6c5c0b34d75ba5a (patch)
treeceaecf5c729fdcda66120b62d96adcbdf0994522 /lib/python
parentc2502ea9d3d2886882e8fd27912e416bfc933567 (diff)
downloadenigma2-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.py28
-rw-r--r--lib/python/Screens/Subtitles.py3
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