예제 #1
0
파일: IPTV.py 프로젝트: OpenSPA/AZIPTV
    def __init__(self, isAutostart, session, args=0):
        Screen.__init__(self, session)
        self.session = session
        self.Console = Console()
        self.current_service = self.session.nav.getCurrentlyPlayingServiceReference(
        )
        selectable_nims = []
        for nim in nimmanager.nim_slots:
            if nim.config_mode == 'nothing':
                continue
            if nim.config_mode == 'advanced' and len(
                    nimmanager.getSatListForNim(nim.slot)) < 1:
                continue
            if nim.config_mode in ('loopthrough', 'satposdepends'):
                root_id = nimmanager.sec.getRoot(
                    nim.slot_id, int(nim.config.connectedTo.value))
                if nim.type == nimmanager.nim_slots[root_id].type:
                    continue
            if nim.isCompatible('DVB-S'):
                selectable_nims.append(
                    (str(nim.slot), nim.friendly_full_description))

        self.select_nim = ConfigSelection(choices=selectable_nims)
        self.feid = 0
        if self.select_nim.value != '':
            self.feid = int(self.select_nim.value)
        self.frontend = self.OpenFrontend()
        if self.frontend is None:
            self.oldref = self.session.nav.getCurrentlyPlayingServiceReference(
            )
            self.session.nav.stopService()
            if not self.frontend:
                if session.pipshown:
                    session.pipshown = False
                    del session.pip
                    if not self.openFrontend():
                        self.frontend = None
        self.session.nav.playService(None)
        self.switchmode = 0
        self.showhide = 0
        self['menu'] = List([])
        self['actions'] = NumberActionMap(
            ['MediaPlayerActions', 'SetupActions', 'DirectionActions'], {
                'menu': self.Konfig,
                'ok': self.ok,
                'cancel': self.sakri,
                'up': self.keyUp,
                'down': self.keyDown,
                'left': self.keyLeft,
                'right': self.keyRight,
                'nextBouquet': self.ZapUp,
                'prevBouquet': self.ZapDown,
                '1': self.keyNumberGlobal,
                '2': self.keyNumberGlobal,
                '3': self.keyNumberGlobal,
                '4': self.keyNumberGlobal,
                '5': self.keyNumberGlobal,
                '6': self.keyNumberGlobal,
                '7': self.keyNumberGlobal,
                '8': self.keyNumberGlobal,
                '9': self.keyNumberGlobal,
                '0': self.keyNumberGlobal
            }, -2)
        self['text2'] = Label(_('Loading...Please Wait'))
        self['start_progress'] = ProgressBar()
        self['infoM0'] = Label()
        self['infoM1'] = Label()
        self['infoM2'] = Label()
        self['l001'] = Pixmap()
        self['l002'] = Pixmap()
        self['l003'] = Pixmap()
        self['l004'] = Pixmap()
        self['l005'] = Pixmap()
        self['l006'] = Pixmap()
        self['l007'] = Pixmap()
        self['l008'] = Pixmap()
        self['picon'] = Pixmap()
        self.TestCounter = 0
        self.playstarted = False
        self.DVBCATimer = eTimer()
        self.DVBCATimer.callback.append(self.Prepare)
        buffersize = 512
        try:
            myfile = file(
                '/usr/lib/enigma2/python/Plugins/Extensions/AzIPTV/config')
            for line in myfile.readlines():
                if line[0:1] != '#':
                    ipos = ipos1 = 0
                    ipos = line.find('<buffersize>')
                    ipos1 = line.find('</buffersize>')
                    if ipos != '' and ipos1 != '' and ipos1 > ipos:
                        buffersize = int(line[ipos + 12:ipos1])

        except:
            print 'Error reading cfg file.'

        if buffersize < 128:
            buffersize = 128
        hw_type = HardwareInfo().get_device_name()
        if hw_type == 'minime' or hw_type == 'me':
            self.cmd0 = 'rmfp_player -dram 0 -ve 0 -vd 0 -ae 0 -no_disp -prebuf '
        if hw_type == 'elite' or hw_type == 'premium' or hw_type == 'premium+' or hw_type == 'ultra':
            self.cmd0 = 'rmfp_player -dram 1 -ve 1 -vd 0 -ae 0 -no_disp -prebuf '
        self.cmd0 = self.cmd0 + str(
            buffersize
        ) + ' -detect_limit 100 -resetvcxo -no_close -oscaler spu -nosubs '
        self.showhide = 0
        self['menu1'] = MenuList([])
        self['menu'] = List([])
        self.onLayoutFinish.append(self.startup)
예제 #2
0
 def closE(self):
     if self.jump_on_close == True:
         self.session.nav.stopService()
         self.session.nav.shutdown()
         Console().ePopen('/bin/bh_jump')
 def EnableSwapFile(self, result, retval, extra_args):
     Console().ePopen("swapon /media/hdd/swapfile")
     if self.mbox:
         self.mbox.close()
예제 #4
0
 def setSleep(self):
     if self.bus() == _("External"):
         Console().ePopen(("sdparm", "sdparm", "--flexible", "--readonly",
                           "--command=stop", self.disk_path))
     else:
         Console().ePopen(("hdparm", "hdparm", "-y", self.disk_path))
