def __init__(self, type):
		Converter.__init__(self, type)
		Poll.__init__(self)
		self.DynamicSwitch = False
		self.type = type
		self.poll_interval = 9500
		self.poll_enabled = True
		self.caid_data = {
			( "0x100",  "0x1ff", "Seca",       "S" ),
			( "0x500",  "0x5ff", "Via",        "V" ),
			( "0x600",  "0x6ff", "Irdeto",     "I" ),
			( "0x900",  "0x9ff", "NDS",        "ND"),
			( "0xb00",  "0xbff", "Conax",      "CO"),
			( "0xd00",  "0xdff", "CryptoW",    "CW"),
			( "0xe00",  "0xeff", "PowerVU",    "P" ),
			("0x1000", "0x10FF", "Tandberg",   "TB"),
			("0x1700", "0x17ff", "Beta",       "B" ),
			("0x1800", "0x18ff", "Nagra",      "N" ),
			("0x2600", "0x2600", "Biss",       "BI"),
			("0x2700", "0x2710", "Dre3",       "D3"),
			("0x4ae0", "0x4ae1", "Dre",        "D" ),
			("0x4aee", "0x4aee", "BulCrypt",   "B1"),
			("0x5581", "0x5581", "BulCrypt",   "B2"),
			("0x5601", "0x5604", "Verimatrix", "VM") }
		self.ecmdata = GetEcmInfo()
		self.feraw = self.fedata = self.updateFEdata = None
		self.DynamicTimer = eTimer()
		if self.doSwitch:
			try:
				self.DynamicTimer.callback.append(self.doSwitch)
			except:
				return
Exemple #2
0
 def __init__(self, session):
     self.softcam = CamControl("softcam")
     self.ecminfo = GetEcmInfo()
     config.misc.softcams.value == ""
     Setup.__init__(self, session=session, setup="softcamscriptsetup")
     self["key_yellow"] = StaticText()
     self["key_blue"] = StaticText()
     self["restartActions"] = HelpableActionMap(
         self, ["ColorActions"], {
             "yellow":
             (self.restart, _("Immediately restart selected cams."))
         },
         prio=0,
         description=_("Softcam Actions"))
     self["restartActions"].setEnabled(False)
     self["infoActions"] = HelpableActionMap(
         self, ["ColorActions"],
         {"blue": (self.softcamInfo, _("Display oscam information."))},
         prio=0,
         description=_("Softcam Actions"))
     self["infoActions"].setEnabled(False)
     (newEcmFound, ecmInfo) = self.ecminfo.getEcm()
     self["info"] = ScrollLabel("".join(ecmInfo))
     self.EcmInfoPollTimer = eTimer()
     self.EcmInfoPollTimer.callback.append(self.setEcmInfo)
     self.EcmInfoPollTimer.start(1000)
     self.onShown.append(self.updateButtons)
	def ShowECMInformation(self):
		if self.info:
			from Components.Converter.PliExtraInfo import caid_data
			self["Title"].text = _("Service info - ECM Info")
			tlist = []
			for caid in sorted(set(self.info.getInfoObject(iServiceInformation.sCAIDPIDs)), key=lambda x: (x[0], x[1])):
				CaIdDescription = _("Undefined")
				extra_info = ""
				provid = ""
				for caid_entry in caid_data:
					if int(caid_entry[0], 16) <= caid[0] <= int(caid_entry[1], 16):
						CaIdDescription = caid_entry[2]
						break
				if caid[2]:
					if CaIdDescription == "Seca":
						provid = ",".join([caid[2][i:i+4] for i in range(0, len(caid[2]), 30)])
					if CaIdDescription == "Nagra":
						provid = caid[2][-4:]
					if CaIdDescription == "Via":
						provid = caid[2][-6:]
					if provid:
						extra_info = "provid=%s" % provid
					else:
						extra_info = "extra data=%s" % caid[2]
				from Tools.GetEcmInfo import GetEcmInfo
				ecmdata = GetEcmInfo().getEcmData()
				color = "\c00??;?00" if caid[0] == int(ecmdata[1], 16) and (caid[1] == int(ecmdata[3], 16) or str(int(ecmdata[2], 16)) in provid) else ""
				tlist.append(ServiceInfoListEntry("%sECMPid %04X (%d) %04X-%s %s" % (color, caid[1], caid[1], caid[0], CaIdDescription, extra_info)))
			if not tlist:
				tlist.append(ServiceInfoListEntry(_("No ECMPids available (FTA Service)")))
			self["infolist"].l.setList(tlist)
Exemple #4
0
 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)
Exemple #5
0
    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"))
Exemple #6
0
 def __init__(self, type):
     Converter.__init__(self, type)
     Poll.__init__(self)
     self.type = {
         "ShowMe": self.SMART_LABEL,
         "ExpertInfo": self.SMART_INFO_H,
         "ExpertInfoVertical": self.SMART_INFO_V,
         "ServiceInfo": self.SERVICE_INFO,
         "CryptoInfo": self.CRYPTO_INFO
     }[type]
     try:
         self.poll_interval = config.plugins.ValiKSSetup.pollTime.value * 1000
     except:
         self.poll_interval = 1000
     self.poll_enabled = True
     self.idnames = (("0x100", "0x1FF", "Seca", "Seca",
                      " "), ("0x500", "0x5FF", "Via", "Viaccess", " "),
                     ("0x600", "0x6FF", "Irdeto", "Irdeto",
                      " "), ("0x900", "0x9FF", "NDS", "Videoguard", " "),
                     ("0xB00", "0xBFF", "Conax", "Conax",
                      " "), ("0xD00", "0xDFF", "CryptoW", "Cryptoworks",
                             " "), ("0x1700", "0x17FF", "Beta", "Betacrypt",
                                    " "), ("0x1800", "0x18FF", "Nagra",
                                           "Nagravision", " "))
     self.ecmdata = GetEcmInfo()
	def __init__(self, type):
		Converter.__init__(self, type)
		Poll.__init__(self)
		self.type = {
				"ShowMe": self.SMART_LABEL,
				"ExpertInfo": self.SMART_INFO_H,
				"ExpertInfoVertical": self.SMART_INFO_V,
				"ServiceInfo": self.SERVICE_INFO,
				"CryptoInfo": self.CRYPTO_INFO,
				"FrequencyInfo": self.FREQUENCY_INFO
			}[type]

		self.poll_interval = 1000
		self.poll_enabled = True
		self.idnames = (
			("0x100", "0x1FF", "Seca", "S"),
			("0x500", "0x5FF", "Via", "V"),
			("0x600", "0x6FF", "Irdeto", "I"),
			("0x900", "0x9FF", "NDS", "Nd"),
			("0xB00", "0xBFF", "Conax", "Co"),
			("0xD00", "0xDFF", "CryptoW", "Cw"),
			("0x1700", "0x17FF", "Beta", "B"),
			("0x1800", "0x18FF", "Nagra", "N"),
			("0x2600", "0x26FF", "BISS", "Bi"))
		self.ecmdata = GetEcmInfo()
