Merge branch 'master' of git.opendreambox.org:/git/enigma2
authorghost <andreas.monzner@multimedia-labs.de>
Mon, 11 May 2009 09:43:03 +0000 (11:43 +0200)
committerghost <andreas.monzner@multimedia-labs.de>
Mon, 11 May 2009 09:43:03 +0000 (11:43 +0200)
lib/dvb/decoder.cpp
lib/python/Components/Converter/TemplatedMultiContent.py

index 92652a4bb45f582e39d707dfdd1bc1467df61b2d..30a80d10c769b03b4cedef08d721ed7aa0f6e74f 100644 (file)
@@ -1002,7 +1002,7 @@ int eTSMPEGDecoder::setState()
        }
 #endif
 
-       if (m_changed & changeState)
+       if (m_changed & (changeState|changeVideo|changeAudio))
        {
                                        /* play, slowmotion, fast-forward */
                int state_table[6][4] = 
@@ -1015,7 +1015,7 @@ int eTSMPEGDecoder::setState()
                                /* [stateSlowMotion] =           */ {1, m_ff_sm_ratio, 0}
                        };
                int *s = state_table[m_state];
-               if (m_video)
+               if (m_changed & (changeState|changeVideo) && m_video)
                {
                        m_video->setSlowMotion(s[1]);
                        m_video->setFastForward(s[2]);
@@ -1024,7 +1024,7 @@ int eTSMPEGDecoder::setState()
                        else
                                m_video->freeze();
                }
-               if (m_audio)
+               if (m_changed & (changeState|changeAudio) && m_audio)
                {
                        if (s[0])
                                m_audio->unfreeze();
index 25c4b1a4a4a9161e464e32eaa72a8423d0782c33..8a708c14a117b6c20e939a3c347c21348f608948 100644 (file)
@@ -18,13 +18,13 @@ class TemplatedMultiContent(StringList):
                assert "template" in self.template or "default" in self.template["templates"] # we need to have a default template
 
                if not "template" in self.template: # default template can be ["template"] or ["templates"]["default"]
-                       self.template["template"] = self.template["templates"]["default"]
+                       self.template["template"] = self.template["templates"]["default"][1]
+                       self.template["itemHeight"] = self.template["template"][0]
 
        def changed(self, what):
                if not self.content:
                        from enigma import eListboxPythonMultiContent
                        self.content = eListboxPythonMultiContent()
-                       self.content.setItemHeight(self.template["itemHeight"])
                        self.setTemplate()
 
                        # also setup fonts (also given by source)
@@ -53,8 +53,12 @@ class TemplatedMultiContent(StringList):
                        # if skin defined "templates", that means that it defines multiple styles in a dict. template should still be a default
                        templates = self.template.get("templates")
                        template = self.template.get("template")
+                       itemheight = self.template["itemHeight"]
 
-                       if templates and style: # if we have a custom style defined in the source, and different templates in the skin, look it up
-                               template = templates.get(self.source.style, template) # default to default template
+                       if templates and style and style in templates: # if we have a custom style defined in the source, and different templates in the skin, look it up
+                               template = templates[style][1]
+                               itemheight = templates[style][0]
 
                        self.content.setTemplate(template)
+
+                       self.content.setItemHeight(itemheight)