예제 #5
0
	def populate2(self):
		self.activityTimer.stop()
		self.Console = Console()
		niminfo = ""
		nims = nimmanager.nimListCompressed()
		for count in range(len(nims)):
			if niminfo:
				niminfo += "\n"
			niminfo += nims[count]
		self["nims"].setText(niminfo)

		nims = nimmanager.nimList()
		if len(nims) <= 4 :
			for count in (0, 1, 2, 3):
				if count < len(nims):
					self["Tuner" + str(count)].setText(nims[count])
				else:
					self["Tuner" + str(count)].setText("")
		else:
			desc_list = []
			count = 0
			cur_idx = -1
			while count < len(nims):
				data = nims[count].split(":")
				idx = data[0].strip('Tuner').strip()
				desc = data[1].strip()
				if desc_list and desc_list[cur_idx]['desc'] == desc:
					desc_list[cur_idx]['end'] = idx
				else:
					desc_list.append({'desc' : desc, 'start' : idx, 'end' : idx})
					cur_idx += 1
				count += 1

			for count in (0, 1, 2, 3):
				if count < len(desc_list):
					if desc_list[count]['start'] == desc_list[count]['end']:
						text = "Tuner %s: %s" % (desc_list[count]['start'], desc_list[count]['desc'])
					else:
						text = "Tuner %s-%s: %s" % (desc_list[count]['start'], desc_list[count]['end'], desc_list[count]['desc'])
				else:
					text = ""

				self["Tuner" + str(count)].setText(text)

		self.list = []
		list2 = []
		f = open('/proc/partitions', 'r')
		for line in f.readlines():
			parts = line.strip().split()
			if not parts:
				continue
			device = parts[3]
			if not search('sd[a-z][1-9]', device):
				continue
			if device in list2:
				continue

			mount = '/dev/' + device
			f = open('/proc/mounts', 'r')
			for line in f.readlines():
				if device in line:
					parts = line.strip().split()
					mount = str(parts[1])
					break
			f.close()

			if not mount.startswith('/dev/'):
				size = Harddisk(device).diskSize()
				free = Harddisk(device).free()

				if ((float(size) / 1024) / 1024) >= 1:
					sizeline = _("Size: ") + str(round(((float(size) / 1024) / 1024), 2)) + _("TB")
				elif (size / 1024) >= 1:
					sizeline = _("Size: ") + str(round((float(size) / 1024), 2)) + _("GB")
				elif size >= 1:
					sizeline = _("Size: ") + str(size) + _("MB")
				else:
					sizeline = _("Size: ") + _("unavailable")

				if ((float(free) / 1024) / 1024) >= 1:
					freeline = _("Free: ") + str(round(((float(free) / 1024) / 1024), 2)) + _("TB")
				elif (free / 1024) >= 1:
					freeline = _("Free: ") + str(round((float(free) / 1024), 2)) + _("GB")
				elif free >= 1:
					freeline = _("Free: ") + str(free) + _("MB")
				else:
					freeline = _("Free: ") + _("full")
				self.list.append(mount + '\t' + sizeline + ' \t' + freeline)
			else:
				self.list.append(mount + '\t' + _('Not mounted'))

			list2.append(device)
		self.list = '\n'.join(self.list)
		self["hdd"].setText(self.list)

		self.Console.ePopen("df -mh | grep -v '^Filesystem'", self.Stage1Complete)
예제 #6
0
	def setMode(self, port, mode, rate, force=None):
		print("[Videomode] VideoHardware setMode - port:", port, "mode:", mode, "rate:", rate)
		# we can ignore "port"
		self.current_mode = mode
		self.current_port = port
		modes = self.rates[mode][rate]

		mode_50 = modes.get(50)
		mode_60 = modes.get(60)
		mode_24 = modes.get(24)

		if mode_50 is None or force == 60:
			mode_50 = mode_60
		if mode_60 is None or force == 50:
			mode_60 = mode_50
		if mode_24 is None or force:
			mode_24 = mode_60
			if force == 50:
				mode_24 = mode_50

		if platform == "dmamlogic":
			open('/sys/class/display/mode', 'w').write('576i50hz')
			amlmode = mode + rate.lower()
			print("[Videomode] Write to /sys/class/display/mode")
			open('/sys/class/display/mode', 'w').write(amlmode)
			print("[Videomode] Write to /sys/class/ppmgr/ppscaler")
			open('/sys/class/ppmgr/ppscaler', 'w').write('1')
			print("[Videomode] Write to /sys/class/ppmgr/ppscaler")
			open('/sys/class/ppmgr/ppscaler', 'w').write('0')
			size_width = getDesktop(0).size().width()
			if size_width >= 1920:
				Console().ePopen('fbset -fb /dev/fb0  -g 1920 1080 1920 3240  32')
			else:
				Console().ePopen('fbset -fb /dev/fb0  -g 1280 720 1280 2160  32')
			return
		try:
			print("[Videomode] Write to /proc/stb/video/videomode_50hz")
			open("/proc/stb/video/videomode_50hz", "w").write(mode_50)
			print("[Videomode] Write to /proc/stb/video/videomode_60hz")
			open("/proc/stb/video/videomode_60hz", "w").write(mode_60)
		except IOError:
			print("[Videomode] Write to /proc/stb/video/videomode_50hz failed.")
			print("[Videomode] Write to /proc/stb/video/videomode_60hz failed.")
			try:
				# fallback if no possibility to setup 50/60 hz mode
				print("[Videomode] Write to /proc/stb/video/videomode")
				open("/proc/stb/video/videomode", "w").write(mode_50)
			except IOError:
				print("[Videomode] Write to /proc/stb/video/videomode failed.")

		if BoxInfo.getItem("Has24hz"):
			try:
				print("[Videomode] Write to /proc/stb/video/videomode_24hz")
				open("/proc/stb/video/videomode_24hz", "w").write(mode_24)
			except IOError:
				print("[Videomode] Write to /proc/stb/video/videomode_24hz failed.")

		if brand == "gigablue":
			try:
				# use 50Hz mode (if available) for booting
				print("[Videomode] Write to /etc/videomode")
				open("/etc/videomode", "w").write(mode_50)
			except IOError:
				print("[Videomode] Write to /etc/videomode failed.")

		self.updateAspect(None)
