X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FPlugins%2FSystemPlugins%2FCommonInterfaceAssignment%2Fplugin.py;h=52296c6685f908e6ccfbb1241a7e84d8938a6189;hp=4c8167d4b3c8918919b767e7b39532765b8155b9;hb=879d60c88e24c2c3f2aab9dff73192c901f63f31;hpb=bce53d4a67d1655a496eebe5912c8573e880114e diff --git a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py old mode 100644 new mode 100755 index 4c8167d..52296c6 --- a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py +++ b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py @@ -12,35 +12,33 @@ from ServiceReference import ServiceReference from Plugins.Plugin import PluginDescriptor from xml.etree.cElementTree import parse as ci_parse from Tools.XMLTools import elementsWithTag, mergeText, stringToXML -from enigma import eDVBCI_UI, eDVBCIInterfaces +from enigma import eDVBCI_UI, eDVBCIInterfaces, eEnv from os import system, path as os_path class CIselectMainMenu(Screen): skin = """ - - - - - - - + + + + + + """ def __init__(self, session, args = 0): - self.skin = CIselectMainMenu.skin + Screen.__init__(self, session) - self["key_red"] = StaticText(_("Cancel")) - self["key_green"] = StaticText(_("Config")) + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Edit")) self["actions"] = ActionMap(["ColorActions","SetupActions"], { "green": self.greenPressed, - "red": self.redPressed, - "yellow": self.yellowPressed, + "red": self.close, "ok": self.greenPressed, - "cancel": self.cancel + "cancel": self.close }, -1) NUM_CI=eDVBCIInterfaces.getInstance().getNumOfSlots() @@ -54,7 +52,7 @@ class CIselectMainMenu(Screen): for slot in range(NUM_CI): state = eDVBCI_UI.getInstance().getState(slot) if state == 0: - appname = _("Slot %d") %(slot+1) + " - " + _("no module") + appname = _("Slot %d") %(slot+1) + " - " + _("no module found") elif state == 1: appname = _("Slot %d") %(slot+1) + " - " + _("init modules") elif state == 2: @@ -67,6 +65,10 @@ class CIselectMainMenu(Screen): menuList.list = self.list menuList.l.setList(self.list) self["CiList"] = menuList + self.onShown.append(self.setWindowTitle) + + def setWindowTitle(self): + self.setTitle(_("CI assignment")) def greenPressed(self): cur = self["CiList"].getCurrent() @@ -82,52 +84,47 @@ class CIselectMainMenu(Screen): else: self.session.open(easyCIconfigMenu, slot) - def yellowPressed(self): + """def yellowPressed(self): # unused NUM_CI=eDVBCIInterfaces.getInstance().getNumOfSlots() print "[CI_Check] FOUND %d CI Slots " % NUM_CI if NUM_CI > 0: for ci in range(NUM_CI): - print eDVBCIInterfaces.getInstance().getDescrambleRules(ci) -# else: -# print "no ci found" - - def redPressed(self): - print "[CI_Config] RED BUTTON not implemented yet - only use self.cancel()" - self.cancel() + print eDVBCIInterfaces.getInstance().getDescrambleRules(ci)""" - def cancel(self): - self.close() class CIconfigMenu(Screen): skin = """ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + """ def __init__(self, session, ci_slot="9"): - self.skin = CIconfigMenu.skin + Screen.__init__(self, session) self.ci_slot=ci_slot - self.filename="/etc/enigma2/ci"+str(self.ci_slot)+".xml" - - self["key_red"] = StaticText(_("delete")) + self.filename = eEnv.resolve("${sysconfdir}/enigma2/ci") + str(self.ci_slot) + ".xml" + + self["key_red"] = StaticText(_("Delete")) self["key_green"] = StaticText(_("add Service")) self["key_yellow"] = StaticText(_("add Provider")) self["key_blue"] = StaticText(_("select CAId")) - self["CAidList.desc"] = Label(_("assigned CAIds")) - self["ServiceList.desc"] = Label(_("assigned Services/Provider")) + self["CAidList_desc"] = StaticText(_("assigned CAIds:")) + self["CAidList"] = StaticText() + self["ServiceList_desc"] = StaticText(_("assigned Services/Provider:")) + self["ServiceList_info"] = StaticText() self["actions"] = ActionMap(["ColorActions","SetupActions"], { @@ -135,10 +132,9 @@ class CIconfigMenu(Screen): "red": self.redPressed, "yellow": self.yellowPressed, "blue": self.bluePressed, - "ok": self.okPressed, "cancel": self.cancel }, -1) - + print "[CI_Wizzard_Config] Configuring CI Slots : %d " % self.ci_slot i=0 @@ -149,10 +145,10 @@ class CIconfigMenu(Screen): self.caidlist.append((str(hex(int(caid))),str(caid),i)) print "[CI_Wizzard_Config_CI%d] read following CAIds from CI: %s" %(self.ci_slot, self.caidlist) - self.selectedcaid =[] + + self.selectedcaid = [] self.servicelist = [] - self.caids=_("no CAId selected") - self["CAidList"] = Label(self.caids) + self.caids = "" serviceList = ConfigList(self.servicelist) serviceList.list = self.servicelist @@ -163,6 +159,11 @@ class CIconfigMenu(Screen): # if config mode !=advanced autoselect any caid if config.usage.setup_level.index <= 1: # advanced self.selectedcaid=self.caidlist + self.finishedCAidSelection(self.selectedcaid) + self.onShown.append(self.setWindowTitle) + + def setWindowTitle(self): + self.setTitle(_("CI assignment")) def redPressed(self): self.delete() @@ -176,19 +177,23 @@ class CIconfigMenu(Screen): def bluePressed(self): self.session.openWithCallback(self.finishedCAidSelection, CAidSelect, self.caidlist, self.selectedcaid) - def okPressed(self): - print "[CI_Config_CI%d] OK BUTTON not implemented yet" %self.ci_slot - def cancel(self): self.saveXML() activate_all(self) self.close() + def setServiceListInfo(self): + if len(self.servicelist): + self["ServiceList_info"].setText("") + else: + self["ServiceList_info"].setText(_("no Services/Providers selected")) + def delete(self): cur = self["ServiceList"].getCurrent() if cur and len(cur) > 2: self.servicelist.remove(cur) self["ServiceList"].l.setList(self.servicelist) + self.setServiceListInfo() def finishedChannelSelection(self, *args): if len(args): @@ -197,9 +202,10 @@ class CIconfigMenu(Screen): service_name = service_ref.getServiceName() if find_in_list(self.servicelist, service_name, 0)==False: split_ref=service_ref.ref.toString().split(":") - if split_ref[0] == "1": #== dvb service und nicht muell von None + if split_ref[0] == "1":#== dvb service und nicht muell von None self.servicelist.append( (service_name , ConfigNothing(), 0, service_ref.ref.toString()) ) self["ServiceList"].l.setList(self.servicelist) + self.setServiceListInfo() def finishedProviderSelection(self, *args): if len(args)>1: # bei nix selected kommt nur 1 arg zurueck (==None) @@ -208,16 +214,21 @@ class CIconfigMenu(Screen): if find_in_list(self.servicelist, name, 0)==False: self.servicelist.append( (name , ConfigNothing(), 1, dvbnamespace) ) self["ServiceList"].l.setList(self.servicelist) + self.setServiceListInfo() def finishedCAidSelection(self, *args): if len(args): self.selectedcaid=args[0] self.caids="" - for item in self.selectedcaid: - if len(self.caids): - self.caids+= ", " + item[0] - else: - self.caids=item[0] + if len(self.selectedcaid): + for item in self.selectedcaid: + if len(self.caids): + self.caids+= ", " + item[0] + else: + self.caids=item[0] + else: + self.selectedcaid=[] + self.caids=_("no CAId selected") else: self.selectedcaid=[] self.caids=_("no CAId selected") @@ -261,7 +272,6 @@ class CIconfigMenu(Screen): self.read_providers=[] self.usingcaid=[] self.ci_config=[] -# for ci in tree.findall("ci"): for slot in tree.findall("slot"): read_slot = getValue(slot.findall("id"), False).encode("UTF-8") print "ci " + read_slot @@ -298,52 +308,51 @@ class CIconfigMenu(Screen): print self.ci_config self.finishedCAidSelection(self.selectedcaid) self["ServiceList"].l.setList(self.servicelist) + self.setServiceListInfo() + class easyCIconfigMenu(CIconfigMenu): skin = """ - - - - - - - - - - + + + + + + + + + + """ def __init__(self, session, ci_slot="9"): + ci=ci_slot CIconfigMenu.__init__(self, session, ci_slot) - self.skin = easyCIconfigMenu.skin - + self["actions"] = ActionMap(["ColorActions","SetupActions"], { "green": self.greenPressed, "red": self.redPressed, "yellow": self.yellowPressed, - "blue": self.bluePressed, - "ok": self.okPressed, "cancel": self.cancel - }, -1) - - def bluePressed(self): - print "do nothing" + }) + class CAidSelect(Screen): skin = """ - - - - - - - + + + + + + + + """ - + def __init__(self, session, list, selected_caids): - self.skin = CAidSelect.skin + Screen.__init__(self, session) self.list = SelectionList() @@ -357,6 +366,7 @@ class CAidSelect(Screen): self["key_red"] = StaticText(_("Cancel")) self["key_green"] = StaticText(_("Save")) + self["introduction"] = StaticText(_("Press OK to select/deselect a CAId.")) self["actions"] = ActionMap(["ColorActions","SetupActions"], { @@ -365,6 +375,10 @@ class CAidSelect(Screen): "green": self.greenPressed, "red": self.cancel }, -1) + self.onShown.append(self.setWindowTitle) + + def setWindowTitle(self): + self.setTitle(_("select CAId's")) def greenPressed(self): list = self.list.getSelectionsList() @@ -376,16 +390,15 @@ class CAidSelect(Screen): class myProviderSelection(ChannelSelectionBase): skin = """ - + - - - - - - - - + + + + + + + """ def __init__(self, session, title): @@ -395,22 +408,24 @@ class myProviderSelection(ChannelSelectionBase): self["actions"] = ActionMap(["OkCancelActions", "ChannelSelectBaseActions"], { "showFavourites": self.doNothing, - "showAllServices": self.doNothing, + "showAllServices": self.cancel, "showProviders": self.doNothing, "showSatellites": self.doNothing, "cancel": self.cancel, - "ok": self.channelSelected, + "ok": self.channelSelected }) - self["key_red"] = StaticText(_("")) - self["key_green"] = StaticText(_("")) - self["key_yellow"] = StaticText(_("")) - self["key_blue"] = StaticText(_("")) + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText() + self["key_yellow"] = StaticText() + self["key_blue"] = StaticText() + self["introduction"] = StaticText(_("Press OK to select a Provider.")) def doNothing(self): - print "nothing to do..." + pass def __onExecCallback(self): self.showSatellites() + self.setTitle(_("Select provider to add...")) def channelSelected(self): # just return selected service ref = self.getCurrentSelection() @@ -479,46 +494,46 @@ class myProviderSelection(ChannelSelectionBase): class myChannelSelection(ChannelSelectionBase): skin = """ - + - - - - - - + + + + + + + """ def __init__(self, session, title): ChannelSelectionBase.__init__(self, session) self.onShown.append(self.__onExecCallback) - service = self.session.nav.getCurrentService() - if service: - info = service.info() - if info: - refstr = info.getInfoString(iServiceInformation.sServiceref) - self.servicelist.setPlayableIgnoreService(eServiceReference(refstr)) self["actions"] = ActionMap(["OkCancelActions", "TvRadioActions", "ChannelSelectBaseActions"], { "showProviders": self.doNothing, - "showSatellites": self.doNothing, + "showSatellites": self.showAllServices, + "showAllServices": self.cancel, "cancel": self.cancel, "ok": self.channelSelected, "keyRadio": self.setModeRadio, "keyTV": self.setModeTv }) - self["key_green"] = StaticText(_("")) - self["key_yellow"] = StaticText(_("")) + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("All")) + self["key_yellow"] = StaticText() + self["key_blue"] = StaticText(_("Favourites")) + self["introduction"] = StaticText(_("Press OK to select a Provider.")) def __onExecCallback(self): self.setModeTv() + self.setTitle(_("Select service to add...")) def doNothing(self): - print "nothing to do..." + pass def channelSelected(self): # just return selected service ref = self.getCurrentSelection() @@ -552,7 +567,7 @@ def activate_all(session): return Len > 0 and definitions[Len-1].text or default for ci in range(NUM_CI): - filename="/etc/enigma2/ci"+str(ci)+".xml" + filename = eEnv.resolve("${sysconfdir}/enigma2/ci") + str(ci) + ".xml" if not os_path.exists(filename): print "[CI_Activate_Config_CI%d] no config file found" %ci