示例#1
0
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()
示例#2
0
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()
示例#3
0
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()
示例#5
0
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()
示例#6
0
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")