[hbbtv] compatibility for SD skin
authorsmlee <smlee@dev3>
Fri, 25 Jul 2014 09:00:02 +0000 (18:00 +0900)
committersmlee <smlee@dev3>
Fri, 25 Jul 2014 09:00:02 +0000 (18:00 +0900)
lib/python/Plugins/Extensions/HbbTV/browser.py
lib/python/Plugins/Extensions/HbbTV/hbbtv.py
lib/python/Plugins/Extensions/HbbTV/plugin.py

index c4b5d22..73af39e 100644 (file)
@@ -929,7 +929,7 @@ class Browser(Screen):
                self.setTitle(title)
 
        def _cb_close_window(self):
                self.setTitle(title)
 
        def _cb_close_window(self):
-               self._close_timer.start(2000)
+               self._close_timer.start(1000)
 
        def _cb_start_browser(self, data=None, mode=0, opcode='BROWSER_OPENURL'):
                if not vbcfg.g_main.check_browser():
 
        def _cb_start_browser(self, data=None, mode=0, opcode='BROWSER_OPENURL'):
                if not vbcfg.g_main.check_browser():
@@ -985,13 +985,13 @@ class Browser(Screen):
 
                self.toggle_top()
 
 
                self.toggle_top()
 
-               from enigma import getDesktop, gMainDC
-               desktop_size = getDesktop(0).size()
-               gMainDC.getInstance().setResolution(desktop_size.width(), desktop_size.height())
+               from enigma import gMainDC
+               gMainDC.getInstance().setResolution(self.WIDTH, self.HEIGHT)
                vbcfg.setPosition(vbcfg.g_position)
 
                fbClass.getInstance().unlock()
                eRCInput.getInstance().unlock()
                vbcfg.setPosition(vbcfg.g_position)
 
                fbClass.getInstance().unlock()
                eRCInput.getInstance().unlock()
+               getDesktop(0).paint()
                self.is_browser_opened = False
 
                vbcfg.LOG("Stop Browser")
                self.is_browser_opened = False
 
                vbcfg.LOG("Stop Browser")
index af45545..385c956 100644 (file)
@@ -46,7 +46,7 @@ class HbbTVWindow(Screen):
                self.setTitle(title)
 
        def _cb_close_window(self):
                self.setTitle(title)
 
        def _cb_close_window(self):
-               self._close_timer.start(2000)
+               self._close_timer.start(1000)
 
        def start_hbbtv_application(self):
                vbcfg.g_main.vbhandler.soft_volume = -1
 
        def start_hbbtv_application(self):
                vbcfg.g_main.vbhandler.soft_volume = -1
@@ -84,12 +84,14 @@ class HbbTVWindow(Screen):
                        pass
 
                from enigma import getDesktop, gMainDC
                        pass
 
                from enigma import getDesktop, gMainDC
-               desktop_size = getDesktop(0).size()
+               dsk = getDesktop(0)
+               desktop_size = dsk.size()
                gMainDC.getInstance().setResolution(desktop_size.width(), desktop_size.height())
 
                vbcfg.setPosition(vbcfg.g_position)
                fbClass.getInstance().unlock()
                eRCInput.getInstance().unlock()
                gMainDC.getInstance().setResolution(desktop_size.width(), desktop_size.height())
 
                vbcfg.setPosition(vbcfg.g_position)
                fbClass.getInstance().unlock()
                eRCInput.getInstance().unlock()
+               dsk.paint()
 
                vbcfg.LOG("Stop HbbTV")
                self.close()
 
                vbcfg.LOG("Stop HbbTV")
                self.close()
index 3cc62b0..22d5f69 100644 (file)
@@ -35,6 +35,8 @@ _OPCODE_LIST = [
                'CONTROL_TITLE',
                'CONTROL_OK',
                'CONTROL_OUT_OF_MEMORY',
                'CONTROL_TITLE',
                'CONTROL_OK',
                'CONTROL_OUT_OF_MEMORY',
+               'CONTROL_INVALIDATE',
+               'CONTROL_GET_FBSIZE',
                'CONTROL_GET_VOLUME',
                'CONTROL_SET_VOLUME',
                'CONTROL_VOLUME_UP',
                'CONTROL_GET_VOLUME',
                'CONTROL_SET_VOLUME',
                'CONTROL_VOLUME_UP',
@@ -123,6 +125,18 @@ class VBHandler(VBHandlers):
                vbcfg.need_restart = True;
                return (True, None)
 
                vbcfg.need_restart = True;
                return (True, None)
 
+       def _CB_CONTROL_INVALIDATE(self, result, packet):
+               # redraw enigma
+               from enigma import getDesktop
+               getDesktop(0).paint()
+               return (True, None)
+
+       def _CB_CONTROL_GET_FBSIZE(self, result, packet):
+               from enigma import getDesktop
+               desktop_size = getDesktop(0).size()
+               data = "%dx%d" % (desktop_size.width(), desktop_size.height())
+               return (True, data)
+
        def _CB_CONTROL_SET_VOLUME(self, result, packet):
                if self.max_volume < 0:
                        self.max_volume = VolumeControl.instance.volctrl.getVolume()
        def _CB_CONTROL_SET_VOLUME(self, result, packet):
                if self.max_volume < 0:
                        self.max_volume = VolumeControl.instance.volctrl.getVolume()