Exemple #8
0
    def __init__(self, type):
        Converter.__init__(self, type)
        Poll.__init__(self)
        self.type = {
            "ShowMe": self.SMART_LABEL,
            "ExpertInfo": self.SMART_INFO_H,
            "ExpertInfoVertical": self.SMART_INFO_V,
            "ServiceInfo": self.SERVICE_INFO,
            "CryptoInfo": self.CRYPTO_INFO,
            "FrequencyInfo": self.FREQUENCY_INFO
        }[type]

        self.poll_interval = 1000
        self.poll_enabled = True
        self.idnames = (("0x100", "0x1FF", "Seca",
                         "S"), ("0x500", "0x5FF", "Via",
                                "V"), ("0x600", "0x6FF", "Irdeto",
                                       "I"), ("0x900", "0x9FF", "NDS", "Nd"),
                        ("0xB00", "0xBFF", "Conax",
                         "Co"), ("0xD00", "0xDFF", "CryptoW",
                                 "Cw"), ("0xE00", "0xEFF", "PowerVU", "P"),
                        ("0x1000", "0x10FF", "Tandberg",
                         "TB"), ("0x1700", "0x17FF", "Beta",
                                 "B"), ("0x1800", "0x18FF", "Nagra", "N"),
                        ("0x2600", "0x2600", "Biss",
                         "Bi"), ("0x2700", "0x2710", "Dre3",
                                 "D3"), ("0x4AE0", "0x4AE1", "Dre", "D"),
                        ("0x4AEE", "0x4AEE", "BulCrypt",
                         "B1"), ("0x5581", "0x5581", "BulCrypt", "B2"),
                        ("0x5601", "0x5604", "Verimatrix", "Vm"))
        self.ecmdata = GetEcmInfo()
Exemple #9
0
    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)
Exemple #10
0
 def __init__(self, type):
     Converter.__init__(self, type)
     Poll.__init__(self)
     self.type = type
     self.poll_interval = 1000
     self.poll_enabled = True
     self.caid_data = (("0x100", "0x1ff", "Seca", "S",
                        True), ("0x500", "0x5ff", "Via", "V", True),
                       ("0x600", "0x6ff", "Irdeto", "I",
                        True), ("0x900", "0x9ff", "NDS", "Nd", True),
                       ("0xb00", "0xbff", "Conax", "Co",
                        True), ("0xd00", "0xdff", "CryptoW", "Cw", True),
                       ("0xe00", "0xeff", "PowerVU", "P",
                        False), ("0x1700", "0x17ff", "Beta", "B", True),
                       ("0x1800", "0x18ff", "Nagra", "N",
                        True), ("0x2600", "0x2600", "Biss", "Bi",
                                False), ("0x4ae0", "0x4ae1", "Dre", "D",
                                         False), ("0x4aee", "0x4aee",
                                                  "BulCrypt", "B1", False),
                       ("0x5581", "0x5581", "BulCrypt", "B2",
                        False), ("0x1010", "0x1010", "Tandberg", "T", True))
     self.ca_table = (("CryptoCaidSecaAvailable", "S",
                       False), ("CryptoCaidViaAvailable", "V", False),
                      ("CryptoCaidIrdetoAvailable", "I",
                       False), ("CryptoCaidNDSAvailable", "Nd", False),
                      ("CryptoCaidConaxAvailable", "Co",
                       False), ("CryptoCaidCryptoWAvailable", "Cw", False),
                      ("CryptoCaidPowerVUAvailable", "P",
                       False), ("CryptoCaidBetaAvailable", "B",
                                False), ("CryptoCaidNagraAvailable", "N",
                                         False), ("CryptoCaidBissAvailable",
                                                  "Bi", False),
                      ("CryptoCaidDreAvailable", "D",
                       False), ("CryptoCaidBulCrypt1Available", "B1",
                                False), ("CryptoCaidBulCrypt2Available",
                                         "B2", False),
                      ("CryptoCaidTandbergAvailable", "T",
                       False), ("CryptoCaidSecaSelected", "S",
                                True), ("CryptoCaidViaSelected", "V", True),
                      ("CryptoCaidIrdetoSelected", "I",
                       True), ("CryptoCaidNDSSelected", "Nd",
                               True), ("CryptoCaidConaxSelected", "Co",
                                       True), ("CryptoCaidCryptoWSelected",
                                               "Cw", True),
                      ("CryptoCaidPowerVUSelected", "P",
                       True), ("CryptoCaidBetaSelected", "B",
                               True), ("CryptoCaidNagraSelected", "N",
                                       True), ("CryptoCaidBissSelected",
                                               "Bi", True),
                      ("CryptoCaidDreSelected", "D",
                       True), ("CryptoCaidBulCrypt1Selected", "B1",
                               True), ("CryptoCaidBulCrypt2Selected", "B2",
                                       True), ("CryptoCaidTandbergSelected",
                                               "T", True))
     self.ecmdata = GetEcmInfo()
     self.feraw = self.fedata = self.updateFEdata = None
Exemple #11
0
    def __init__(self, type):
        Converter.__init__(self, type)
        Poll.__init__(self)

        self.active = False
        self.visible = config.usage.show_cryptoinfo.value
        self.textvalue = ""
        self.poll_interval = 1000
        self.poll_enabled = True
        self.ecmdata = GetEcmInfo()
