class SoftcamSetup(Screen, ConfigListScreen): skin = """ <screen name="SoftcamSetup" position="center,center" size="560,450" > <widget name="config" position="5,10" size="550,90" /> <widget name="info" position="5,100" size="550,300" font="Fixed;18" /> <ePixmap name="red" position="0,410" zPosition="1" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" /> <ePixmap name="green" position="140,410" zPosition="1" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" /> <ePixmap name="blue" position="420,410" zPosition="1" size="140,40" pixmap="skin_default/buttons/blue.png" transparent="1" alphatest="on" /> <widget name="key_red" position="0,410" zPosition="2" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> <widget name="key_green" position="140,410" zPosition="2" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> <widget name="key_blue" position="420,410" zPosition="2" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> </screen>""" def __init__(self, session): Screen.__init__(self, session) self.setup_title = _("Softcam setup") self.setTitle(self.setup_title) self["actions"] = ActionMap(["OkCancelActions", "ColorActions", "CiSelectionActions"], { "cancel": self.cancel, "green": self.save, "red": self.cancel, "blue": self.ppanelShortcut, },-1) self.list = [ ] ConfigListScreen.__init__(self, self.list, session = session) self.softcam = CamControl('softcam') self.cardserver = CamControl('cardserver') self.ecminfo = GetEcmInfo() (newEcmFound, ecmInfo) = self.ecminfo.getEcm() self["info"] = ScrollLabel("".join(ecmInfo)) self.EcmInfoPollTimer = eTimer() self.EcmInfoPollTimer.callback.append(self.setEcmInfo) self.EcmInfoPollTimer.start(1000) softcams = self.softcam.getList() cardservers = self.cardserver.getList() self.softcams = ConfigSelection(choices = softcams) self.softcams.value = self.softcam.current() self.list.append(getConfigListEntry(_("Select Softcam"), self.softcams)) if cardservers: self.cardservers = ConfigSelection(choices = cardservers) self.cardservers.value = self.cardserver.current() self.list.append(getConfigListEntry(_("Select Card Server"), self.cardservers)) self.list.append(getConfigListEntry(_("Restart softcam"), ConfigAction(self.restart, "s"))) if cardservers: self.list.append(getConfigListEntry(_("Restart cardserver"), ConfigAction(self.restart, "c"))) self.list.append(getConfigListEntry(_("Restart both"), ConfigAction(self.restart, "sc"))) self["key_red"] = Label(_("Cancel")) self["key_green"] = Label(_("OK")) self["key_blue"] = Label(_("Info")) def setEcmInfo(self): (newEcmFound, ecmInfo) = self.ecminfo.getEcm() if newEcmFound: self["info"].setText("".join(ecmInfo)) def ppanelShortcut(self): ppanelFileName = '/etc/ppanels/' + self.softcams.value + '.xml' if "oscam" in self.softcams.value.lower() and os.path.isfile('/usr/lib/enigma2/python/Plugins/Extensions/OscamStatus/plugin.py'): from Plugins.Extensions.OscamStatus.plugin import OscamStatus self.session.open(OscamStatus) elif "cccam" in self.softcams.value.lower() and os.path.isfile('/usr/lib/enigma2/python/Plugins/Extensions/CCcamInfo/plugin.py'): from Plugins.Extensions.CCcamInfo.plugin import CCcamInfoMain self.session.open(CCcamInfoMain) elif os.path.isfile(ppanelFileName) and os.path.isfile('/usr/lib/enigma2/python/Plugins/Extensions/PPanel/plugin.py'): from Plugins.Extensions.PPanel.ppanel import PPanel self.session.open(PPanel, name = self.softcams.value + ' PPanel', node = None, filename = ppanelFileName, deletenode = None) else: return 0 def restart(self, what): self.what = what if "s" in what: if "c" in what: msg = _("Please wait, restarting softcam and cardserver.") else: msg = _("Please wait, restarting softcam.") elif "c" in what: msg = _("Please wait, restarting cardserver.") self.mbox = self.session.open(MessageBox, msg, MessageBox.TYPE_INFO) self.activityTimer = eTimer() self.activityTimer.timeout.get().append(self.doStop) self.activityTimer.start(100, False) def doStop(self): self.activityTimer.stop() if "c" in self.what: self.cardserver.command('stop') if "s" in self.what: self.softcam.command('stop') self.oldref = self.session.nav.getCurrentlyPlayingServiceOrGroup() self.session.nav.stopService() self.activityTimer = eTimer() self.activityTimer.timeout.get().append(self.doStart) self.activityTimer.start(1000, False) def doStart(self): self.activityTimer.stop() del self.activityTimer if "c" in self.what: self.cardserver.select(self.cardservers.value) self.cardserver.command('start') if "s" in self.what: self.softcam.select(self.softcams.value) self.softcam.command('start') if self.mbox: self.mbox.close() self.close() self.session.nav.playService(self.oldref, adjust=False) def restartCardServer(self): if hasattr(self, 'cardservers'): self.restart("c") def restartSoftcam(self): self.restart("s") def save(self): what = '' if hasattr(self, 'cardservers') and (self.cardservers.value != self.cardserver.current()): what = 'sc' elif self.softcams.value != self.softcam.current(): what = 's' if what: self.restart(what) else: self.close() def cancel(self): self.close()
class CardserverSetup(Screen, ConfigListScreen): skin = '\n\t<screen name="CardserverSetup" position="center,center" size="560,450" >\n\t\t<widget name="config" position="5,10" size="550,90" />\n\t\t<widget name="info" position="5,100" size="550,300" font="Fixed;18" />\n\t\t<ePixmap name="red" position="85,410" zPosition="1" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />\n\t\t<ePixmap name="green" position="330,410" zPosition="1" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" />\n\t\t<widget name="key_red" position="20,405" zPosition="2" size="270,50" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" />\n\t\t<widget name="key_green" position="265,405" zPosition="2" size="270,50" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" />\n\t</screen>' def __init__(self, session): Screen.__init__(self, session) self.setup_title = _("Cardserver Setup") self["lab1"] = Label() self["actions"] = ActionMap( ["OkCancelActions", "ColorActions", "CiSelectionActions"], {"cancel": self.cancel, "green": self.save, "red": self.cancel}, -1, ) self.list = [] ConfigListScreen.__init__(self, self.list, session=session) self.cardserver = CardControlService("cardserver") self.ecminfo = GetEcmInfo() newEcmFound, ecmInfo = self.ecminfo.getEcm() self["info"] = ScrollLabel("".join(ecmInfo)) self.EcmInfoPollTimer = eTimer() self.EcmInfoPollTimer.callback.append(self.setEcmInfo) self.EcmInfoPollTimer.start(1000) cardservers = self.cardserver.getList() self.cardservers = ConfigSelection(choices=cardservers) self.cardservers.value = self.cardserver.current() self.list.append(getConfigListEntry(_("Select cardserver"), self.cardservers)) self.list.append(getConfigListEntry(_("Restart cardserver"), ConfigAction(self.restart, "s"))) self["lab1"].setText("%d Cams Instaladas" % (len(self.list))) self["key_red"] = Label(_("Cancel")) self["key_green"] = Label(_("OK")) self.onLayoutFinish.append(self.layoutFinished) def setEcmInfo(self): newEcmFound, ecmInfo = self.ecminfo.getEcm() if newEcmFound: self["info"].setText("".join(ecmInfo)) def layoutFinished(self): self.setTitle(self.setup_title) def restart(self, what): self.what = what if "s" in what: msg = _("Please wait, restarting cardserver.") self.mbox = self.session.open(MessageBoxSF, msg, MessageBoxSF.TYPE_INFO) self.activityTimer = eTimer() self.activityTimer.timeout.get().append(self.doStop) self.activityTimer.start(100, False) def doStop(self): self.activityTimer.stop() if "s" in self.what: self.cardserver.command("stop") self.oldref = self.session.nav.getCurrentlyPlayingServiceReference() self.session.nav.stopService() self.activityTimer = eTimer() self.activityTimer.timeout.get().append(self.doStart) self.activityTimer.start(1000, False) def doStart(self): self.activityTimer.stop() del self.activityTimer if "s" in self.what: self.cardserver.select(self.cardservers.value) self.cardserver.command("start") if self.mbox: self.mbox.close() self.close() self.session.nav.playService(self.oldref) del self.oldref def restartCardserver(self): self.restart("s") def save(self): what = "" if self.cardservers.value != self.cardserver.current(): what = "s" if what: self.restart(what) else: from Components.PluginComponent import plugins plugins.reloadPlugins() self.close() def cancel(self): self.close()
class SoftcamSetup(Screen, ConfigListScreen): skin = """ <screen name="SoftcamSetup" position="center,center" size="560,450" > <widget name="config" position="5,10" size="550,90" /> <widget name="info" position="5,100" size="550,300" font="Fixed;18" /> <ePixmap name="red" position="0,410" zPosition="1" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" /> <ePixmap name="green" position="140,410" zPosition="1" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" /> <ePixmap name="blue" position="420,410" zPosition="1" size="140,40" pixmap="skin_default/buttons/blue.png" transparent="1" alphatest="on" /> <widget name="key_red" position="0,410" zPosition="2" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> <widget name="key_green" position="140,410" zPosition="2" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> <widget name="key_blue" position="420,410" zPosition="2" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> </screen>""" def __init__(self, session, showExtentionMenuOption): Screen.__init__(self, session) self.setup_title = _("Softcam setup") self.setTitle(self.setup_title) self["actions"] = ActionMap( ["OkCancelActions", "ColorActions", "CiSelectionActions"], { "cancel": self.cancel, "green": self.save, "red": self.cancel, "blue": self.ppanelShortcut, }, -1) self.list = [] ConfigListScreen.__init__(self, self.list, session=session) self.softcam = CamControl('softcam') self.cardserver = CamControl('cardserver') self.ecminfo = GetEcmInfo() (newEcmFound, ecmInfo) = self.ecminfo.getEcm() self["info"] = ScrollLabel("".join(ecmInfo)) self.EcmInfoPollTimer = eTimer() self.EcmInfoPollTimer.callback.append(self.setEcmInfo) self.EcmInfoPollTimer.start(1000) softcams = self.softcam.getList() cardservers = self.cardserver.getList() self.softcams = ConfigSelection(choices=softcams) self.softcams.value = self.softcam.current() self.list.append(getConfigListEntry(_("Select Softcam"), self.softcams)) if cardservers: self.cardservers = ConfigSelection(choices=cardservers) self.cardservers.value = self.cardserver.current() self.list.append( getConfigListEntry(_("Select Card Server"), self.cardservers)) self.list.append( getConfigListEntry(_("Restart softcam"), ConfigAction(self.restart, "s"))) if cardservers: self.list.append( getConfigListEntry(_("Restart cardserver"), ConfigAction(self.restart, "c"))) self.list.append( getConfigListEntry(_("Restart both"), ConfigAction(self.restart, "sc"))) if showExtentionMenuOption: self.list.append( getConfigListEntry(_("Show softcam setup in extensions menu"), config.misc.softcam_setup.extension_menu)) self["key_red"] = Label(_("Cancel")) self["key_green"] = Label(_("OK")) self["key_blue"] = Label(_("Info")) def setEcmInfo(self): (newEcmFound, ecmInfo) = self.ecminfo.getEcm() if newEcmFound: self["info"].setText("".join(ecmInfo)) def ppanelShortcut(self): if "oscam" in self.softcams.value.lower() and os.path.isfile( '/usr/lib/enigma2/python/Plugins/Extensions/OscamStatus/plugin.py' ): from Plugins.Extensions.OscamStatus.plugin import OscamStatus self.session.open(OscamStatus) ppanelFileName = '/etc/ppanels/' + self.softcams.value + '.xml' if os.path.isfile(ppanelFileName) and os.path.isfile( '/usr/lib/enigma2/python/Plugins/Extensions/PPanel/plugin.py'): from Plugins.Extensions.PPanel.ppanel import PPanel self.session.open(PPanel, name=self.softcams.value + ' PPanel', node=None, filename=ppanelFileName, deletenode=None) else: return 0 def restart(self, what): self.what = what if "s" in what: if "c" in what: msg = _("Please wait, restarting softcam and cardserver.") else: msg = _("Please wait, restarting softcam.") elif "c" in what: msg = _("Please wait, restarting cardserver.") self.mbox = self.session.open(MessageBox, msg, MessageBox.TYPE_INFO) self.activityTimer = eTimer() self.activityTimer.timeout.get().append(self.doStop) self.activityTimer.start(100, False) def doStop(self): self.activityTimer.stop() if "c" in self.what: self.cardserver.command('stop') if "s" in self.what: self.softcam.command('stop') self.oldref = self.session.nav.getCurrentlyPlayingServiceReference() self.session.nav.stopService() # Delay a second to give 'em a chance to stop self.activityTimer = eTimer() self.activityTimer.timeout.get().append(self.doStart) self.activityTimer.start(1000, False) def doStart(self): self.activityTimer.stop() del self.activityTimer if "c" in self.what: self.cardserver.select(self.cardservers.value) self.cardserver.command('start') if "s" in self.what: self.softcam.select(self.softcams.value) self.softcam.command('start') if self.mbox: self.mbox.close() self.close() self.session.nav.playService(self.oldref) del self.oldref def restartCardServer(self): if hasattr(self, 'cardservers'): self.restart("c") def restartSoftcam(self): self.restart("s") def save(self): what = '' if hasattr(self, 'cardservers') and (self.cardservers.value != self.cardserver.current()): what = 'sc' elif self.softcams.value != self.softcam.current(): what = 's' if what: self.restart(what) else: from Components.PluginComponent import plugins plugins.reloadPlugins() config.misc.softcam_setup.extension_menu.save() self.close() def cancel(self): self.close()
class SoftcamSetup(Screen, ConfigListScreen): if getDesktop(0).size().width() == 1280: skin = """ <screen name="SoftcamSetup" position="center,center" size="560,550" > <widget name="config" position="5,10" size="550,180" /> <widget name="info" position="5,200" size="550,340" font="Fixed;18" /> <ePixmap name="red" position="0,510" zPosition="1" size="140,40" pixmap="buttons/red.png" transparent="1" alphatest="on" /> <ePixmap name="green" position="140,510" zPosition="1" size="140,40" pixmap="buttons/green.png" transparent="1" alphatest="on" /> <widget objectTypes="key_red,StaticText" source="key_red" render="Label" position="0,510" zPosition="2" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> <widget objectTypes="key_green,StaticText" source="key_green" render="Label" position="140,510" zPosition="2" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> <widget objectTypes="key_blue,StaticText" source="key_blue" render="Label" position="420,510" zPosition="2" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1"/> <widget objectTypes="key_blue,StaticText" source="key_blue" render="Pixmap" pixmap="buttons/blue.png" position="420,510" zPosition="1" size="140,40" transparent="1" alphatest="on"> <convert type="ConditionalShowHide"/> </widget> </screen>""" else: skin = """ <screen name="SoftcamSetup" position="485,center" size="951,860" > <widget name="config" position="5,10" size="941,180" font="Fixed;28" itemHeight="32" /> <widget name="info" position="5,200" size="941,500" font="Fixed;32" /> <ePixmap name="red" position="0,819" zPosition="1" size="140,40" pixmap="buttons/red.png" transparent="1" alphatest="on" /> <ePixmap name="green" position="140,819" zPosition="1" size="141,40" pixmap="buttons/green.png" transparent="1" alphatest="on" /> <widget objectTypes="key_red,StaticText" source="key_red" render="Label" position="0,819" zPosition="2" size="140,40" valign="center" halign="center" font="Regular;28" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> <widget objectTypes="key_green,StaticText" source="key_green" render="Label" position="140,819" zPosition="2" size="140,40" valign="center" halign="center" font="Regular;28" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> <widget objectTypes="key_blue,StaticText" source="key_blue" render="Label" position="809,819" zPosition="2" size="140,40" valign="center" halign="center" font="Regular;28" transparent="1" shadowColor="black" shadowOffset="-1,-1"/> <widget objectTypes="key_blue,StaticText" source="key_blue" render="Pixmap" pixmap="buttons/blue.png" position="809,819" zPosition="1" size="140,40" transparent="1" alphatest="on"> <convert type="ConditionalShowHide"/> </widget> </screen>""" def __init__(self, session): Screen.__init__(self, session) self.setup_title = _("Softcam setup") self.setTitle(self.setup_title) self["actions"] = ActionMap(["OkCancelActions", "ColorActions", "CiSelectionActions"], { "cancel": self.cancel, "green": self.save, "red": self.cancel, "blue": self.ppanelShortcut, }, -1) self.list = [ ] ConfigListScreen.__init__(self, self.list, session = session, on_change = self.changedEntry) self.softcam = CamControl('softcam') self.cardserver = CamControl('cardserver') self.ecminfo = GetEcmInfo() (newEcmFound, ecmInfo) = self.ecminfo.getEcm() self["info"] = ScrollLabel("".join(ecmInfo)) self.EcmInfoPollTimer = eTimer() self.EcmInfoPollTimer.callback.append(self.setEcmInfo) self.EcmInfoPollTimer.start(1000) softcams = self.softcam.getList() cardservers = self.cardserver.getList() self.softcams = ConfigSelection(choices = softcams) self.softcams.value = self.softcam.current() self.softcams_text = _("Select Softcam") self.list.append(getConfigListEntry(self.softcams_text, self.softcams)) if cardservers: self.cardservers = ConfigSelection(choices = cardservers) self.cardservers.value = self.cardserver.current() self.list.append(getConfigListEntry(_("Select Card Server"), self.cardservers)) self.list.append(getConfigListEntry(_("Restart softcam"), ConfigAction(self.restart, "s"))) if cardservers: self.list.append(getConfigListEntry(_("Restart cardserver"), ConfigAction(self.restart, "c"))) self.list.append(getConfigListEntry(_("Restart both"), ConfigAction(self.restart, "sc"))) self["key_red"] = StaticText(_("Cancel")) self["key_green"] = StaticText(_("OK")) self["key_blue"] = StaticText() self.onShown.append(self.blueButton) def changedEntry(self): if self["config"].getCurrent()[0] == self.softcams_text: self.blueButton() def blueButton(self): if self.softcams.value and self.softcams.value.lower() != "none": self["key_blue"].setText(_("Info")) else: self["key_blue"].setText("") def setEcmInfo(self): (newEcmFound, ecmInfo) = self.ecminfo.getEcm() if newEcmFound: self["info"].setText("".join(ecmInfo)) def ppanelShortcut(self): ppanelFileName = '/etc/ppanels/' + self.softcams.value + '.xml' if "oscam" or "ncam" in self.softcams.value.lower(): from Screens.OScamInfo import OscamInfoMenu self.session.open(OscamInfoMenu) elif "cccam" in self.softcams.value.lower() and os.path.isfile(resolveFilename(SCOPE_PLUGINS, 'Extensions/CCcamInfo/plugin.pyo')) or os.path.isfile(resolveFilename(SCOPE_PLUGINS, 'Extensions/CCcamInfo/plugin.py')): from Plugins.Extensions.CCcamInfo.plugin import CCcamInfoMain self.session.open(CCcamInfoMain) elif os.path.isfile(ppanelFileName) and os.path.isfile(resolveFilename(SCOPE_PLUGINS, 'Extensions/PPanel/plugin.pyo')) or os.path.isfile(resolveFilename(SCOPE_PLUGINS, 'Extensions/PPanel/plugin.py')): from Plugins.Extensions.PPanel.ppanel import PPanel self.session.open(PPanel, name = self.softcams.value + ' PPanel', node = None, filename = ppanelFileName, deletenode = None) else: return 0 def restart(self, what): self.what = what if "s" in what: if "c" in what: msg = _("Please wait, restarting softcam and cardserver.") else: msg = _("Please wait, restarting softcam.") elif "c" in what: msg = _("Please wait, restarting cardserver.") self.mbox = self.session.open(MessageBox, msg, MessageBox.TYPE_INFO) self.activityTimer = eTimer() self.activityTimer.timeout.get().append(self.doStop) self.activityTimer.start(100, False) def doStop(self): self.activityTimer.stop() if "c" in self.what: self.cardserver.command('stop') if "s" in self.what: self.softcam.command('stop') self.oldref = self.session.nav.getCurrentlyPlayingServiceOrGroup() self.session.nav.stopService() self.activityTimer = eTimer() self.activityTimer.timeout.get().append(self.doStart) self.activityTimer.start(1000, False) def doStart(self): self.activityTimer.stop() del self.activityTimer if "c" in self.what: self.cardserver.select(self.cardservers.value) self.cardserver.command('start') if "s" in self.what: self.softcam.select(self.softcams.value) self.softcam.command('start') if self.mbox: self.mbox.close() self.close() self.session.nav.playService(self.oldref, adjust=False) def restartCardServer(self): if hasattr(self, 'cardservers'): self.restart("c") def restartSoftcam(self): self.restart("s") def save(self): what = '' if hasattr(self, 'cardservers') and (self.cardservers.value != self.cardserver.current()): what = 'sc' elif self.softcams.value != self.softcam.current(): what = 's' if what: self.restart(what) else: self.close() def cancel(self): self.close()
class SoftcamSetupSF(Screen, ConfigListScreen): skin = '\n\t<screen name="SoftcamSetup" position="center,center" size="560,450" >\n\t\t<widget name="config" position="5,10" size="550,90" />\n\t\t<widget name="info" position="5,100" size="550,300" font="Fixed;18" />\n\t\t<ePixmap name="red" position="85,410" zPosition="1" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />\n\t\t<ePixmap name="green" position="330,410" zPosition="1" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" />\n\t\t<widget name="key_red" position="20,405" zPosition="2" size="270,50" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" />\n\t\t<widget name="key_green" position="265,405" zPosition="2" size="270,50" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" />\n\t</screen>' def __init__(self, session): Screen.__init__(self, session) self.setup_title = _('Softcam Setup') self["lab1"] = Label() self['actions'] = ActionMap(['OkCancelActions', 'ColorActions', 'CiSelectionActions'], {'cancel': self.cancel, 'green': self.save, 'red': self.cancel}, -1) self.list = [] ConfigListScreen.__init__(self, self.list, session=session) self.softcam = CamControlService('softcam') self.ecminfo = GetEcmInfo() newEcmFound, ecmInfo = self.ecminfo.getEcm() self['info'] = ScrollLabel(''.join(ecmInfo)) self.EcmInfoPollTimer = eTimer() self.EcmInfoPollTimer.callback.append(self.setEcmInfo) self.EcmInfoPollTimer.start(1000) softcams = self.softcam.getList() self.softcams = ConfigSelection(choices=softcams) self.softcams.value = self.softcam.current() self.list.append(getConfigListEntry(_('Select softcam'), self.softcams)) self.list.append(getConfigListEntry(_('Restart softcam'), ConfigAction(self.restart, 's'))) self["lab1"].setText("%d Cams Instaladas" % (len(self.list))) self['key_red'] = Label(_('Cancel')) self['key_green'] = Label(_('OK')) self.onLayoutFinish.append(self.layoutFinished) def setEcmInfo(self): newEcmFound, ecmInfo = self.ecminfo.getEcm() if newEcmFound: self['info'].setText(''.join(ecmInfo)) def layoutFinished(self): self.setTitle(self.setup_title) def restart(self, what): self.what = what if 's' in what: msg = _('Please wait, restarting softcam.') self.mbox = self.session.open(MessageBoxSF, msg, MessageBoxSF.TYPE_INFO) self.activityTimer = eTimer() self.activityTimer.timeout.get().append(self.doStop) self.activityTimer.start(100, False) def doStop(self): self.activityTimer.stop() if 's' in self.what: self.softcam.command('stop') self.oldref = self.session.nav.getCurrentlyPlayingServiceReference() self.session.nav.stopService() self.activityTimer = eTimer() self.activityTimer.timeout.get().append(self.doStart) self.activityTimer.start(1000, False) def doStart(self): self.activityTimer.stop() del self.activityTimer if 's' in self.what: self.softcam.select(self.softcams.value) self.softcam.command('start') if self.mbox: self.mbox.close() self.close() self.session.nav.playService(self.oldref) del self.oldref def restartCardServer(self): if hasattr(self, 'cardservers'): self.restart('c') def restartSoftcam(self): self.restart('s') def save(self): what = '' if self.softcams.value != self.softcam.current(): what = 's' if what: self.restart(what) else: from Components.PluginComponent import plugins plugins.reloadPlugins() self.close() def cancel(self): self.close()
class slManager(Screen): instance = None # if DESKHEIGHT < 1280: skin = skin_path + 'slManager.xml' # else: # skin = skin_path + 'slManagerFHD.xml' f = open(skin, 'r') skin = f.read() f.close() def __init__(self, session, args=0): assert not slManager.instance, "only one slManager instance is allowed!" slManager.instance = self self.skin = slManager.skin Screen.__init__(self, session) self.setTitle(_('Sat-Lodge Manager V. %s' % Version)) self.session = session self.index = 0 self.emulist = [] self.namelist = [] self.oldService = self.session.nav.getCurrentlyPlayingServiceReference( ) self["actions"] = ActionMap( ["OkCancelActions", "ColorActions"], { "ok": self.action, "cancel": self.close, "yellow": self.download, "green": self.action, "blue": self.slpanel, "red": self.stop, }, -1) self["key_green"] = Button(_("Start")) self["key_blue"] = Button(_("SatLodge Panel")) self['key_blue'].hide() if fileExists( '/usr/lib/enigma2/python/Plugins/SatLodge/slPanel/plugin.pyo'): self["key_blue"].show() self["key_yellow"] = Button(_("Download")) self["key_red"] = Button(_("Stop")) self['version'] = Label(_('V. %s' % Version)) self['maintener'] = Label(_('by ))^^((')) self['team'] = Label(_('..:: Sat-Lodge Manager ::..')) self['info'] = Label() self.currCam = self.readCurrent() self.softcamslist = [] self['desc'] = Label() self['ecminfo'] = Label(_('Ecm Info')) self["list"] = m2list([]) self['desc'].setText(_('Scanning and retrieval list softcam ...')) self.timer = eTimer() self.timer.start(100, 1) try: self.timer_conn = self.timer.timeout.connect(self.cgdesc) except: self.timer.callback.append(self.cgdesc) self.readScripts() self.ecminfo = GetEcmInfo() (newEcmFound, ecmInfo) = self.ecminfo.getEcm() self["info"] = ScrollLabel("".join(ecmInfo)) self.EcmInfoPollTimer = eTimer() self.EcmInfoPollTimer.start(100) try: self.EcmInfoPollTimer.callback.append(self.setEcmInfo) except: self.timer_conn = self.EcmInfoPollTimer.timeout.connect( self.setEcmInfo) def slpanel(self): if fileExists( '/usr/lib/enigma2/python/Plugins/SatLodge/slPanel/plugin.pyo'): from Plugins.SatLodge.slPanel.plugin import logoStrt self.session.openWithCallback(self.close, logoStrt) else: self.session.open(MessageBox, ("slPanel Not Installed!!"), type=MessageBox.TYPE_INFO, timeout=3) def setEcmInfo(self): (newEcmFound, ecmInfo) = self.ecminfo.getEcm() if newEcmFound: self["info"].setText("".join(ecmInfo)) else: self.ecm() def ecm(self): ecmf = "" if os.path.isfile("/tmp/ecm.info") is True: myfile = file(r"/tmp/ecm.info") ecmf = "" for line in myfile.readlines(): print line ecmf = ecmf + line self["info"].setText(ecmf) else: self["info"].setText(ecmf) #return def cgdesc(self): self['desc'].setText(_('Select a cam to run ...')) def openTest(self): # self["pixmap"].instance.setPixmapFromFile("/usr/lib/enigma2/python/Plugins/SatLodge/slManager/camd.png") return def download(self): self.session.open(GetipklistLs) self.onShown.append(self.readScripts) #self.close() def getLastIndex(self): a = 0 if len(self.namelist) > 0: for x in self.namelist: if x == self.currCam: return a else: a += 1 else: return -1 return -1 def action(self): self.session.nav.playService(None) last = self.getLastIndex() var = self["list"].getSelectionIndex() if last > -1: if last == var: self.cmd1 = "/usr/camscript/" + self.softcamslist[var][ 0] + '.sh' + " cam_res &" os.system(self.cmd1) os.system("sleep 1") else: self.cmd1 = "/usr/camscript/" + self.softcamslist[last][ 0] + '.sh' + " cam_down &" os.system(self.cmd1) os.system("sleep 1") self.cmd1 = "/usr/camscript/" + self.softcamslist[var][ 0] + '.sh' + " cam_up &" os.system(self.cmd1) else: try: self.cmd1 = "/usr/camscript/" + self.softcamslist[var][ 0] + '.sh' + " cam_up &" os.system(self.cmd1) os.system("sleep 1") except: self.close() if last != var: try: self.currCam = self.softcamslist[var][0] self.writeFile() except: self.close() self.readScripts() self.session.nav.playService(self.oldService) ##self.close() def writeFile(self): if not self.currCam is None: clist = open("/etc/clist.list", "w") clist.write(self.currCam) clist.close() stcam = open("/etc/startcam.sh", "w") stcam.write("#!/bin/sh\n" + self.cmd1) stcam.close() self.cmd2 = "chmod 755 /etc/startcam.sh &" os.system(self.cmd2) def stop(self): self.session.nav.playService(None) last = self.getLastIndex() if last > -1: self.cmd1 = "/usr/camscript/" + self.softcamslist[last][ 0] + '.sh' + " cam_down &" os.system(self.cmd1) else: return self.currCam = "no" self.writeFile() os.system("sleep 1") self.readScripts() self["info"].setText(" ") self.session.nav.playService(self.oldService) def readScripts(self): self.index = 0 self.indexto = '' scriptlist = [] pliste = [] path = "/usr/camscript/" for root, dirs, files in os.walk(path): for name in files: scriptlist.append(name) self.emulist = scriptlist i = len(self.softcamslist) del self.softcamslist[0:i] for lines in scriptlist: dat = path + lines sfile = open(dat, "r") for line in sfile: if line[0:3] == 'OSD': nam = line[5:len(line) - 2] print 'We are in slManager readScripts 2 nam = ', nam if self.currCam is not None: if nam == self.currCam: self.softcamslist.append(show_list(nam)) else: self.softcamslist.append(show_list(nam)) self.index += 1 else: self.softcamslist.append(show_list(nam)) self.index += 1 pliste.append(nam) sfile.close() # self['list'].setList(self.softcamslist) self['list'].l.setList(self.softcamslist) # if HD.width() == 1280: # # if sz_w == 1280: # self['list'].l.setItemHeight(40) # else: # self['list'].l.setItemHeight(50) self.namelist = pliste return def readCurrent(self): currCam = '' FilCurr = '' if fileExists("/etc/CurrentBhCamName"): FilCurr = "/etc/CurrentBhCamName" else: FilCurr = "/etc/clist.list" try: clist = open(FilCurr, "r") except: return None if not clist is None: for line in clist: currCam = line #.replace('"','').replace('\t','').replace('\n','').replace('\r','').replace(' ','') clist.close() return currCam def autocam(self): current = None try: clist = open("/etc/clist.list", "r") print 'found list' except: return None if not clist is None: for line in clist: current = line clist.close() print "current =", current if os.path.isfile("/etc/autocam.txt") is False: alist = open("/etc/autocam.txt", "w") alist.close() self.autoclean() alist = open("/etc/autocam.txt", "a") alist.write(self.oldService.toString() + "\n") last = self.getLastIndex() alist.write(current + "\n") alist.close() self.session.openWithCallback( self.callback, MessageBox, _("Autocam assigned to the current channel"), type=1, timeout=10) def autoclean(self): delemu = "no" if os.path.isfile("/etc/autocam.txt") is False: return myfile = open("/etc/autocam.txt", "r") myfile2 = open("/etc/autocam2.txt", "w") icount = 0 for line in myfile.readlines(): print "We are in slManager line, self.oldService.toString() =", line, self.oldService.toString( ) if line[:-1] == self.oldService.toString(): delemu = "yes" icount = icount + 1 continue if delemu == "yes": delemu = "no" icount = icount + 1 continue myfile2.write(line) icount = icount + 1 myfile.close() myfile2.close() os.system("rm /etc/autocam.txt") os.system("cp /etc/autocam2.txt /etc/autocam.txt")