예제 #7
0
 def __init__(self):
     self.wlanIface = {}
     self.backupWlanIface = {}
     self.statusCallback = None
     self.wlanConsole = Console()
예제 #8
0
	def showDolby(self):
		if self.dolbyAvailable:
			Console().ePopen("fp_control -i 7 1") #Dolby
		else:
			Console().ePopen("fp_control -i 7 0")
예제 #9
0
	def showMP3(self):
		if self.mp3Available:
			Console().ePopen("fp_control -i 11 1") #MP3
		else:
			Console().ePopen("fp_control -i 11 0")
예제 #10
0
	def cancel(self):
		main(self)
		b = str(config.plugins.vfdicon.ledbright.value)
		Console().ePopen("fp_control -led " + b)
		ConfigListScreen.keyCancel(self)
예제 #11
0
	def __init__(self, session):
		self.session = session
		self.onClose = []
		print('[ADBVFD] Start')
		self.tuned = False
		self.play = False
		self.record = False
		self.timeshift = False
		self.standby = False
		self.usb = 0
		self.dolbyAvailable = False
		self.mp3Available = False
#		self.DTSAvailable = False

		self.display = 'led'
		try:
			print("[ADBVFD] Read /proc/stb/info/adb_variant")
			self.adb_model = open("/proc/stb/info/adb_variant").read().strip()
		except:
			print("[ADBVFD] Read /proc/stb/info/adb_variant failed.")
		print('[ADBVFD] ADB variant:', self.adb_model)
		if self.adb_model == 'bsla' or self.adb_model == 'bzzb':
			self.display = 'vfd'

		self.timer = eTimer()
		self.timer.callback.append(self.timerEvent)
		self.timer.start(60000, False) # start one minute timer
		if self.display == 'vfd':
			Console().ePopen("fp_control -i 22 0")
		b = str(config.plugins.vfdicon.ledbright.value)
		Console().ePopen("fp_control -led " + b)
		global DisplayType
		print('[ADBVFD] Hardware displaytype:', DisplayType)
		print('[ADBVFD] VFD displaytype     :', DisplayTypevfd)
		if DisplayType == 18:
			self.__event_tracker = ServiceEventTracker(screen=self, eventmap={
					iPlayableService.evUpdatedInfo: self.UpdatedInfo,
					iPlayableService.evUpdatedEventInfo: self.__evUpdatedEventInfo,
					iPlayableService.evVideoSizeChanged: self.__evVideoSizeChanged,
					iPlayableService.evSeekableStatusChanged: self.__evSeekableStatusChanged,
					iPlayableService.evTunedIn: self.__evTunedIn,
					iPlayableService.evTuneFailed: self.__evTuneFailed,
					iPlayableService.evStart: self.__evStart
				})
			config.misc.standbyCounter.addNotifier(self.onEnterStandby, initial_call=False)
			session.nav.record_event.append(self.gotRecordEvent)
			if self.display == 'vfd':
				try:
					from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier
					hotplugNotifier.append(self.hotplugCB)
				except:
					pass
		else:
			self.__event_tracker = ServiceEventTracker(screen=self, eventmap={
					iPlayableService.evStart: self.writeName,
				})
		print('[ADBVFD] Set text scrolling option')
		if config.plugins.vfdicon.textscroll.value is not None:
			evfd.getInstance().vfd_set_SCROLL(int(config.plugins.vfdicon.textscroll.value))
		else:
			evfd.getInstance().vfd_set_SCROLL(1)
		evfd.getInstance().vfd_set_CENTER(False)
		if self.display == 'vfd':
			print("[ADBVFD] Set text centering option")
			if config.plugins.vfdicon.textcenter.value == "1":
				evfd.getInstance().vfd_set_CENTER(True)
		print('[ADBVFD] End initialisation')
예제 #12
0
 def restoreBackUp(self):
     Console().ePopen("rm -f /etc/fstab")
     Console().ePopen("cp /etc/fstab.backup /etc/fstab")
     self.buildScreen()
예제 #13
0
 def mountall(self):
     Console().ePopen("mount -a")