Exemple #12
0
 def __init__(self, type):
     Converter.__init__(self, type)
     Poll.__init__(self)
     self.type = type
     self.poll_interval = 1000
     self.poll_enabled = True
     self.caid_data = (
         ("0x1700", "0x17ff", "BetaCrypt", "B", True),
         ("0x600", "0x6ff", "Irdeto", "I", True),
         ("0x1800", "0x18ff", "Nagravision", "N", True),
         ("0x100", "0x1ff", "Seca Mediaguard", "S", True),
         ("0x1000", "0x10FF", "Tandberg", "T", True),
         ("0x500", "0x5ff", "Viaccess", "V", True),
         ("0x2600", "0x2600", "Biss", "BI", True),
         ("0x4aee", "0x4aee", "BulCrypt", "BU", True),
         ("0x5581", "0x5581", "BulCrypt", "BU", False),
         ("0xb00", "0xbff", "Conax", "CO", True),
         ("0xd00", "0xdff", "CryptoWorks", "CW", True),
         ("0x4ae0", "0x4ae1", "DRE-Crypt", "DC", True),
         ("0x900", "0x9ff", "NDS Videoguard", "ND", True),
         ("0xe00", "0xeff", "PowerVu", "PV", True),
     )
     self.ca_table = (
         ("CryptoCaidBetatAvailable", "B", False),
         ("CryptoCaidIrdetoAvailable"
          "I", False),
         ("CryptoCaidNagraAvailable", "N", False),
         ("CryptoCaidSecaAvailable", "S", False),
         ("CryptoCaidTandbergAvailable", "T", False),
         ("CryptoCaidViaAvailable", "V", False),
         ("CryptoCaidBissAvailable", "BI", False),
         ("CryptoCaidBulCrypt1Available", "BU", False),
         ("CryptoCaidBulCrypt2Available", "BU", False),
         ("CryptoCaidConaxAvailable", "CO", False),
         ("CryptoCaidCryptoWAvailable", "CW", False),
         ("CryptoCaidDreAvailable", "DC", False),
         ("CryptoCaidNDSAvailable", "ND", False),
         ("CryptoCaidPowerVuAvailable", "PV", False),
         ("CryptoCaidBetaSelected", "B", True),
         ("CryptoCaidIrdetoSelected", "I", True),
         ("CryptoCaidNagraSelected", "N", True),
         ("CryptoCaidSecaSelected", "S", True),
         ("CryptoCaidTandbergSelected", "T", True),
         ("CryptoCaidViaSelected", "V", True),
         ("CryptoCaidBissSelected", "BI", True),
         ("CryptoCaidBulCrypt1Selected", "BU", True),
         ("CryptoCaidBulCrypt2Selected", "BU", True),
         ("CryptoCaidConaxSelected", "CO", True),
         ("CryptoCaidCryptoWSelected", "CW", True),
         ("CryptoCaidDreSelected", "DC", True),
         ("CryptoCaidNDSSelected", "ND", True),
         ("CryptoCaidPowerVuSelected", "PV", True),
     )
     self.ecmdata = GetEcmInfo()
     self.feraw = self.fedata = self.updateFEdata = None
Exemple #13
0
 def __init__(self, type):
     Converter.__init__(self, type)
     Poll.__init__(self)
     self.type = type
     self.poll_interval = 1000
     self.poll_enabled = True
     self.caid_data = (('0x100', '0x1ff', 'Seca', 'S',
                        True), ('0x500', '0x5ff', 'Via', 'V', True),
                       ('0x600', '0x6ff', 'Irdeto', 'I',
                        True), ('0x900', '0x9ff', 'NDS', 'Nd', True),
                       ('0xb00', '0xbff', 'Conax', 'Co',
                        True), ('0xd00', '0xdff', 'CryptoW', 'Cw', True),
                       ('0xe00', '0xeff', 'PowerVU', 'P',
                        False), ('0x1700', '0x17ff', 'Beta', 'B', True),
                       ('0x1800', '0x18ff', 'Nagra', 'N',
                        True), ('0x2600', '0x2600', 'Biss', 'Bi', False),
                       ('0x4ae0', '0x4ae1', 'Dre', 'D',
                        False), ('0x4aee', '0x4aee', 'BulCrypt', 'B1',
                                 False), ('0x5581', '0x5581', 'BulCrypt',
                                          'B2', False))
     self.ca_table = (('CryptoCaidSecaAvailable', 'S',
                       False), ('CryptoCaidViaAvailable', 'V', False),
                      ('CryptoCaidIrdetoAvailable', 'I',
                       False), ('CryptoCaidNDSAvailable', 'Nd', False),
                      ('CryptoCaidConaxAvailable', 'Co',
                       False), ('CryptoCaidCryptoWAvailable', 'Cw', False),
                      ('CryptoCaidPowerVUAvailable', 'P',
                       False), ('CryptoCaidBetaAvailable', 'B',
                                False), ('CryptoCaidNagraAvailable', 'N',
                                         False), ('CryptoCaidBissAvailable',
                                                  'Bi', False),
                      ('CryptoCaidDreAvailable', 'D',
                       False), ('CryptoCaidBulCrypt1Available', 'B1',
                                False), ('CryptoCaidBulCrypt2Available',
                                         'B2', False),
                      ('CryptoCaidSecaSelected', 'S',
                       True), ('CryptoCaidViaSelected', 'V',
                               True), ('CryptoCaidIrdetoSelected', 'I',
                                       True), ('CryptoCaidNDSSelected',
                                               'Nd', True),
                      ('CryptoCaidConaxSelected', 'Co',
                       True), ('CryptoCaidCryptoWSelected', 'Cw',
                               True), ('CryptoCaidPowerVUSelected', 'P',
                                       True), ('CryptoCaidBetaSelected',
                                               'B', True),
                      ('CryptoCaidNagraSelected', 'N',
                       True), ('CryptoCaidBissSelected', 'Bi',
                               True), ('CryptoCaidDreSelected', 'D', True),
                      ('CryptoCaidBulCrypt1Selected', 'B1',
                       True), ('CryptoCaidBulCrypt2Selected', 'B2', True))
     self.ecmdata = GetEcmInfo()
     self.feraw = self.fedata = self.updateFEdata = None
     return
