update plugin.
authorkos <kos@dev3>
Fri, 23 Dec 2011 09:27:38 +0000 (18:27 +0900)
committerkos <kos@dev3>
Fri, 23 Dec 2011 09:27:38 +0000 (18:27 +0900)
  - webbrowser : add german keyboard.
  - fpgaupgrade : fix upgrade status and add error message.
  - firmwareupgrade : fix upgrade status and add error message.

lib/python/Plugins/Extensions/WebBrowser/keymap/Makefile.am
lib/python/Plugins/Extensions/WebBrowser/keymap/ch.qmap [new file with mode: 0644]
lib/python/Plugins/Extensions/WebBrowser/keymap/de.qmap
lib/python/Plugins/Extensions/WebBrowser/keymap/us.qmap [new file with mode: 0644]
lib/python/Plugins/Extensions/WebBrowser/plugin.py
lib/python/Plugins/SystemPlugins/FPGAUpgrade/_fpga.so
lib/python/Plugins/SystemPlugins/FPGAUpgrade/fpga.py
lib/python/Plugins/SystemPlugins/FPGAUpgrade/plugin.py
lib/python/Plugins/SystemPlugins/FirmwareUpgrade/_fu.so
lib/python/Plugins/SystemPlugins/FirmwareUpgrade/plugin.py

index 27d1bc7..481d8ee 100644 (file)
@@ -1,3 +1,3 @@
 installdir = $(datadir)/keymaps/vuplus
 
 installdir = $(datadir)/keymaps/vuplus
 
-install_DATA = de.qmap
+install_DATA = de.qmap ch.qmap us.qmap 
diff --git a/lib/python/Plugins/Extensions/WebBrowser/keymap/ch.qmap b/lib/python/Plugins/Extensions/WebBrowser/keymap/ch.qmap
new file mode 100644 (file)
index 0000000..9481834
Binary files /dev/null and b/lib/python/Plugins/Extensions/WebBrowser/keymap/ch.qmap differ
index 95c42af..cb3109d 100644 (file)
Binary files a/lib/python/Plugins/Extensions/WebBrowser/keymap/de.qmap and b/lib/python/Plugins/Extensions/WebBrowser/keymap/de.qmap differ
diff --git a/lib/python/Plugins/Extensions/WebBrowser/keymap/us.qmap b/lib/python/Plugins/Extensions/WebBrowser/keymap/us.qmap
new file mode 100644 (file)
index 0000000..7a257ea
Binary files /dev/null and b/lib/python/Plugins/Extensions/WebBrowser/keymap/us.qmap differ
index 1985c06..b947a74 100644 (file)
@@ -426,7 +426,9 @@ class BrowserLauncher(ConfigListScreen, Screen):
 
                self.browser_root = "/usr/bin"
                self.browser_name = "arora"
 
                self.browser_root = "/usr/bin"
                self.browser_name = "arora"