예제 #14
0
    def buildMy_rec(self, device):
        device2 = device[:-1]  #strip device number
        devicetype = path.realpath('/sys/block/' + device2 + '/device')
        d2 = device
        name = 'USB: '
        mypixmap = '/usr/lib/enigma2/python/Plugins/Extensions/Infopanel/icons/dev_usbstick.png'
        model = file('/sys/block/' + device2 + '/device/model').read()
        model = str(model).replace('\n', '')
        des = ''
        if devicetype.find('/devices/pci') != -1:
            name = _("HARD DISK: ")
            mypixmap = '/usr/lib/enigma2/python/Plugins/Extensions/Infopanel/icons/dev_hdd.png'
        name = name + model

        from Components.Console import Console
        self.Console = Console()
        self.Console.ePopen(
            "sfdisk -l /dev/sd? | grep swap | awk '{print $(NF-9)}' >/tmp/devices.tmp"
        )
        sleep(0.5)
        f = open('/tmp/devices.tmp', 'r')
        swapdevices = f.read()
        f.close()
        swapdevices = swapdevices.replace('\n', '')
        swapdevices = swapdevices.split('/')
        f = open('/proc/mounts', 'r')
        for line in f.readlines():
            if line.find(device) != -1:
                parts = line.strip().split()
                d1 = parts[1]
                dtype = parts[2]
                rw = parts[3]
                break
                continue
            else:
                if device in swapdevices:
                    parts = line.strip().split()
                    d1 = _("None")
                    dtype = 'swap'
                    rw = _("None")
                    break
                    continue
                else:
                    d1 = _("None")
                    dtype = _("unavailable")
                    rw = _("None")
        f.close()
        f = open('/proc/partitions', 'r')
        for line in f.readlines():
            if line.find(device) != -1:
                parts = line.strip().split()
                size = int(parts[2])
                if ((size / 1024) / 1024) > 1:
                    des = _("Size: ") + str(
                        (size / 1024) / 1024) + " " + _("GB")
                else:
                    des = _("Size: ") + str(size / 1024) + " " + _("MB")
            else:
                try:
                    size = file('/sys/block/' + device2 + '/' + device +
                                '/size').read()
                    size = str(size).replace('\n', '')
                    size = int(size)
                except:
                    size = 0
                if (((size / 2) / 1024) / 1024) > 1:
                    des = _("Size: ") + str(
                        ((size / 2) / 1024) / 1024) + " " + _("GB")
                else:
                    des = _("Size: ") + str((size / 2) / 1024) + " " + _("MB")
        f.close()
        if des != '':
            if rw.startswith('rw'):
                rw = ' R/W'
            elif rw.startswith('ro'):
                rw = ' R/O'
            else:
                rw = ""
            des += '\t' + _("Mount: ") + d1 + '\n' + _(
                "Device: ") + ' /dev/' + device + '\t' + _(
                    "Type: ") + dtype + rw
            png = LoadPixmap(mypixmap)
            res = (name, des, png)
            self.devicelist.append(res)
예제 #15
0
    def __init__(self, session):
        Screen.__init__(self, session)
        self.skinName = "Standby"
        self.avswitch = AVSwitch()

        print("[Standby] enter standby")
        BoxInfo.setItem("StandbyState", True)

        if os.path.exists("/usr/script/StandbyEnter.sh"):
            Console().ePopen("/usr/script/StandbyEnter.sh &")

        self["actions"] = ActionMap(
            ["StandbyActions"], {
                "power": self.Power,
                "power_make": self.Power_make,
                "power_break": self.Power_break,
                "power_long": self.Power_long,
                "power_repeat": self.Power_repeat,
                "discrete_on": self.Power
            }, -1)

        globalActionMap.setEnabled(False)

        self.ignoreKeyBreakTimer = eTimer()
        self.standbyStopServiceTimer = eTimer()
        self.standbyStopServiceTimer.callback.append(self.stopService)
        self.timeHandler = None

        #mute adc
        self.setMute()

        if BoxInfo.getItem("Display") and BoxInfo.getItem("LCDMiniTV"):
            # set LCDminiTV off
            setLCDModeMinitTV("0")

        self.paused_service = None
        self.prev_running_service = None

        self.prev_running_service = self.session.nav.getCurrentlyPlayingServiceOrGroup(
        )
        service = self.prev_running_service and self.prev_running_service.toString(
        )
        if service:
            if service.startswith("1:") and service.rsplit(
                    ":", 1)[1].startswith("/"):
                self.paused_service = self.session.current_dialog
                self.paused_service.pauseService()
        if not self.paused_service:
            self.timeHandler = eDVBLocalTimeHandler.getInstance()
            if self.timeHandler.ready():
                if self.session.nav.getCurrentlyPlayingServiceOrGroup():
                    self.stopService()
                else:
                    self.standbyStopServiceTimer.startLongTimer(5)
                self.timeHandler = None
            else:
                self.timeHandler.m_timeUpdated.get().append(self.stopService)

        if self.session.pipshown:
            from Screens.InfoBar import InfoBar
            InfoBar.instance and hasattr(
                InfoBar.instance, "showPiP") and InfoBar.instance.showPiP()

        #set input to vcr scart
        if BoxInfo.getItem("ScartSwitch"):
            self.avswitch.setInput("SCART")
        else:
            self.avswitch.setInput("AUX")
        if (getBrandOEM() in ('fulan', 'clap', 'dinobot') or getMachineBuild()
                in ('gbmv200', 'sf8008', 'sf8008m', 'sf8008opt', 'ustym4kpro',
                    'beyonwizv2', 'viper4k')):
            try:
                open("/proc/stb/hdmi/output", "w").write("off")
            except:
                pass

        if int(
                config.usage.hdd_standby_in_standby.value
        ) != -1:  # HDD standby timer value (box in standby) / -1 = same as when box is active
            for hdd in harddiskmanager.HDDList():
                hdd[1].setIdleTime(
                    int(config.usage.hdd_standby_in_standby.value))

        self.onFirstExecBegin.append(self.__onFirstExecBegin)
        self.onClose.append(self.__onClose)
예제 #16
0
 def checkNetworkState(self):
     cmd1 = "opkg update"
     self.CheckConsole = Console()
     self.CheckConsole.ePopen(cmd1, self.checkNetworkStateFinished)
예제 #17
0
	def startIpkgUpdate(self, callback=None):
		if not self.Console:
			self.Console = Console()
		cmd = self.ipkg.ipkg + " update"
		self.Console.ePopen(cmd, self.IpkgUpdateCB, callback)