Exemple #14
0
 def __init__(self, session):
     self.softcam = CamControl("softcam")
     self.cardserver = CamControl("cardserver")
     self.ecminfo = GetEcmInfo()
     restartOptions = [("", _("Don't restart")),
                       ("s", _("Restart softcam"))]
     defaultrestart = ""
     softcams = self.softcam.getList()
     defaultsoftcam = self.softcam.current()
     if len(softcams) > 1:
         defaultrestart = "s"
     else:
         softcams = [("", _("None"))]
         defaultsoftcam = ""
     config.misc.softcams = ConfigSelection(default=defaultsoftcam,
                                            choices=softcams)
     cardservers = self.cardserver.getList()
     defaultcardserver = self.cardserver.current()
     if len(cardservers) > 1:
         restartOptions.extend([("c", _("Restart cardserver")),
                                ("sc", _("Restart both"))])
         defaultrestart += "c"
     else:
         cardservers = [("", _("None"))]
         defaultcardserver = ""
     config.misc.cardservers = ConfigSelection(default=defaultcardserver,
                                               choices=cardservers)
     config.misc.restarts = ConfigSelection(default=defaultrestart,
                                            choices=restartOptions)
     Setup.__init__(self, session=session, setup="Softcam")
     self["key_yellow"] = StaticText()
     self["key_blue"] = StaticText()
     self["restartActions"] = HelpableActionMap(
         self, ["ColorActions"], {
             "yellow":
             (self.restart, _("Immediately restart selected devices."))
         },
         prio=0,
         description=_("Softcam Actions"))
     self["restartActions"].setEnabled(False)
     self["infoActions"] = HelpableActionMap(
         self, ["ColorActions"],
         {"blue": (self.softcamInfo, _("Display oscam information."))},
         prio=0,
         description=_("Softcam Actions"))
     self["infoActions"].setEnabled(False)
     (newEcmFound, ecmInfo) = self.ecminfo.getEcm()
     self["info"] = ScrollLabel("".join(ecmInfo))
     self.EcmInfoPollTimer = eTimer()
     self.EcmInfoPollTimer.callback.append(self.setEcmInfo)
     self.EcmInfoPollTimer.start(1000)
     self.onShown.append(self.updateButtons)
 def __init__(self, type):
     Converter.__init__(self, type)
     Poll.__init__(self)
     self.type = type
     self.poll_interval = 1000
     self.poll_enabled = True
     self.ca_table = (('CryptoCaidSeca MediaguardAvailable', 'S',
                       False), ('CryptoCaidViaccessAvailable', 'V', False),
                      ('CryptoCaidIrdetoAvailable', 'I',
                       False), ('CryptoCaidNDS VideoguardAvailable', 'ND',
                                False), ('CryptoCaidConaxAvailable', 'CO',
                                         False),
                      ('CryptoCaidCryptoWorksAvailable', 'CW',
                       False), ('CryptoCaidPowerVUAvailable', 'PV', False),
                      ('CryptoCaidBetaCryptAvailable', 'BC',
                       False), ('CryptoCaidNagravisionAvailable', 'N',
                                False), ('CryptoCaidBissAvailable', 'B',
                                         False),
                      ('CryptoCaidDreCryptAvailable', 'DC',
                       False), ('CryptoCaidBulCrypt1Available', 'B1',
                                False), ('CryptoCaidBulCrypt2Available',
                                         'B2', False),
                      ('CryptoCaidDG-CryptAvailable', 'DG',
                       False), ('CryptoCaidCryptoGuardAvailable', 'CG',
                                False), ('CryptoCaidVerimatrixAvailable',
                                         'VM', False),
                      ('CryptoCaidTandbergAvailable', 'TB',
                       False), ('CryptoCaidSeca MediaguardSelected', 'S',
                                True), ('CryptoCaidViaccessSelected', 'V',
                                        True), ('CryptoCaidIrdetoSelected',
                                                'I', True),
                      ('CryptoCaidNDS VideoguardSelected', 'ND',
                       True), ('CryptoCaidConaxSelected', 'CO', True),
                      ('CryptoCaidCryptoWorksSelected', 'CW',
                       True), ('CryptoCaidPowerVUSelected', 'PV', True),
                      ('CryptoCaidBetaCryptSelected', 'BC',
                       True), ('CryptoCaidNagravisionSelected', 'N',
                               True), ('CryptoCaidBissSelected', 'B', True),
                      ('CryptoCaidDreCryptSelected', 'DC',
                       True), ('CryptoCaidBulCrypt1Selected', 'B1',
                               True), ('CryptoCaidBulCrypt2Selected', 'B2',
                                       True), ('CryptoCaidDG-CryptSelected',
                                               'DG', True),
                      ('CryptoCaidCryptoGuardSelected', 'CG',
                       True), ('CryptoCaidVerimatrixSelected', 'VM',
                               True), ('CryptoCaidTandbergSelected', 'TB',
                                       True))
     self.ecmdata = GetEcmInfo()
     self.feraw = self.fedata = self.updateFEdata = None
     return
Exemple #16
0
 def __init__(self, type):
     Converter.__init__(self, type)
     Poll.__init__(self)
     self.type = type
     self.poll_interval = 1000
     self.poll_enabled = True
     self.ca_table = (
         ("CryptoCaidBetatAvailable", "B", False),
         ("CryptoCaidIrdetoAvailable"
          "I", False),
         ("CryptoCaidNagraAvailable", "N", False),
         ("CryptoCaidSecaAvailable", "S", False),
         ("CryptoCaidTandbergAvailable", "T", False),
         ("CryptoCaidViaAvailable", "V", False),
         ("CryptoCaidBissAvailable", "BI", False),
         ("CryptoCaidBulCrypt1Available", "BU", False),
         ("CryptoCaidBulCrypt2Available", "BU", False),
         ("CryptoCaidConaxAvailable", "CO", False),
         ("CryptoCaidCryptoWAvailable", "CW", False),
         ("CryptoCaidDre3Available", "DC", False),
         ("CryptoCaidDreAvailable", "DC", False),
         ("CryptoCaidNDSAvailable", "ND", False),
         ("CryptoCaidPowerVuAvailable", "PV", False),
         ("CryptoCaidDvnAvailable", "TB", False),
         ("CryptoCaidSmsxAvailable", "SM", False),
         ("CryptoCaidTongfangAvailable", "TF", False),
         ("CryptoCaidVerimatrixAvailable", "VM", False),
         ("CryptoCaidBetaSelected", "B", True),
         ("CryptoCaidIrdetoSelected", "I", True),
         ("CryptoCaidNagraSelected", "N", True),
         ("CryptoCaidSecaSelected", "S", True),
         ("CryptoCaidTandbergSelected", "T", True),
         ("CryptoCaidViaSelected", "V", True),
         ("CryptoCaidBissSelected", "BI", True),
         ("CryptoCaidBulCrypt1Selected", "BU", True),
         ("CryptoCaidBulCrypt2Selected", "BU", True),
         ("CryptoCaidConaxSelected", "CO", True),
         ("CryptoCaidCryptoWSelected", "CW", True),
         ("CryptoCaidDre3Selected", "DC", True),
         ("CryptoCaidDreSelected", "DC", True),
         ("CryptoCaidNDSSelected", "ND", True),
         ("CryptoCaidPowerVuSelected", "PV", True),
         ("CryptoCaidDvnSelected", "TB", True),
         ("CryptoCaidSmsxSelected", "SM", True),
         ("CryptoCaidTongfangSelected", "TF", True),
         ("CryptoCaidVerimatrixSelected", "VM", True),
     )
     self.ecmdata = GetEcmInfo()
     self.feraw = self.fedata = self.updateFEdata = None
