X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FPlugins%2FSystemPlugins%2FRemoteControlCode%2Fplugin.py;h=a583331061a0212e27f57c86da4c0698d301cab1;hp=55a12f587096e9f5562ae2eedc4a0126babe6377;hb=cd193b196e92952e56608e4a23676c2237c41f21;hpb=86ede4f51dcd5f65300a4f9a926be549806cc5cc diff --git a/lib/python/Plugins/SystemPlugins/RemoteControlCode/plugin.py b/lib/python/Plugins/SystemPlugins/RemoteControlCode/plugin.py index 55a12f5..a583331 100755 --- a/lib/python/Plugins/SystemPlugins/RemoteControlCode/plugin.py +++ b/lib/python/Plugins/SystemPlugins/RemoteControlCode/plugin.py @@ -8,10 +8,27 @@ from Plugins.Plugin import PluginDescriptor from Tools.Directories import fileExists from enigma import eTimer, quitMainloop +def getModel(): + ret = None + if fileExists("/proc/stb/info/vumodel"): + vumodel = open("/proc/stb/info/vumodel") + info=vumodel.read().strip() + vumodel.close() + ret = info + + return ret + +def getRcuDefaultType(): + if getModel() in ["uno4kse", "zero4k", "duo4k", "duo4kse"]: + return "new" + return "legacy" + config.plugins.remotecontrolcode = ConfigSubsection() config.plugins.remotecontrolcode.systemcode = ConfigSelection(default = "2", choices = [ ("1", "1 "), ("2", "2 "), ("3", "3 "), ("4", "4 ") ] ) config.plugins.remotecontrolcode.replytimeout = ConfigInteger(default = 30, limits = (15,9999)) +config.plugins.remotecontrolcode.rcuType = ConfigSelection(default = getRcuDefaultType(), choices = + [ ("legacy", "Legacy Vu+ Universal RCU"), ("new", "New Vu+ DarkBrown/Bluetooth RCU") ] ) class RemoteControlCodeInit: def __init__(self): @@ -26,27 +43,26 @@ class RemoteControlCodeInit: f.close() return 0 - def getModel(self): - if fileExists("/proc/stb/info/vumodel"): - vumodel = open("/proc/stb/info/vumodel") - info=vumodel.read().strip() - vumodel.close() - if info in ["uno", "ultimo"]: - return True - else: - return False - else: - return False + def checkModelSupport(self): + ret = None + model = getModel() + if model not in ["duo", "solo"]: + ret = True + + return ret class RemoteControlCode(Screen,ConfigListScreen,RemoteControlCodeInit): - skin = """ - - - - - - - """ + skin = """ + + + + + + + + + + """ def __init__(self,session): Screen.__init__(self,session) @@ -67,22 +83,30 @@ class RemoteControlCode(Screen,ConfigListScreen,RemoteControlCodeInit): self.replytext_2 +="\n1. Press Digit 2 and Digit 7 simultaneously for 3 seconds. After 3 seconds LED turns on. " self.replytext_2 +="\n2. Press the key. LED is blinked and turns on." self.replytext_2 +="\n3. Enter a 4 digit code(ex. code 2 is '0002')" + + self.replytext_newrcu_2 ="\n\n" + self.replytext_newrcu_2 +="\n1. Press and simultaneously for 3 seconds. After 3 seconds LED turns on. " + self.replytext_newrcu_2 +="\n2. Enter a 5 digit code(ex. code 2 is '00002')" + self.replytext_newrcu_2 +="\n3. Press the key. LED is blinked and turns on." + self.createSetup() self.onLayoutFinish.append(self.checkModel) self.checkModelTimer = eTimer() self.checkModelTimer.callback.append(self.invalidmodel) def checkModel(self): - if not self.getModel(): + if not self.checkModelSupport(): self.checkModelTimer.start(1000,True) def invalidmodel(self): - self.session.openWithCallback(self.close, MessageBox, _("This Plugin only support for UNO/ULTIMO"), MessageBox.TYPE_ERROR) + self.session.openWithCallback(self.close, MessageBox, _("This Plugin doesn't support on SOLO/DUO"), MessageBox.TYPE_ERROR) def createSetup(self): self.list = [] + self.rcuTypeEntry = getConfigListEntry(_("Remote Control Type"), config.plugins.remotecontrolcode.rcuType) self.rcsctype = getConfigListEntry(_("Remote Control System Code"), config.plugins.remotecontrolcode.systemcode) self.replytimeout = getConfigListEntry(_("Reply timeout"), config.plugins.remotecontrolcode.replytimeout) + self.list.append( self.rcuTypeEntry ) self.list.append( self.rcsctype ) self.list.append( self.replytimeout ) self["config"].list = self.list @@ -96,7 +120,12 @@ class RemoteControlCode(Screen,ConfigListScreen,RemoteControlCodeInit): self.session.openWithCallback(self.close, MessageBox, _("FILE NOT EXIST : /proc/stb/fp/remote_code"), MessageBox.TYPE_ERROR) else: timeout = config.plugins.remotecontrolcode.replytimeout.value - self.session.openWithCallback(self.MessageBoxConfirmCodeCallback, MessageBoxConfirmCode, self.replytext_1,self.replytext_2 ,MessageBox.TYPE_YESNO, timeout = timeout, default = False) + text1 = self.replytext_1 + text2 = self.replytext_2 + if config.plugins.remotecontrolcode.rcuType.value == "new": + text2 = self.replytext_newrcu_2 + + self.session.openWithCallback(self.MessageBoxConfirmCodeCallback, MessageBoxConfirmCode, text1, text2, MessageBox.TYPE_YESNO, timeout = timeout, default = False) def restoreCode(self): for x in self["config"].list: @@ -114,21 +143,21 @@ class RemoteControlCode(Screen,ConfigListScreen,RemoteControlCodeInit): quitMainloop(3) class MessageBoxConfirmCode(MessageBox): - skin = """ - - - - - - - + skin = """ + + + + + + + # this should be factored out into some helper code, but currently demonstrates applets. from enigma import eSize, ePoint -orgwidth = self.instance.size().width() +orgwidth = self.instance.size().width() orgheight = self.instance.size().height() -orgpos = self.instance.position() -textsize = self["text"].getSize() +orgpos = self.instance.position() +textsize = self["text"].getSize() # y size still must be fixed in font stuff... textsize = (textsize[0] + 50, textsize[1] + 50) @@ -141,7 +170,6 @@ if (280 > wsizex): wsizex = 280 wsize = (wsizex, wsizey) - # resize self.instance.resize(eSize(*wsize)) @@ -156,9 +184,14 @@ self["list"].instance.resize(eSize(*listsize)) # center window newwidth = wsize[0] newheight = wsize[1] -self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y() + (orgheight - newheight)/2)) - - """ +window_posx = orgpos.x() + (orgwidth - newwidth)/2 +window_posy = orgpos.y() + (orgheight - newheight)/2 +if (150 > window_posy): + window_posy = 150 +self.instance.move(ePoint(window_posx, window_posy)) + + + """ def __init__(self, session, replytext_1="", replytext_2="", type = MessageBox.TYPE_YESNO, timeout = -1, close_on_any_key = False, default = True, enable_input = True, msgBoxID = None): self.replytext_1 = replytext_1