예제 #18
0
    def keyYellow(self):
        if self["key_yellow"].getText() == _('Disconnect'):
            print("[BluetoothManager] Disconnecting")
            if brand not in ("xcore", "edision"):
                cmd = "hidd --killall"
                rc = Console().ePopen(cmd)
                if not rc:
                    self["ConnStatus"].setText(_("No connected to any device"))
                    self["key_yellow"].setText(_("Connect"))
                self.showConnections()
            else:
                paired_devices = iBluetoothctl.get_paired_devices()
                if paired_devices is not None:
                    for d in paired_devices:
                        if d is not None:
                            mac_address = d['mac_address']
                            name = d['name']
                            try:
                                iBluetoothctl.remove(mac_address)
                            except:
                                pass
                            try:
                                iBluetoothctl.disconnect(mac_address)
                            except:
                                pass
                            msg = _("Disconnect with:\n"
                                    ) + name + " (" + mac_address + ")"
                            self["ConnStatus"].setText(msg)
                            self["key_yellow"].setText(_("Connect"))
        else:
            print("[BluetoothManager] Connecting")
            selectedItem = self["devicelist"].getCurrent()
            if selectedItem is None or selectedItem[
                    0] == "Scanning for devices...":  ## If list is empty somehow or somebody pressed button while scanning
                return

            print("[BluetoothManager] trying to pair with: ", selectedItem[1])
            msg = _("Trying to pair with:") + " " + selectedItem[1]
            self["ConnStatus"].setText(msg)

            if brand not in ("xcore", "edision"):
                cmd = "hidd --connect " + selectedItem[1]
                self.taskManager.append(cmd, self.cbPrintAvailConnections,
                                        self.cbRunNextTask)
                cmd = "hidd --show"
                rc = Console().ePopen(cmd)
                if rc:
                    print("[BluetoothManager] can NOT connect with: ",
                          selectedItem[1])
                    msg = _("Can't not pair with selected device!")
                    self["ConnStatus"].setText(msg)
                self.taskManager.append(cmd, self.cbPrintCurrentConnections,
                                        self.cbStopDone)
                self.taskManager.next()
            else:
                mac_address = None
                name = None
                iBluetoothctl.pairable_on()
                iBluetoothctl.start_scan()
                for i in range(0, 20):
                    time.sleep(0.5)
                    available_devices = iBluetoothctl.get_available_devices()
                    if available_devices is not None:
                        for d in available_devices:
                            if selectedItem[1] in str(d):
                                mac_address = d['mac_address']
                                name = d['name']
                    if mac_address is not None:
                        break

                if mac_address is not None:
                    iBluetoothctl.agent_noinputnooutput()
                    iBluetoothctl.default_agent()
                    ret = iBluetoothctl.pair(mac_address)
                    if config.btdevicesmanager.audioaddress.getValue() is "":
                        config.btdevicesmanager.audioaddress.setValue(
                            mac_address)
                    if ret is False:
                        if iBluetoothctl.passkey is not None:
                            self.cb_mac_address = mac_address
                            self.cb_name = name
                            msg = _("Please Enter Passkey: \n"
                                    ) + iBluetoothctl.passkey
                            self["ConnStatus"].setText(msg)
                            self.refreshStatusTimer.start(10000, True)
                    else:
                        iBluetoothctl.trust(mac_address)
                        ret = iBluetoothctl.connect(mac_address)
                        msg = _("Connection with:\n"
                                ) + name + " (" + mac_address + ")"
                        self["ConnStatus"].setText(msg)
                        self["key_yellow"].setText(_("Disconnect"))
                else:
                    print("[BluetoothManager] can NOT connect with: ",
                          selectedItem[1])
                    msg = _("Can't not pair with selected device!")
                    self["ConnStatus"].setText(msg)
예제 #19
0
    def populate2(self):
        self.activityTimer.stop()
        self.Console = Console()

        self.AboutText = _("Model:\t%s %s\n") % (getMachineBrand(),
                                                 getMachineName())
        self.AboutText += "\n" + _("Detected NIMs:") + "\n"

        nims = nimmanager.nimList()
        for count in range(len(nims)):
            if count < 4:
                self["Tuner" + str(count)] = StaticText(nims[count])
            else:
                self["Tuner" + str(count)] = StaticText("")
            self.AboutText += nims[count] + "\n"

        self.AboutText += "\n" + _("Detected HDD:") + "\n"

        self.list = []
        list2 = []
        f = open('/proc/partitions', 'r')
        for line in f.readlines():
            parts = line.strip().split()
            if not parts:
                continue
            device = parts[3]
            if not search('sd[a-z][1-9]', device):
                continue
            if device in list2:
                continue

            mount = '/dev/' + device
            f = open('/proc/mounts', 'r')
            for line in f.readlines():
                if device in line:
                    parts = line.strip().split()
                    mount = str(parts[1])
                    break
            f.close()

            if not mount.startswith('/dev/'):
                size = Harddisk(device).diskSize()
                free = Harddisk(device).free()

                if ((float(size) / 1024) / 1024) >= 1:
                    sizeline = _("Size: ") + str(
                        round(
                            ((float(size) / 1024) / 1024), 2)) + " " + _("TB")
                elif (size / 1024) >= 1:
                    sizeline = _("Size: ") + str(round(
                        (float(size) / 1024), 2)) + " " + _("GB")
                elif size >= 1:
                    sizeline = _("Size: ") + str(size) + " " + _("MB")
                else:
                    sizeline = _("Size: ") + _("unavailable")

                if ((float(free) / 1024) / 1024) >= 1:
                    freeline = _("Free: ") + str(
                        round(
                            ((float(free) / 1024) / 1024), 2)) + " " + _("TB")
                elif (free / 1024) >= 1:
                    freeline = _("Free: ") + str(round(
                        (float(free) / 1024), 2)) + " " + _("GB")
                elif free >= 1:
                    freeline = _("Free: ") + str(free) + " " + _("MB")
                else:
                    freeline = _("Free: ") + _("full")
                self.list.append(mount + '\t' + sizeline + ' \t' + freeline)
            else:
                self.list.append(mount + '\t' + _('Not mounted'))

            list2.append(device)
        self.list = '\n'.join(self.list)

        self.AboutText += self.list + "\n"
        self.AboutText += "\n" + _("Network Servers:") + "\n"
        #self.mountinfo = _("none")
        self.Console.ePopen("df -mh | grep -v '^Filesystem'",
                            self.Stage1Complete)