Exemple #17
0
    def ShowECMInformation(self):
        if self.info:
            from Components.Converter.PliExtraInfo import caid_data
            self['Title'].text = _('Service info - ECM Info')
            tlist = []
            for caid in sorted(set(
                    self.info.getInfoObject(iServiceInformation.sCAIDPIDs)),
                               key=lambda x: (x[0], x[1])):
                CaIdDescription = _('Undefined')
                extra_info = ''
                provid = ''
                for caid_entry in caid_data:
                    if int(caid_entry[0], 16) <= caid[0] <= int(
                            caid_entry[1], 16):
                        CaIdDescription = caid_entry[2]
                        break

                if caid[2]:
                    if CaIdDescription == 'Seca':
                        provid = ','.join([
                            caid[2][i:i + 4]
                            for i in range(0, len(caid[2]), 30)
                        ])
                    if CaIdDescription == 'Nagra':
                        provid = caid[2][-4:]
                    if CaIdDescription == 'Via':
                        provid = caid[2][-6:]
                    if provid:
                        extra_info = 'provid=%s' % provid
                    else:
                        extra_info = 'extra data=%s' % caid[2]
                from Tools.GetEcmInfo import GetEcmInfo
                ecmdata = GetEcmInfo().getEcmData()
                if caid[0] == int(ecmdata[1], 16) and (caid[1] == int(
                        ecmdata[3], 16) or str(int(ecmdata[2], 16)) in provid):
                    color = '\\c00??;?00' if 1 else ''
                    tlist.append(
                        ServiceInfoListEntry('%sECMPid %04X (%d) %04X-%s %s' %
                                             (color, caid[1], caid[1], caid[0],
                                              CaIdDescription, extra_info)))

            if not tlist:
                tlist.append(
                    ServiceInfoListEntry(
                        _('No ECMPids available (FTA Service)')))
            self['infolist'].l.setList(tlist)
Exemple #18
0
 def __init__(self, type):
     Converter.__init__(self, type)
     Poll.__init__(self)
     self.type = type
     self.poll_interval = 1000
     self.poll_enabled = True
     self.ca_table = (("CryptoCaidSecaAvailable", "S",
                       False), ("CryptoCaidViaAvailable", "V", False),
                      ("CryptoCaidIrdetoAvailable", "I",
                       False), ("CryptoCaidNDSAvailable", "Nd", False),
                      ("CryptoCaidConaxAvailable", "Co",
                       False), ("CryptoCaidCryptoWAvailable", "Cw", False),
                      ("CryptoCaidPowerVUAvailable", "P",
                       False), ("CryptoCaidBetaAvailable", "B", False),
                      ("CryptoCaidNagraAvailable", "N",
                       False), ("CryptoCaidBissAvailable", "Bi",
                                False), ("CryptoCaidDre3Available", "D3",
                                         False), ("CryptoCaidDreAvailable",
                                                  "D", False),
                      ("CryptoCaidBulCrypt1Available", "B1",
                       False), ("CryptoCaidBulCrypt2Available", "B2",
                                False), ("CryptoCaidTandbergAvailable", "T",
                                         False), ("CryptoCaidSecaSelected",
                                                  "S", True),
                      ("CryptoCaidViaSelected", "V",
                       True), ("CryptoCaidIrdetoSelected", "I",
                               True), ("CryptoCaidNDSSelected", "Nd", True),
                      ("CryptoCaidConaxSelected", "Co",
                       True), ("CryptoCaidCryptoWSelected", "Cw",
                               True), ("CryptoCaidPowerVUSelected", "P",
                                       True), ("CryptoCaidBetaSelected",
                                               "B", True),
                      ("CryptoCaidNagraSelected", "N",
                       True), ("CryptoCaidBissSelected", "Bi",
                               True), ("CryptoCaidDre3Selected", "D3",
                                       True), ("CryptoCaidDreSelected", "D",
                                               True),
                      ("CryptoCaidBulCrypt1Selected", "B1",
                       True), ("CryptoCaidBulCrypt2Selected", "B2",
                               True), ("CryptoCaidTandbergSelected", "T",
                                       True))
     self.ecmdata = GetEcmInfo()
     self.feraw = self.fedata = self.updateFEdata = None
Exemple #19
0
 def __init__(self, type):
     Converter.__init__(self, type)
     Poll.__init__(self)
     self.type = type
     self.poll_interval = 1000
     self.poll_enabled = True
     self.caid_data = (("0x100", "0x1ff", "Seca",
                        "S"), ("0x500", "0x5ff", "Via",
                               "V"), ("0x600", "0x6ff", "Irdeto",
                                      "I"), ("0x900", "0x9ff", "NDS", "Nd"),
                       ("0xb00", "0xbff", "Conax",
                        "Co"), ("0xd00", "0xdff", "CryptoW",
                                "Cw"), ("0xe00", "0xeff", "PowerVU", "P"),
                       ("0x1700", "0x17ff", "Beta",
                        "B"), ("0x1800", "0x18ff", "Nagra",
                               "N"), ("0x2600", "0x2600", "Biss", "Bi"),
                       ("0x4ae0", "0x4ae1", "Dre", "D"))
     self.ecmdata = GetEcmInfo()
     self.feraw = self.fedata = self.updateFEdata = None