-               self.conf_file = "/usr/lib/enigma2/python/Plugins/Extensions/WebBrowser/settings.conf"
+
+               from Tools.Directories import resolveFilename, SCOPE_PLUGINS
+               self.conf_file = resolveFilename(SCOPE_PLUGINS, "Extensions/WebBrowser/settings.conf")
                self["actions"] = ActionMap(["OkCancelActions", "ShortcutActions", "WizardActions", "ColorActions", "SetupActions", ],
                 {      "red": self.keyCancel,
                        "green": self.keyGo,
                self["actions"] = ActionMap(["OkCancelActions", "ShortcutActions", "WizardActions", "ColorActions", "SetupActions", ],
                 {      "red": self.keyCancel,
                        "green": self.keyGo,
@@ -549,30 +551,29 @@ class BrowserLauncher(ConfigListScreen, Screen):
                        self.conf_mouse = self.mouse_list[0][0]
                self.mouse = ConfigSelection(default = self.conf_mouse, choices = self.mouse_list)
                self.list.append(getConfigListEntry(_('Mouse'), self.mouse))            
                        self.conf_mouse = self.mouse_list[0][0]
                self.mouse = ConfigSelection(default = self.conf_mouse, choices = self.mouse_list)
                self.list.append(getConfigListEntry(_('Mouse'), self.mouse))            
-
+               
                if self.conf_keyboard == "" or self.getHandlerName(self.conf_keyboard) is None:
                        self.conf_keyboard = self.keyboard_list[0][0]
                self.keyboard = ConfigSelection(default = self.conf_keyboard, choices = self.keyboard_list)
                self.list.append(getConfigListEntry(_('Keyboard'), self.keyboard))
 
                if self.conf_keyboard == "" or self.getHandlerName(self.conf_keyboard) is None:
                        self.conf_keyboard = self.keyboard_list[0][0]
                self.keyboard = ConfigSelection(default = self.conf_keyboard, choices = self.keyboard_list)
                self.list.append(getConfigListEntry(_('Keyboard'), self.keyboard))
 
-               if self.conf_alpha == "":
-                       self.conf_alpha = "255"
-               self.alpha = ConfigSlider(default = int(self.conf_alpha), increment = 10, limits = (0, 255))
-               self.list.append(getConfigListEntry(_("Alpha Value"), self.alpha))
-
                if self.conf_keymap == "":
                        self.conf_keymap = self.getLanguage()
                if self.conf_keymap == "":
                        self.conf_keymap = self.getLanguage()
-               self.lang_list = [("en", "English"), ("de", "German")]
+               self.lang_list = [("rc_en", "English(RC)"), ("rc_ch", "German(RC)"), ("en", "English"), ("ch", "German")]
                self.langs = ConfigSelection(default = self.conf_keymap, choices = self.lang_list)
                self.langs = ConfigSelection(default = self.conf_keymap, choices = self.lang_list)
-               self.list.append(getConfigListEntry(_("Language"), self.langs))
+               self.list.append(getConfigListEntry(_("    - Type"), self.langs))
 
 
+               if self.conf_alpha == "":
+                       self.conf_alpha = "255"
+               self.alpha = ConfigSlider(default = int(self.conf_alpha), increment = 10, limits = (0, 255))
+               self.list.append(getConfigListEntry(_("Alpha Value"), self.alpha))
                self["config"].list = self.list
                self["config"].l.setList(self.list)
 
        def getLanguage(self, lang=language.getLanguage()):
                if self.current_lang_idx == 1:
                self["config"].list = self.list
                self["config"].l.setList(self.list)
 
        def getLanguage(self, lang=language.getLanguage()):
                if self.current_lang_idx == 1:
-                       return "de"
-               return "en"
+                       return "rc_ch"
+               return "rc_en"
 
        def makeHandlerList(self, data):
                n = ""
 
        def makeHandlerList(self, data):
                n = ""
@@ -668,8 +669,13 @@ class BrowserLauncher(ConfigListScreen, Screen):
                        mouse_cmd = "export QWS_MOUSE_PROTO=LinuxInput:/dev/input/%s; " % (str(mouse_param))
 
                keymap_param = ""
                        mouse_cmd = "export QWS_MOUSE_PROTO=LinuxInput:/dev/input/%s; " % (str(mouse_param))
 
                keymap_param = ""
-               if self.langs.value == "de":
+               if self.langs.value == "ch":
+                       keymap_param = ":keymap=/usr/share/keymaps/vuplus/ch.qmap"
+               elif self.langs.value == "rc_ch":
                        keymap_param = ":keymap=/usr/share/keymaps/vuplus/de.qmap"
                        keymap_param = ":keymap=/usr/share/keymaps/vuplus/de.qmap"
+               elif self.langs.value == "rc_en":
+                       keymap_param = ":keymap=/usr/share/keymaps/vuplus/us.qmap"
+
                kbd_cmd = "export QWS_KEYBOARD=LinuxInput:/dev/input/%s%s; " % (str(keyboard_param), keymap_param)
 
                cmd = "%s%s%s%s" % (extra_cmd, kbd_cmd, mouse_cmd, browser_cmd)
                kbd_cmd = "export QWS_KEYBOARD=LinuxInput:/dev/input/%s%s; " % (str(keyboard_param), keymap_param)
 
                cmd = "%s%s%s%s" % (extra_cmd, kbd_cmd, mouse_cmd, browser_cmd)
@@ -693,7 +699,7 @@ class BrowserLauncher(ConfigListScreen, Screen):
                self.saveConfig()
                self.info.setText("Starting Webbrowser. Please wait...")
                if self.lock == False:
                self.saveConfig()
                self.info.setText("Starting Webbrowser. Please wait...")
                if self.lock == False:
-                       if self.langs.value == "de":
+                       if self.langs.value == "ch" or self.langs.value == "rc_ch":
                                language.activateLanguageIndex(1)
                        else:
                                language.activateLanguageIndex(0)
                                language.activateLanguageIndex(1)
                        else:
                                language.activateLanguageIndex(0)
index 078852e..52cb658 100644 (file)
Binary files a/lib/python/Plugins/SystemPlugins/FPGAUpgrade/_fpga.so and b/lib/python/Plugins/SystemPlugins/FPGAUpgrade/_fpga.so differ
index 437e654..8819dac 100644 (file)
@@ -77,6 +77,9 @@ NO_TAR_DEVICE_PATH = _fpga.NO_TAR_DEVICE_PATH
 FAIL_OPEN_SRC_FILE = _fpga.FAIL_OPEN_SRC_FILE
 ZERO_SRC_FILE_SIZE = _fpga.ZERO_SRC_FILE_SIZE
 FAIL_OPEN_DEVICE = _fpga.FAIL_OPEN_DEVICE
 FAIL_OPEN_SRC_FILE = _fpga.FAIL_OPEN_SRC_FILE
 ZERO_SRC_FILE_SIZE = _fpga.ZERO_SRC_FILE_SIZE
 FAIL_OPEN_DEVICE = _fpga.FAIL_OPEN_DEVICE
+ERROR_FILE_SIZE = _fpga.ERROR_FILE_SIZE
+ERROR_SET_ACTION_CODE = _fpga.ERROR_SET_ACTION_CODE
+ERROR_PROGRAMMING = _fpga.ERROR_PROGRAMMING
 class Fpga(_object):
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Fpga, name, value)
 class Fpga(_object):
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Fpga, name, value)
index df71d0b..313e162 100644 (file)
@@ -23,11 +23,11 @@ from Components.Sources.StaticText import StaticText
 
 class UpgradeStatus(Screen):
        skin =  """
 
 class UpgradeStatus(Screen):
        skin =  """
-               <screen position="center,center" size="450,100" title="FPGA Upgrade">
+               <screen position="center,center" size="450,130" title="FPGA Upgrade">
                        <widget name="name" position="10,0" size="430,20" font="Regular;18" halign="left" valign="bottom"/>
                        <widget name="slider" position="10,25" size="430,30" backgroundColor="white"/>
                        <widget name="status" position="10,25" zPosition="1" size="430,30" font="Regular;18" halign="center" valign="center" foregroundColor="black" backgroundColor="black" transparent="1"/>
                        <widget name="name" position="10,0" size="430,20" font="Regular;18" halign="left" valign="bottom"/>
                        <widget name="slider" position="10,25" size="430,30" backgroundColor="white"/>
                        <widget name="status" position="10,25" zPosition="1" size="430,30" font="Regular;18" halign="center" valign="center" foregroundColor="black" backgroundColor="black" transparent="1"/>
-                       <widget source="info" render="Label" position="10,70" zPosition="1" size="430,30" font="Regular;22" halign="center" valign="center" backgroundColor="#a08500" transparent="1"/>
+                       <widget source="info" render="Label" position="10,70" zPosition="1" size="430,60" font="Regular;22" halign="center" valign="center" backgroundColor="#a08500" transparent="1"/>
                </screen>
                """
        def __init__(self, session, parent, timeout = 10):
                </screen>
                """
        def __init__(self, session, parent, timeout = 10):
@@ -37,7 +37,7 @@ class UpgradeStatus(Screen):
                self["actions"] = ActionMap(["OkCancelActions"],
                 {
                        "ok": self.keyExit,
                self["actions"] = ActionMap(["OkCancelActions"],
                 {
                        "ok": self.keyExit,
-                }, -1)
+                }, -2)
 
                self.is_done = 0
                self.exit_count = 0
 
                self.is_done = 0
                self.exit_count = 0
@@ -59,6 +59,7 @@ class UpgradeStatus(Screen):
                self.timer_check_progress.callback.append(self.callbackDoCheckProgress)
                interval = self.parent.FPGA.get_interval()
                self.timer_check_progress.start(interval)
                self.timer_check_progress.callback.append(self.callbackDoCheckProgress)
                interval = self.parent.FPGA.get_interval()
                self.timer_check_progress.start(interval)
+               self.need_restart = False
 
        def callbackDoCheckProgress(self):
                self.status = self.parent.FPGA.get_status()
 
        def callbackDoCheckProgress(self):
                self.status = self.parent.FPGA.get_status()
@@ -76,9 +77,13 @@ class UpgradeStatus(Screen):
                        self.timer_exit = eTimer()
                        self.timer_exit.callback.append(self.callbackExit)
                        self.timer_exit.start(1000)
                        self.timer_exit = eTimer()
                        self.timer_exit.callback.append(self.callbackExit)
                        self.timer_exit.start(1000)
-               elif self.status == -1 or self.status == -2:
+               elif self.status < 0:#elif self.status == -1 or self.status == -2:
                        #print "fpga-upgrade error >> errno : [%d]" % (self.status)
                        #print "fpga-upgrade error >> errno : [%d]" % (self.status)
-                       self.status_bar.setText(_("Error[%d]. Press Cancel to exit." % (self.status)))
+                       ERROR_MSG = ''
+                       ERROR_CODE = int(self.status) * -1
+                       ERROR_MSG = self.parent.FPGA.get_error_msg(ERROR_CODE, ERROR_MSG)
+                       self.status_bar.setText("Fail to update!!")
+                       self["info"].setText(_("Error[%d] : %s.\nPress OK to exit." % (self.status, ERROR_MSG)))
                        self.timer_check_progress.stop()
                        self.is_done = 1
                else:
                        self.timer_check_progress.stop()
                        self.is_done = 1
                else:
@@ -86,6 +91,7 @@ class UpgradeStatus(Screen):
                        self.status_bar.setText(_("%d / 100" % (self.status)))
 
        def callbackExit(self):
                        self.status_bar.setText(_("%d / 100" % (self.status)))
 
        def callbackExit(self):
+               self.need_restart = True
                if self.exit_count == self.timeout:
                        self.timer_exit.stop()
                        self.keyExit()
                if self.exit_count == self.timeout:
                        self.timer_exit.stop()
                        self.keyExit()
@@ -93,6 +99,9 @@ class UpgradeStatus(Screen):
                self.instance.setTitle("%s (%d)" % (self.title_str, (self.timeout-self.exit_count)))
 
        def keyExit(self):
                self.instance.setTitle("%s (%d)" % (self.title_str, (self.timeout-self.exit_count)))
 
        def keyExit(self):
+               if self.need_restart:
+                       from Screens.Standby import TryQuitMainloop
+                       self.session.open(TryQuitMainloop, 2)
                if self.is_done :
                        self.close()
                
                if self.is_done :
                        self.close()
                
index 32b39c0..3aa21d8 100644 (file)
Binary files a/lib/python/Plugins/SystemPlugins/FirmwareUpgrade/_fu.so and b/lib/python/Plugins/SystemPlugins/FirmwareUpgrade/_fu.so differ
index 28db880..f3c28a7 100644 (file)
@@ -102,7 +102,7 @@ class UpgradeStatus(Screen):
                        self.cbConfirmExit(False)
                        return
                status = self.FU.getStatus()
                        self.cbConfirmExit(False)
                        return
                status = self.FU.getStatus()
-               if self.old_status > status:
+               if self.old_status > status and status != -1:
                        self.session.open(MessageBox, _("Fail to upgrade!! Retry!!"), MessageBox.TYPE_INFO, timeout = 10)
                self.slider.setValue(status)
                self["status"].setText(_("%d / 100" % (status)))
                        self.session.open(MessageBox, _("Fail to upgrade!! Retry!!"), MessageBox.TYPE_INFO, timeout = 10)
                self.slider.setValue(status)
                self["status"].setText(_("%d / 100" % (status)))
@@ -143,7 +143,7 @@ class Filebrowser(Screen):
        skin =  """
                <screen position="center,center" size="500,260" title="File Browser" >
                        <ePixmap pixmap="Vu_HD/buttons/blue.png" position="5,7" size="80,40" alphatest="blend" />
        skin =  """
                <screen position="center,center" size="500,260" title="File Browser" >
                        <ePixmap pixmap="Vu_HD/buttons/blue.png" position="5,7" size="80,40" alphatest="blend" />
-                       <widget source="key_blue" render="Label" position="40,0" zPosition="1" size="180,40" font="Regular;20" halign="left" valign="center" transparent="1"/>
+                       <widget source="key_blue" render="Label" position="40,0" zPosition="1" size="300,40" font="Regular;20" halign="left" valign="center" transparent="1"/>
                        <widget name="file_list" position="0,50" size="500,160" scrollbarMode="showOnDemand" />
 
                        <widget source="status" render="Label" position="0,220" zPosition="1" size="500,40" font="Regular;18" halign="center" valign="center" backgroundColor="#a08500" transparent="1" />
                        <widget name="file_list" position="0,50" size="500,160" scrollbarMode="showOnDemand" />
 
                        <widget source="status" render="Label" position="0,220" zPosition="1" size="500,40" font="Regular;18" halign="center" valign="center" backgroundColor="#a08500" transparent="1" />
@@ -154,7 +154,7 @@ class Filebrowser(Screen):
                Screen.__init__(self, session)
                 self.session = session 
                
                Screen.__init__(self, session)
                 self.session = session 
                
-               self["key_blue"] = StaticText(_("Download"))
+               self["key_blue"] = StaticText(_("Download  the  firmware (latest)"))
 
                self["status"]    = StaticText(_(" "))
                self["file_list"] = FileList("/", matchingPattern = "^.*")
 
                self["status"]    = StaticText(_(" "))
                self["file_list"] = FileList("/", matchingPattern = "^.*")
@@ -237,7 +237,7 @@ class Filebrowser(Screen):
        # tf  : target file name(string)
        # bd  : target base directory(string)
        # cbfunc(string) : callback function(function)
        # tf  : target file name(string)
        # bd  : target base directory(string)
        # cbfunc(string) : callback function(function)
-       def doDownload(self, uri, tf, bd='/tmp', cbfunc=None):
+       def doDownload(self, uri, tf, bd='/tmp', cbfunc=None, errmsg="Fail to download."):
                tar = bd + "/" + tf
                #print "[FirmwareUpgrade] - Download Info : [%s][%s]" % (uri, tar)
                def doHook(blockNumber, blockSize, totalSize) :
                tar = bd + "/" + tf
                #print "[FirmwareUpgrade] - Download Info : [%s][%s]" % (uri, tar)
                def doHook(blockNumber, blockSize, totalSize) :
@@ -247,13 +247,17 @@ class Filebrowser(Screen):
                try:
                        opener.open(uri)
                except:
                try:
                        opener.open(uri)
                except:
-                       self.session.open(MessageBox, _("File not found in this URL:\n%s"%(uri)), MessageBox.TYPE_INFO, timeout = 10)
+                       #self.session.open(MessageBox, _("File not found in this URL:\n%s"%(uri)), MessageBox.TYPE_INFO, timeout = 10)
+                       print "[FirmwareUpgrade] - Fail to download. URL :",uri
+                       self.session.open(MessageBox, _(errmsg), MessageBox.TYPE_INFO, timeout = 10)
                        del opener
                        return False
                try :
                        f, h = urlretrieve(uri, tar, doHook)
                except IOError, msg:
                        del opener
                        return False
                try :
                        f, h = urlretrieve(uri, tar, doHook)
                except IOError, msg:
-                       self.session.open(MessageBox, _(str(msg)), MessageBox.TYPE_INFO, timeout = 10)
+                       #self.session.open(MessageBox, _(str(msg)), MessageBox.TYPE_INFO, timeout = 10)
+                       print "[FirmwareUpgrade] - Fail to download. ERR_MSG :",str(msg)
+                       self.session.open(MessageBox, _(errmsg), MessageBox.TYPE_INFO, timeout = 10)
                        del opener
                        return False
                del opener
                        del opener
                        return False
                del opener
@@ -298,12 +302,12 @@ class Filebrowser(Screen):
                os.system("rm -f /tmp/" + root_file)
 
                # md5
                os.system("rm -f /tmp/" + root_file)
 
                # md5
-               if not self.doDownload(self.guri+".md5", self.gbin+".md5", cbfunc=cbDownloadDone):
+               if not self.doDownload(self.guri+".md5", self.gbin+".md5", cbfunc=cbDownloadDone, errmsg="Can't download the checksum file."):
                        self.resetGUI()
                        self.downloadLock = False
                        return
                # data
                        self.resetGUI()
                        self.downloadLock = False
                        return
                # data
-               if not self.doDownload(self.guri, self.gbin, cbfunc=cbDownloadDone):
+               if not self.doDownload(self.guri, self.gbin, cbfunc=cbDownloadDone, errmsg="Can't download the firmware file."):
                        self.resetGUI()
                        self.downloadLock = False
                        return
                        self.resetGUI()
                        self.downloadLock = False
                        return