예제 #20
0
print("[mytest] Model = %s" % model)
print("[mytest] Platform = %s" % platform)
print("[mytest] SoC family = %s" % socfamily)

import enigma
import eConsoleImpl
import eBaseImpl
enigma.eTimer = eBaseImpl.eTimer
enigma.eSocketNotifier = eBaseImpl.eSocketNotifier
enigma.eConsoleAppContainer = eConsoleImpl.eConsoleAppContainer

if getVisionVersion().startswith("10") and not fileExists(
        "/var/tmp/ntpv4.local") and platform != "dm4kgen":
    from Components.Console import Console
    print("[mytest] Try load all network interfaces.")
    Console = Console()
    Console.ePopen(
        '/etc/init.d/networking restart ; /etc/init.d/samba.sh restart ; mount -a -t nfs,smbfs,cifs,ncpfs'
    )
    print("[mytest] All network interfaces loaded.")

from Components.SystemInfo import SystemInfo
if not SystemInfo["OpenVisionModule"]:
    print(
        "[mytest] Open Vision in multiboot! Now we have to remove what relies on our kernel module!"
    )
    from Components.Console import Console
    Console = Console()
    Console.ePopen('opkg remove enigma2-plugin-extensions-e2iplayer')
    print("[mytest] Removed, this is on you not us!")
예제 #21
0
 def getDataForInterface(self, iface, callback=None):
     self.wlanConsole = Console()
     if callback is not None:
         self.statusCallback = callback
     self.wlanConsole.ePopen(["/sbin/iwconfig", "/sbin/iwconfig", iface],
                             self.iwconfigFinished, iface)
예제 #22
0
 def __init__(self):
     # Init Timer
     self.timer = eTimer()
     self.Console = Console()
예제 #23
0
    def __init__(self, session, menu_path=""):
        Screen.__init__(self, session)
        screentitle = _("Memory")
        if config.usage.show_menupath.value == 'large':
            menu_path += screentitle
            title = menu_path
            self["menu_path_compressed"] = StaticText("")
        elif config.usage.show_menupath.value == 'small':
            title = screentitle
            self["menu_path_compressed"] = StaticText(
                menu_path +
                " >" if not menu_path.endswith(' / ') else menu_path[:-3] +
                " >" or "")
        else:
            title = screentitle
            self["menu_path_compressed"] = StaticText("")
        Screen.setTitle(self, title)
        self.skinName = ["SystemMemoryInfo", "About"]
        self["lab1"] = StaticText(_("Virtuosso Image Xtreme"))
        self["lab2"] = StaticText(_("By Team ViX"))
        self["lab3"] = StaticText(
            _("Support at %s") % "www.world-of-satellite.com")
        self["AboutScrollLabel"] = ScrollLabel()

        self["key_red"] = Button(_("Close"))
        self["actions"] = ActionMap(["SetupActions", "ColorActions"], {
            "cancel": self.close,
            "ok": self.close,
            "red": self.close,
        })

        out_lines = file("/proc/meminfo").readlines()
        self.AboutText = _("RAM") + '\n\n'
        RamTotal = "-"
        RamFree = "-"
        for lidx in range(len(out_lines) - 1):
            tstLine = out_lines[lidx].split()
            if "MemTotal:" in tstLine:
                MemTotal = out_lines[lidx].split()
                self.AboutText += _(
                    "Total memory:") + "\t" + MemTotal[1] + "\n"
            if "MemFree:" in tstLine:
                MemFree = out_lines[lidx].split()
                self.AboutText += _("Free memory:") + "\t" + MemFree[1] + "\n"
            if "Buffers:" in tstLine:
                Buffers = out_lines[lidx].split()
                self.AboutText += _("Buffers:") + "\t" + Buffers[1] + "\n"
            if "Cached:" in tstLine:
                Cached = out_lines[lidx].split()
                self.AboutText += _("Cached:") + "\t" + Cached[1] + "\n"
            if "SwapTotal:" in tstLine:
                SwapTotal = out_lines[lidx].split()
                self.AboutText += _("Total swap:") + "\t" + SwapTotal[1] + "\n"
            if "SwapFree:" in tstLine:
                SwapFree = out_lines[lidx].split()
                self.AboutText += _("Free swap:") + "\t" + SwapFree[1] + "\n\n"

        self["actions"].setEnabled(False)
        self.Console = Console()
        self.Console.ePopen("df -mh / | grep -v '^Filesystem'",
                            self.Stage1Complete)
예제 #24
0
	def __init__(self):
		self.callback = None
		self.Console = Console()