Exemple #20
0
 def __init__(self, type):
     Converter.__init__(self, type)
     Poll.__init__(self)
     self.type = type
     self.poll_interval = 1000
     self.poll_enabled = True
     self.ca_table = (('CryptoCaidSecaAvailable', 'S',
                       False), ('CryptoCaidViaAvailable', 'V', False),
                      ('CryptoCaidIrdetoAvailable', 'I',
                       False), ('CryptoCaidNDSAvailable', 'Nd', False),
                      ('CryptoCaidConaxAvailable', 'Co',
                       False), ('CryptoCaidCryptoWAvailable', 'Cw', False),
                      ('CryptoCaidPowerVUAvailable', 'P',
                       False), ('CryptoCaidBetaAvailable', 'B',
                                False), ('CryptoCaidNagraAvailable', 'N',
                                         False), ('CryptoCaidBissAvailable',
                                                  'Bi', False),
                      ('CryptoCaidDreAvailable', 'D',
                       False), ('CryptoCaidBulCrypt1Available', 'B1',
                                False), ('CryptoCaidBulCrypt2Available',
                                         'B2', False),
                      ('CryptoCaidTandbergAvailable', 'T',
                       False), ('CryptoCaidSecaSelected', 'S',
                                True), ('CryptoCaidViaSelected', 'V', True),
                      ('CryptoCaidIrdetoSelected', 'I',
                       True), ('CryptoCaidNDSSelected', 'Nd',
                               True), ('CryptoCaidConaxSelected', 'Co',
                                       True), ('CryptoCaidCryptoWSelected',
                                               'Cw', True),
                      ('CryptoCaidPowerVUSelected', 'P',
                       True), ('CryptoCaidBetaSelected', 'B',
                               True), ('CryptoCaidNagraSelected', 'N',
                                       True), ('CryptoCaidBissSelected',
                                               'Bi', True),
                      ('CryptoCaidDreSelected', 'D',
                       True), ('CryptoCaidBulCrypt1Selected', 'B1',
                               True), ('CryptoCaidBulCrypt2Selected', 'B2',
                                       True), ('CryptoCaidTandbergSelected',
                                               'T', True))
     self.ecmdata = GetEcmInfo()
     self.feraw = self.fedata = self.updateFEdata = None
     return
Exemple #21
0
 def ShowECMInformation(self):
     from Components.Converter.PliExtraInfo import caid_data
     self.setTitle(_("Service Info: ECM Info"))
     tlist = []
     provid = ""
     for caid in sorted(set(
             self.info.getInfoObject(iServiceInformation.sCAIDPIDs)),
                        key=lambda x: (x[0], x[1])):
         CaIdDescription = _("Undefined")
         extra_info = ""
         for caid_entry in caid_data:
             if int(caid_entry[0], 16) <= caid[0] <= int(caid_entry[1], 16):
                 CaIdDescription = caid_entry[2]
                 break
         if caid[2]:
             if CaIdDescription == "Seca":
                 provid = caid[2][:4]
             if CaIdDescription == "Nagra":
                 provid = caid[2][-4:]
             if CaIdDescription == "Via":
                 provid = caid[2][-6:]
             if provid:
                 extra_info = "provid=%s" % provid
             else:
                 extra_info = "extra data=%s" % caid[2]
         from Tools.GetEcmInfo import GetEcmInfo
         ecmdata = GetEcmInfo().getEcmData()
         color = Hex2strColor(
             parameters.get(
                 "ServiceInfoEcmColor", 0x00ffbf00)) if caid[1] == int(
                     ecmdata[3], 16) and caid[0] == int(ecmdata[1],
                                                        16) else ""
         tlist.append(
             ServiceInfoListEntry("%sECMPid %04X (%d) %04X-%s %s" %
                                  (color, caid[1], caid[1], caid[0],
                                   CaIdDescription, extra_info)))
     if not tlist:
         tlist.append(ServiceInfoListEntry(_("No ECMPids available")))
         tlist.append(ServiceInfoListEntry(_("(FTA Service)")))
     self["infolist"].l.setList(tlist)
Exemple #22
0
 def __init__(self, type):
     Converter.__init__(self, type)
     Poll.__init__(self)
     self.type = {
         'ShowMe': self.SMART_LABEL,
         'ExpertInfo': self.SMART_INFO_H,
         'ExpertInfoVertical': self.SMART_INFO_V,
         'ServiceInfo': self.SERVICE_INFO,
         'CryptoInfo': self.CRYPTO_INFO,
         'FrequencyInfo': self.FREQUENCY_INFO
     }[type]
     self.poll_interval = 1000
     self.poll_enabled = True
     self.idnames = (('0x100', '0x1FF', 'Seca',
                      'S'), ('0x500', '0x5FF', 'Via',
                             'V'), ('0x600', '0x6FF', 'Irdeto',
                                    'I'), ('0x900', '0x9FF', 'NDS', 'Nd'),
                     ('0xB00', '0xBFF', 'Conax', 'Co'), ('0xD00', '0xDFF',
                                                         'CryptoW', 'Cw'),
                     ('0x1700', '0x17FF', 'Beta', 'B'), ('0x1800', '0x18FF',
                                                         'Nagra', 'N'))
     self.ecmdata = GetEcmInfo()
Exemple #23
0
    def __init__(self, session):
        Screen.__init__(self, session)

        self.setup_title = _("Softcam setup")
        self.setTitle(self.setup_title)

        self["actions"] = ActionMap(
            ["OkCancelActions", "ColorActions", "CiSelectionActions"], {
                "red": self.cancel,
                "green": self.save,
                "blue": self.cancel,
                "cancel": self.cancel,
            }, -1)

        self.list = []
        ConfigListScreen.__init__(self,
                                  self.list,
                                  session=session,
                                  on_change=self.changedEntry)

        self.softcam = CamControl('softcam')
        self.cardserver = CamControl('cardserver')
        self.softcams_text = ""
        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()
        if softcams:
            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))

        if cardservers and softcams:
            self.list.append(
                getConfigListEntry(_("Restart both"),
                                   ConfigAction(self.restart, "sc")))
        elif softcams:
            self.list.append(
                getConfigListEntry(_("Restart softcam"),
                                   ConfigAction(self.restart, "s")))
        else:
            self.list.append(
                getConfigListEntry(_("Restart cardserver"),
                                   ConfigAction(self.restart, "c")))

        self["key_red"] = StaticText(_("Cancel"))
        self["key_green"] = StaticText(_("OK"))
        self["key_blue"] = StaticText()
        self.onShown.append(self.blueButton)
    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")))

        softcams = listdir('/usr/bin/')
        for softcam in softcams:
            if softcam.startswith('CCcam') or softcam.startswith('cccam'):
                config.plugins.softcam.cccaminfo.value = True
            elif softcam.startswith('OScam') or softcam.startswith('oscam'):
                config.plugins.softcam.oscaminfo.value = True
            elif softcam.startswith('Ncam') or softcam.startswith('ncam'):
                config.plugins.softcam.ncaminfo.value = True

        if config.plugins.softcam.cccaminfo.value:
            self.list.append(
                getConfigListEntry(_("Show CCcamInfo in extensions menu?"),
                                   config.cccaminfo.showInExtensions, None,
                                   None))
        if config.plugins.softcam.oscaminfo.value:
            self.list.append(
                getConfigListEntry(_("Show OScamInfo in extensions menu?"),
                                   config.oscaminfo.showInExtensions, None,
                                   None))
        if config.plugins.softcam.ncaminfo.value:
            self.list.append(
                getConfigListEntry(_("Show NcamInfo in extensions menu?"),
                                   config.ncaminfo.showInExtensions, None,
                                   None))

        self["key_red"] = StaticText(_("Cancel"))
        self["key_green"] = StaticText(_("OK"))
        self["key_blue"] = StaticText()
        self.onShown.append(self.blueButton)