예제 #25
0
    def updateStatus(self):
        print("[TVCharts] Status Update ...")
        self.DBStatusTimer.stop()

        if not config.plugins.tvcharts.enabled.value or Screens.Standby.inStandby:
            return

        # Get Channelname
        sref = self.session.nav.getCurrentlyPlayingServiceReference()
        if sref is not None:
            ref = eServiceReference(sref.toString())
            ref.setName("")
            serviceHandler = eServiceCenter.getInstance()
            info = serviceHandler.info(ref)
            channel_name = info and info.getName(ref).replace(
                '\xc2\x86', '').replace('\xc2\x87', '').decode(
                    "utf-8", "ignore").encode("utf-8") or ""
            self.serviceref = ref.toString()
        else:
            channel_name = ""
            self.serviceref = ""

        # Get Event Info
        service = self.session.nav.getCurrentService()
        info = service and service.info()
        event = info and info.getEvent(0)
        event_name = event and event.getEventName() or ""
        event_description = ""
        event_begin = 0

        if event is not None:
            curEvent = parseEvent(event)
            event_begin = int(
                curEvent[0]) + (config.recording.margin_before.getValue() * 60)
            event_description = event.getExtendedDescription()

        # Get Box Info
        self.BoxID = iNetwork.getAdapterAttribute("eth0", "mac")
        self.DeviceName = BoxInfo.getItem("model")
        try:
            from enigma import getEnigmaVersionString
            self.EnigmaVersion = getEnigmaVersionString()
            self.ImageVersion = BoxInfo.getItem(
                "imageversion") + '.' + BoxInfo.getItem("imagebuild")
        except:
            self.EnigmaVersion = about.getEnigmaVersionString()
            self.ImageVersion = BoxInfo.getItem("imgversion")

        # Get TimerList
        self.timerlist = ""
        if config.plugins.tvcharts.submittimers.value and self.LastTimerlistUpdate <= (
                time() - 1800):
            self.LastTimerlistUpdate = time()
            try:
                for timer in self.recordtimer.timer_list:
                    if timer.disabled == 0 and timer.justplay == 0:
                        self.timerlist += "%s|%s|%s|%s|%s|%s|%s\n" % (
                            timer.eit,
                            str(
                                int(timer.begin) +
                                (config.recording.margin_before.getValue() *
                                 60)),
                            str(
                                int(timer.end) -
                                (config.recording.margin_after.getValue() *
                                 60)), str(timer.service_ref), timer.name,
                            timer.service_ref.getServiceName().replace(
                                '\xc2\x86', '').replace('\xc2\x87', '').decode(
                                    "utf-8",
                                    "ignore").encode("utf-8"), timer.repeated)
            except Exception:
                print("[TVCharts] Error loading timers!")

        # Get Pluginlist
        if config.plugins.tvcharts.submitplugins.value and self.pluginlist == "":
            try:
                Console().ePopen(
                    "opkg list_installed | grep enigma2-plugin- > /tmp/plugins.txt"
                )
                for plugin in open('/tmp/plugins.txt', 'r'):
                    self.pluginlist += plugin[0:plugin.find(' - ')] + "\n"
                Console().ePopen("rm -f /tmp/plugins.txt")
            except Exception:
                print("[TVCharts] Error loading plugins!")

        # Status Update
        getPage(
            url='http://www.dreambox-plugins.de/feeds/TVCharts/status.php',
            agent="Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)",
            timeout=60,
            method='POST',
            headers={
                'Content-Type': 'application/x-www-form-urlencoded'
            },
            postdata=urlencode({
                'boxid': self.BoxID,
                'devicename': self.DeviceName,
                'imageversion': self.ImageVersion,
                'enigmaversion': self.EnigmaVersion,
                'lastchannel': channel_name,
                'lastevent': event_name,
                'eventdescr': event_description,
                'lastbegin': event_begin,
                'lastserviceref': self.serviceref,
                'timerlist': self.timerlist,
                'pluginlist': self.pluginlist
            })).addErrback(self.updateError)

        # Restart Timer
        self.DBStatusTimer.start(900000, True)
예제 #26
0
	def grab(self, file):
		if not self.Console:
			self.Console = Console()
		self.Console.ePopen('/usr/bin/grab -v -r 250 -l -j 100 "%s"'%file, self.grabDone)
 def MakeSwapFile(self, result, retval, extra_args):
     Console().ePopen("mkswap /media/hdd/swapfile", self.EnableSwapFile)
예제 #28
0
	def __init__(self, session):
		Screen.__init__(self, session)
		self.skinName = "Standby"
		self.avswitch = AVSwitch()

		print "[Standby] enter standby"

		if path.exists("/usr/scripts/standby_enter.sh"):
			Console().ePopen("/usr/scripts/standby_enter.sh")

		self["actions"] = ActionMap( [ "StandbyActions" ],
		{
			"power": self.Power,
			"discrete_on": self.Power
		}, -1)

		globalActionMap.setEnabled(False)

		from Screens.InfoBar import InfoBar
		self.infoBarInstance = InfoBar.instance
		self.standbyStopServiceTimer = eTimer()
		self.standbyStopServiceTimer.callback.append(self.stopService)
		self.timeHandler = None

		self.setMute()

		if SystemInfo["Display"] and SystemInfo["LCDMiniTV"]:
			# set LCDminiTV off
			setLCDMiniTVMode("0")

		self.paused_service = self.paused_action = False

		self.prev_running_service = self.session.nav.getCurrentlyPlayingServiceOrGroup()
		if Components.ParentalControl.parentalControl.isProtected(self.prev_running_service):
			self.prev_running_service = eServiceReference(config.tv.lastservice.value)
		service = self.prev_running_service and self.prev_running_service.toString()
		if service:
			if service.rsplit(":", 1)[1].startswith("/"):
				self.paused_service = hasattr(self.session.current_dialog, "pauseService") and hasattr(self.session.current_dialog, "unPauseService") and self.session.current_dialog or self.infoBarInstance
				self.paused_action = hasattr(self.paused_service, "seekstate") and hasattr(self.paused_service, "SEEK_STATE_PLAY") and self.paused_service.seekstate == self.paused_service.SEEK_STATE_PLAY
				self.paused_action and self.paused_service.pauseService()
		if not self.paused_service:
			self.timeHandler =  eDVBLocalTimeHandler.getInstance()
			if self.timeHandler.ready():
				if self.session.nav.getCurrentlyPlayingServiceOrGroup():
					self.stopService()
				else:
					self.standbyStopServiceTimer.startLongTimer(5)
				self.timeHandler = None
			else:
				self.timeHandler.m_timeUpdated.get().append(self.stopService)

		if self.session.pipshown:
			self.infoBarInstance and hasattr(self.infoBarInstance, "showPiP") and self.infoBarInstance.showPiP()

		if getBrandOEM() in ('dinobot') or SystemInfo["HasHiSi"]:
			try:
				open("/proc/stb/hdmi/output", "w").write("off")
			except:
				pass

		self.onFirstExecBegin.append(self.__onFirstExecBegin)
		self.onClose.append(self.__onClose)
예제 #29
0
	def checkNetworkState(self,statecallback):
		self.NetworkState = 0
		self.pingConsole = Console()
		for server in ("www.openpli.org", "www.google.nl", "www.google.com"):
			self.pingConsole.ePopen(("/bin/ping", "/bin/ping", "-c", "1", server), self.checkNetworkStateFinished,statecallback)
예제 #30
0
	def __init__(self, session, StandbyCounterIncrease=True):
		Screen.__init__(self, session)
		self.skinName = "Standby"
		self.avswitch = AVSwitch()

		print "[Standby] enter standby"
		if os.path.exists("/usr/script/Standby.sh"):
			Console().ePopen("/usr/script/Standby.sh off")
		if os.path.exists("/usr/script/standby_enter.sh"):
			Console().ePopen("/usr/script/standby_enter.sh")

		self["actions"] = ActionMap( [ "StandbyActions" ],
		{
			"power": self.Power,
			"discrete_on": self.Power
		}, -1)

		globalActionMap.setEnabled(False)

		from Screens.InfoBar import InfoBar
		from Screens.SleepTimerEdit import isNextWakeupTime
		self.infoBarInstance = InfoBar.instance
		self.StandbyCounterIncrease = StandbyCounterIncrease
		self.standbyTimeoutTimer = eTimer()
		self.standbyTimeoutTimer.callback.append(self.standbyTimeout)
		self.standbyStopServiceTimer = eTimer()
		self.standbyStopServiceTimer.callback.append(self.stopService)
		self.standbyWakeupTimer = eTimer()
		self.standbyWakeupTimer.callback.append(self.standbyWakeup)
		self.timeHandler = None

		self.setMute()

		# set LCDminiTV off
		if SystemInfo["Display"] and SystemInfo["LCDMiniTV"]:
			setLCDModeMinitTV("0")

		self.paused_service = self.paused_action = False

		self.prev_running_service = self.session.nav.getCurrentlyPlayingServiceOrGroup()
		if Components.ParentalControl.parentalControl.isProtected(self.prev_running_service):
			self.prev_running_service = eServiceReference(config.tv.lastservice.value)
		service = self.prev_running_service and self.prev_running_service.toString()
		if service:
			if service.rsplit(":", 1)[1].startswith("/"):
				self.paused_service = hasattr(self.session.current_dialog, "pauseService") and hasattr(self.session.current_dialog, "unPauseService") and self.session.current_dialog or self.infoBarInstance
				self.paused_action = hasattr(self.paused_service, "seekstate") and hasattr(self.paused_service, "SEEK_STATE_PLAY") and self.paused_service.seekstate == self.paused_service.SEEK_STATE_PLAY
				self.paused_action and self.paused_service.pauseService()
		if not self.paused_service:
			self.timeHandler =  eDVBLocalTimeHandler.getInstance()
			if self.timeHandler.ready():
				if self.session.nav.getCurrentlyPlayingServiceOrGroup():
					self.stopService()
				else:
					self.standbyStopServiceTimer.startLongTimer(5)
				self.timeHandler = None
			else:
				self.timeHandler.m_timeUpdated.get().append(self.stopService)

		if self.session.pipshown:
			self.infoBarInstance and hasattr(self.infoBarInstance, "showPiP") and self.infoBarInstance.showPiP()

		if SystemInfo["ScartSwitch"]:
			self.avswitch.setInput("SCART")
		else:
			self.avswitch.setInput("AUX")

		gotoShutdownTime = int(config.usage.standby_to_shutdown_timer.value)
		if gotoShutdownTime:
			self.standbyTimeoutTimer.startLongTimer(gotoShutdownTime)

		gotoWakeupTime = isNextWakeupTime(True)
		if gotoWakeupTime != -1:
			curtime = localtime(time())
			if curtime.tm_year > 1970:
				wakeup_time = int(gotoWakeupTime - time())
				if wakeup_time > 0:
					self.standbyWakeupTimer.startLongTimer(wakeup_time)

		self.onFirstExecBegin.append(self.__onFirstExecBegin)
		self.onClose.append(self.__onClose)