Exemple #25
0
 def __init__(self, type):
     Converter.__init__(self, type)
     Poll.__init__(self)
     self.type = type
     self.poll_interval = 1000
     self.poll_enabled = True
     self.info_fields = {
         # Field combinations accessible from skin
         "All": (
             (  # config.usage.show_cryptoinfo.value <= 0
                 "ProviderName",
                 "TransponderInfo",
                 "TransponderName",
                 "NewLine",
                 "CryptoBar",
                 "CryptoCurrentSource",
                 "NewLine",
                 "CryptoSpecial",
                 "VideoCodec",
                 "ResolutionString",
             ),
             (  # config.usage.show_cryptoinfo.value > 0
                 "ProviderName",
                 "TransponderInfo",
                 "TransponderName",
                 "NewLine",
                 "CryptoBar",
                 "CryptoSpecial",
                 "NewLine",
                 "PIDInfo",
                 "VideoCodec",
                 "ResolutionString",
             )),
         "CryptoInfo": (
             (  # config.usage.show_cryptoinfo.value <= 0
                 "CryptoBar",
                 "CryptoCurrentSource",
                 "CryptoSpecial",
             ),
             (  # config.usage.show_cryptoinfo.value > 0
                 "CryptoBar",
                 "CryptoSpecial",
             )),
         "ServiceInfo": (
             "ProviderName",
             "TunerSystem",
             "TransponderFrequency",
             "TransponderPolarization",
             "TransponderSymbolRate",
             "TransponderFEC",
             "TransponderModulation",
             "OrbitalPosition",
             "TransponderName",
             "VideoCodec",
             "ResolutionString",
         ),
         "TransponderInfo": (
             (  # not feraw
                 "StreamURLInfo", ),
             (  # feraw and "DVB-T" not in feraw.get("tuner_type", "")
                 "TunerSystem",
                 "TransponderFrequencyMHz",
                 "TransponderPolarization",
                 "TransponderSymbolRate",
                 "TransponderFEC",
                 "TransponderModulation",
                 "OrbitalPosition",
                 "TransponderInfoMisPls",
             ),
             (  # feraw and "DVB-T" in feraw.get("tuner_type", "")
                 "TunerSystem",
                 "TerrestrialChannelNumber",
                 "TransponderFrequencyMHz",
                 "TransponderPolarization",
                 "TransponderSymbolRate",
                 "TransponderFEC",
                 "TransponderModulation",
                 "OrbitalPosition",
             )),
         "TransponderInfo2line": (
             "ProviderName",
             "TunerSystem",
             "TransponderName",
             "NewLine",
             "TransponderFrequencyMHz",
             "TransponderPolarization",
             "TransponderSymbolRate",
             "TransponderModulationFEC",
         ),
         "User": (),
     }
     self.ca_table = (
         ("CryptoCaidBetatAvailable", "B", False),
         ("CryptoCaidIrdetoAvailable", "I", False),
         ("CryptoCaidNagraAvailable", "N", False),
         ("CryptoCaidSecaAvailable", "S", False),
         ("CryptoCaidTandbergAvailable", "T", False),
         ("CryptoCaidViaAvailable", "V", False),
         ("CryptoCaidBissAvailable", "BI", False),
         ("CryptoCaidBulCrypt1Available", "BU", False),
         ("CryptoCaidBulCrypt2Available", "BU", False),
         ("CryptoCaidConaxAvailable", "CO", False),
         ("CryptoCaidCryptoWAvailable", "CW", False),
         ("CryptoCaidDre3Available", "DC", False),
         ("CryptoCaidDreAvailable", "DC", False),
         ("CryptoCaidNDSAvailable", "ND", False),
         ("CryptoCaidPowerVuAvailable", "PV", False),
         ("CryptoCaidVerimatrixAvailable", "VM", False),
         ("CryptoCaidBetaSelected", "B", True),
         ("CryptoCaidIrdetoSelected", "I", True),
         ("CryptoCaidNagraSelected", "N", True),
         ("CryptoCaidSecaSelected", "S", True),
         ("CryptoCaidTandbergSelected", "T", True),
         ("CryptoCaidViaSelected", "V", True),
         ("CryptoCaidBissSelected", "BI", True),
         ("CryptoCaidBulCrypt1Selected", "BU", True),
         ("CryptoCaidBulCrypt2Selected", "BU", True),
         ("CryptoCaidConaxSelected", "CO", True),
         ("CryptoCaidCryptoWSelected", "CW", True),
         ("CryptoCaidDre3Selected", "DC", True),
         ("CryptoCaidDreSelected", "DC", True),
         ("CryptoCaidNDSSelected", "ND", True),
         ("CryptoCaidPowerVuSelected", "PV", True),
         ("CryptoCaidVerimatrixSelected", "VM", True),
     )
     self.type = self.type.split(',')
     if self.type[0] == "User":
         self.info_fields[self.type[0]] = tuple(self.type[1:])
     self.type = self.type[0]
     self.ecmdata = GetEcmInfo()
     self.feraw = self.fedata = self.updateFEdata = None
     self.recursionCheck = set()
     self.cryptocolors = parameters.get(
         "PliExtraInfoCryptoColors",
         (0x004C7D3F, 0x009F9F9F, 0x00EEEE00, 0x00FFFFFF))
 def __init__(self, type):
     Converter.__init__(self, type)
     Poll.__init__(self)
     self.type = type
     self.poll_interval = 1000
     self.poll_enabled = True
     self.caid_data = (("0x100", "0x1ff", "Seca", "S",
                        False), ("0x500", "0x5ff", "Viaccess", "V", False),
                       ("0x600", "0x6ff", "Irdeto", "I",
                        False), ("0x900", "0x9ff", "NDS-Videoguard", "Nd",
                                 False), ("0xb00", "0xbff", "Conax", "Co",
                                          False), ("0xd00", "0xdff",
                                                   "CryptoW", "Cw", False),
                       ("0xe00", "0xeff", "PowerVu", "P",
                        False), ("0x0C00", "0x0C00", "NTL (RAS)", "Ras",
                                 False), ("0x1010", "0x1010", "Tandberg TV",
                                          "Tb", False),
                       ("0x1700", "0x17ff", "Beta", "B",
                        False), ("0x1800", "0x18ff", "Nagravision", "N",
                                 False), ("0x2600", "0x2600", "BISS", "Bi",
                                          False), ("0x2888", "0x2888",
                                                   "Unknown", "Unk", False),
                       ("0x4700", "0x47FF", "General Instrument (Motorola)",
                        "GI", False), ("0x4a00", "0x4a02", "Tongfang", "Tf",
                                       False), ("0x4a67", "0x4a67", "@Sky",
                                                "Sk", False),
                       ("0x4ac1", "0x4acf", "Latens Systems Ltd", "LtS",
                        False), ("0x4ad0", "0x4ad1", "XCrypt Inc.", "Xc",
                                 False), ("0x4ad2", "0x4ad3", "Beijing DVT",
                                          "Bd", False),
                       ("0x4ae0", "0x4ae1", "DRE-Crypt", "D",
                        False), ("0x4aea", "0x4aea", "CryptoGuard AB", "CG",
                                 False), ("0x4aee", "0x4aee", "BulCrypt",
                                          "B1", False),
                       ("0x4af0", "0x4af0", "Beijing ABVT", "BABVT",
                        False), ("0x4af1", "0x4af1", "China DTV 1", "CDTV",
                                 False), ("0x4af1", "0x4af2", "China DTV 2",
                                          "CDTV", False),
                       ("0x4af4", "0x4af4", "Marlin", "Md",
                        False), ("0x5160", "0x5160", "Unknown", "Unk1",
                                 False), ("0x5581", "0x5581", "BulCrypt",
                                          "B2", False),
                       ("0x5604", "0x5604", "Verimatrix", "Vx",
                        False), ("0x7fff", "0x7fff", "Unknown", "Unk2",
                                 False), ("0xfffe", "0xfffe", "Free to Air",
                                          "FTA", False))
     self.ca_table = (
         ("CryptoCaidSecaAvailable", "S", False),
         ("CryptoCaidViaccessAvailable", "V", False),
         ("CryptoCaidIrdetoAvailable", "I", False),
         ("CryptoCaidNDSAvailable", "Nd", False),
         ("CryptoCaidConaxAvailable", "Co", False),
         ("CryptoCaidCryptoWAvailable", "Cw", False),
         ("CryptoCaidPowerVuAvailable", "P", False),
         ("CryptoCaidBetaAvailable", "B", False),
         ("CryptoCaidNagravisionAvailable", "N", False),
         ("CryptoCaidBISSAvailable", "Bi", False),
         ("CryptoCaidDreAvailable", "D", False),
         ("CryptoCaidCryptoGuard ABAvailable", "CG", False),
         ("CryptoCaidBulCrypt1Available", "B1", False),
         ("CryptoCaidBulCrypt2Available", "B2", False),
         ("CryptoCaid@SkyAvailable", "Sk", False),
         ("CryptoCaidLatens Systems LtdAvailable", "LtS", False),
         ("CryptoCaidXCrypt Inc.Available", "Xc", False),
         ("CryptoCaidBeijing DVTAvailable", "Bd", False),
         ("CryptoCaidNTL (RAS)Available", "Ras", False),
         ("CryptoCaidUnknownAvailabable", "Unk", False),
         ("CryptoCaidUnknownAvailabable", "Unk1", False),
         ("CryptoCaidUnknownAvailabable", "Unk2", False),
         ("CryptoCaidFree to AirAvailable", "FTA", False),
         ("CryptoCaidTongfangAvailable", "Tf", False),
         ("CryptoCaidMarlinAvailable", "Md", False),
         ("CryptoCaidVerimatrixAvailable", "Vx", False),
         ("CryptoCaidBeijing ABVTAvailable", "BABVT", False),
         ("CryptoCaidChina DTV 1Available", "CDTV", False),
         ("CryptoCaidChina DTV 2Available", "CDTV", False),
         ("CryptoCaidGeneral Instrument (Motorola)Available", "GI", False),
         ("CryptoCaidTandberg TVAvailable", "Tb", False),
         ("CryptoCaidSecaSelected", "S", True),
         ("CryptoCaidViaccessSelected", "V", True),
         ("CryptoCaidIrdetoSelected", "I", True),
         ("CryptoCaidNDS-VideoguardSelected", "Nd", True),
         ("CryptoCaidConaxSelected", "Co", True),
         ("CryptoCaidCryptoWSelected", "Cw", True),
         ("CryptoCaidPowerVuSelected", "P", True),
         ("CryptoCaidBetaSelected", "B", True),
         ("CryptoCaidNagravisionSelected", "N", True),
         ("CryptoCaidBISSSelected", "Bi", True),
         ("CryptoCaidDRE-CryptSelected", "D", True),
         ("CryptoCaidCryptoGuard ABSelected", "CG", True),
         ("CryptoCaidBulCrypt1Selected", "B1", True),
         ("CryptoCaidBulCrypt2Selected", "B2", True),
         ("CryptoCaid@SkySelected", "Sk", True),
         ("CryptoCaidLatens Systems LtdSelected", "LtS", True),
         ("CryptoCaidXCrypt Inc.Selected", "Xc", True),
         ("CryptoCaidBeijing DVTSelected", "Bd", True),
         ("CryptoCaidNTL (RAS)Selected", "Ras", True),
         ("CryptoCaidUnknownSelected", "Unk", True),
         ("CryptoCaidUnknownSelected", "Unk1", True),
         ("CryptoCaidUnknownSelected", "Unk2", True),
         ("CryptoCaidFree to AirSelected", "FTA", True),
         ("CryptoCaidTongfangSelected", "Tf", True),
         ("CryptoCaidMarlinSelected", "Md", True),
         ("CryptoCaidVerimatrixSelected", "Vx", True),
         ("CryptoCaidBeijing ABVTSelected", "BABVT", True),
         ("CryptoCaidChina DTV 1Selected", "CDTV", True),
         ("CryptoCaidChina DTV 2Selected", "CDTV", True),
         ("CryptoCaidGeneral Instrument (Motorola)Selected", "GI", True),
         ("CryptoCaidTandberg TVSelected", "Tb", True),
     )
     self.ecmdata = GetEcmInfo()
     self.feraw = self.fedata = self.updateFEdata = None