from . import _
import time
import os
import enigma
from Plugins.Plugin import PluginDescriptor
from Components.config import config, \
   ConfigEnableDisable, ConfigSubsection, \
   ConfigClock, ConfigOnOff, ConfigText, NoSave

#Set default configuration
config.plugins.autobackup = ConfigSubsection()
config.plugins.autobackup.wakeup = ConfigClock(default=((3 * 60) + 0) *
                                               60)  # 3:00
config.plugins.autobackup.enabled = ConfigEnableDisable(default=False)
config.plugins.autobackup.autoinstall = ConfigOnOff(default=True)
config.plugins.autobackup.where = ConfigText(default="/media/hdd")
config.plugins.autobackup.epgcache = ConfigOnOff(default=False)
config.plugins.autobackup.prevbackup = NoSave(ConfigOnOff(default=False))

# Global variables
autoStartTimer = None

##################################
# Configuration GUI

BACKUP_SCRIPT = "/usr/lib/enigma2/python/Plugins/Extensions/AutoBackup/settings-backup.sh"


def backupCommand():
    cmd = BACKUP_SCRIPT
    if config.plugins.autobackup.autoinstall.value:
Example #2
0
config.plugins.ShowClock = ConfigSubsection()
config.plugins.ShowClock.name = ConfigText(default=_('Show Clock setup'),
                                           fixed_size=False,
                                           visible_width=80)
config.plugins.ShowClock.description = ConfigText(
    default=_('Push "Exit" long to show/hide clock'),
    fixed_size=False,
    visible_width=80)
config.plugins.ShowClock.menu = ConfigSelection(default='plugin',
                                                choices=[('plugin',
                                                          _('Plugin menu')),
                                                         ('extensions',
                                                          _('Extensions menu'))
                                                         ])
config.plugins.ShowClock.showTimeout = ConfigNumber(default=10)
config.plugins.ShowClock.showOnBoot = ConfigOnOff(default=False)

width = getDesktop(0).size().width()
height = getDesktop(0).size().height()
config.plugins.ShowClock.position_x = ConfigNumber(default=int(width * 0.7))
config.plugins.ShowClock.position_y = ConfigNumber(default=45)
if debug:
    print pluginPrintname, "Clock X,Y position: %d,%d" % (
        config.plugins.ShowClock.position_x.value,
        config.plugins.ShowClock.position_y.value)

##############################################################################


class ShowClockSetup(Screen, ConfigListScreen):  # config
Example #3
0
from GlobalActions import globalActionMap
from Components.config import config, ConfigSubsection, ConfigInteger
import os
import keymapparser
from struct import pack
from keyids import KEYIDS

global babelkey
global babeldone
global babelon
babelkey = -1
babeldone = 0
babelon = 0

config.plugins.babelzapper = ConfigSubsection()
config.plugins.babelzapper.enabled = ConfigOnOff(default=False)
config.plugins.babelzapper.changetime = ConfigInteger(default=1000,
                                                      limits=(200, 10000))
config.plugins.babelzapper.exit2escape = ConfigOnOff(default=False)


def main(session, **kwargs):
    session.open(BabelzapperConfiguration)


def autostart(reason, **kwargs):
    #	global session
    if kwargs.has_key("session") and reason == 0:
        session = kwargs["session"]
        print "[BABELZAPPER] autostart"
        session.open(BabelZapperStartup)
Example #4
0
# These entries should be moved back to UsageConfig.py when it is safe to bring UsageConfig init to this location in StartEnigma.py.
#
config.crash = ConfigSubsection()
config.crash.debugActionMaps = ConfigYesNo(default=False)
config.crash.debugKeyboards = ConfigYesNo(default=False)
config.crash.debugOpkg = ConfigYesNo(default=False)
config.crash.debugRemoteControls = ConfigYesNo(default=False)
config.crash.debugScreens = ConfigYesNo(default=False)

# config.plugins needs to be defined before InputDevice < HelpMenu < MessageBox < InfoBar.
config.plugins = ConfigSubsection()
config.plugins.remotecontroltype = ConfigSubsection()
config.plugins.remotecontroltype.rctype = ConfigInteger(default=0)

config.parental = ConfigSubsection()
config.parental.lock = ConfigOnOff(default=False)
config.parental.setuplock = ConfigOnOff(default=False)

config.expert = ConfigSubsection()
config.expert.satpos = ConfigOnOff(default=True)
config.expert.fastzap = ConfigOnOff(default=True)
config.expert.skipconfirm = ConfigOnOff(default=False)
config.expert.hideerrors = ConfigOnOff(default=False)
config.expert.autoinfo = ConfigOnOff(default=True)

profile("Keyboard")
from Components.InputDevice import keyboard


def keyboardNotifier(configElement):
    keyboard.activateKeyboardMap(configElement.index)
Example #5
0
	def fillList(self, arg=None):
		streams = []
		conflist = []
		selectedidx = 0

		self["key_blue"].setBoolean(False)

		service = self.session.nav.getCurrentService()
		self.audioTracks = audio = service and service.audioTracks()
		n = audio and audio.getNumberOfTracks() or 0

		subtitlelist = self.getSubtitleList()

		if self.settings.menupage.getValue() == PAGE_AUDIO:
			self.setTitle(_("Select audio track"))
			service = self.session.nav.getCurrentService()
			self.audioTracks = audio = service and service.audioTracks()
			n = audio and audio.getNumberOfTracks() or 0
			if SystemInfo["CanDownmixAC3"]:
				self.settings.downmix_ac3 = ConfigOnOff(default=config.av.downmix_ac3.getValue())
				self.settings.downmix_ac3.addNotifier(self.changeAC3Downmix, initial_call = False)
				conflist.append(getConfigListEntry(_("AC3 downmix"), self.settings.downmix_ac3))
				self["key_red"].setBoolean(True)

			if n > 0:
				self.audioChannel = service.audioChannel()
				if self.audioChannel:
					choicelist = [("0",_("left")), ("1",_("stereo")), ("2", _("right"))]
					self.settings.channelmode = ConfigSelection(choices = choicelist, default = str(self.audioChannel.getCurrentChannel()))
					self.settings.channelmode.addNotifier(self.changeMode, initial_call = False)
					conflist.append(getConfigListEntry(_("Channel"), self.settings.channelmode))
					self["key_green"].setBoolean(True)
				else:
					conflist.append(('',))
					self["key_green"].setBoolean(False)
				selectedAudio = self.audioTracks.getCurrentTrack()
				for x in range(n):
					number = str(x + 1)
					i = audio.getTrackInfo(x)
					languages = i.getLanguage().split('/')
					description = i.getDescription() or ""
					selected = ""
					language = ""

					if selectedAudio == x:
						selected = "X"
						selectedidx = x

					cnt = 0
					for lang in languages:
						if cnt:
							language += ' / '
						if LanguageCodes.has_key(lang):
							language += LanguageCodes[lang][0]
# 						elif lang == "und":
# 							""
						else:
							language += lang
						cnt += 1

					streams.append((x, "", number, description, language, selected))

			else:
				streams = []
				conflist.append(('',))
				self["key_green"].setBoolean(False)

			if subtitlelist:
				self["key_yellow"].setBoolean(True)
				conflist.append(getConfigListEntry(_("To subtitle selection"), self.settings.menupage))
			else:
				self["key_yellow"].setBoolean(False)
				conflist.append(('',))

			from Components.PluginComponent import plugins
			from Plugins.Plugin import PluginDescriptor

			if hasattr(self.infobar, "runPlugin"):
				class PluginCaller:
					def __init__(self, fnc, *args):
						self.fnc = fnc
						self.args = args
					def __call__(self, *args, **kwargs):
						self.fnc(*self.args)

				Plugins = [ (p.name, PluginCaller(self.infobar.runPlugin, p)) for p in plugins.getPlugins(where = PluginDescriptor.WHERE_AUDIOMENU) ]

				if len(Plugins):
					self["key_blue"].setBoolean(True)
					conflist.append(getConfigListEntry(Plugins[0][0], ConfigNothing()))
					self.plugincallfunc = Plugins[0][1]
				else:
					self["key_blue"].setBoolean(False)
					conflist.append(('',))
				if len(Plugins) > 1:
					print "plugin(s) installed but not displayed in the dialog box:", Plugins[1:]
			else:
				self["key_blue"].setBoolean(False)
				conflist.append(('',))

			if SystemInfo["CanDownmixAAC"]:
				self.settings.downmix_aac = ConfigOnOff(default=config.av.downmix_aac.getValue())
				self.settings.downmix_aac.addNotifier(self.changeAACDownmix, initial_call = False)
				conflist.append(getConfigListEntry(_("AAC downmix"), self.settings.downmix_aac))

			if SystemInfo["Can3DSurround"]:
				surround_choicelist = [("none", _("off")), ("hdmi", _("HDMI")), ("spdif", _("SPDIF")), ("dac", _("DAC"))]
				self.settings.surround_3d = ConfigSelection(choices = surround_choicelist, default = config.av.surround_3d.getValue())
				self.settings.surround_3d.addNotifier(self.change3DSurround, initial_call = False)
				conflist.append(getConfigListEntry(_("3D Surround"), self.settings.surround_3d))
			
			edid_bypass_choicelist = [("00000000", _("off")), ("00000001", _("on"))]
			self.settings.edid_bypass = ConfigSelection(choices = edid_bypass_choicelist, default = config.av.bypass_edid_checking.getValue())
			self.settings.edid_bypass.addNotifier(self.changeEDIDBypass, initial_call = False)
			conflist.append(getConfigListEntry(_("Bypass HDMI EDID Check"), self.settings.edid_bypass))

		elif self.settings.menupage.getValue() == PAGE_SUBTITLES:
			self.setTitle(_("Subtitle selection"))
			conflist.append(('',))
			conflist.append(('',))
			self["key_red"].setBoolean(False)
			self["key_green"].setBoolean(False)

			idx = 0

			for x in subtitlelist:
				number = str(x[1])
				description = "?"
				language = ""
				selected = ""

				if self.selectedSubtitle and x[:4] == self.selectedSubtitle[:4]:
					selected = "X"
					selectedidx = idx

				try:
					if x[4] != "und":
						if LanguageCodes.has_key(x[4]):
							language = LanguageCodes[x[4]][0]
						else:
							language = x[4]
				except:
					language = ""

				if x[0] == 0:
					description = "DVB"
					number = "%x" % (x[1])

				elif x[0] == 1:
					description = "teletext"
					number = "%x%02x" %(x[3] and x[3] or 8, x[2])

				elif x[0] == 2:
					types = ("unknown", "embedded", "SSA file", "ASS file",
							"SRT file", "VOB file", "PGS file")
					try:
						description = types[x[2]]
					except:
						description = _("unknown") + ": %s" % x[2]
					number = str(int(number) + 1)

				streams.append((x, "", number, description, language, selected))
				idx += 1

			conflist.append(getConfigListEntry(_("To audio selection"), self.settings.menupage))

			if self.infobar.selected_subtitle and self.infobar.selected_subtitle != (0,0,0,0)  and not ".DVDPlayer'>" in `self.infobar`:
				self["key_blue"].setBoolean(True)
				conflist.append(getConfigListEntry(_("Subtitle Quickmenu"), ConfigNothing()))

		self["config"].list = conflist
		self["config"].l.setList(conflist)

		self["streams"].list = streams
		self["streams"].setIndex(selectedidx)
Example #6
0
            streamServerControl.setEncoderService(service)
            return True
        Log.i("nothing done")
        return False


#Streamserver base config
config.streamserver = ConfigSubsection()
config.streamserver.source = ConfigSelection(
    StreamServerControl.INPUT_MODES,
    default=str(eStreamServer.INPUT_MODE_LIVE))
config.streamserver.audioBitrate = ConfigInteger(
    96, StreamServerControl.AUDIO_BITRATE_LIMITS)
config.streamserver.videoBitrate = ConfigInteger(
    1500, StreamServerControl.VIDEO_BITRATE_LIMITS)
config.streamserver.autoBitrate = ConfigOnOff(default=False)
config.streamserver.resolution = ConfigSelection(
    StreamServerControl.RESOLUTIONS.keys(),
    default=StreamServerControl.RES_KEY_PAL)
config.streamserver.framerate = ConfigSelection(
    StreamServerControl.FRAME_RATES,
    default=StreamServerControl.FRAME_RATE_23_976)
# extended encoder settings
config.streamserver.gopLength = ConfigInteger(
    default=eStreamServer.GOP_LENGTH_AUTO,
    limits=[eStreamServer.GOP_LENGTH_MIN, eStreamServer.GOP_LENGTH_MAX])
config.streamserver.gopOnSceneChange = ConfigOnOff(default=False)
config.streamserver.openGop = ConfigOnOff(default=False)
config.streamserver.bFrames = ConfigInteger(
    default=eStreamServer.BFRAMES_DEFAULT,
    limits=[eStreamServer.BFRAMES_MIN, eStreamServer.BFRAMES_MAX])
Example #7
0
class HdmiCec:
    POWER_STATE_ON = eCec.POWER_STATE_ON
    POWER_STATE_STANDBY = eCec.POWER_STATE_STANDBY
    POWER_STATE_TRANSITION_STANDBY_TO_ON = eCec.POWER_STATE_TRANSITION_STANDBY_TO_ON
    POWER_STATE_TRANSITION_ON_TO_STANDBY = eCec.POWER_STATE_TRANSITION_ON_TO_STANDBY
    VOLUME_TARGET_DYNAMIC = "dynamic"
    VOLUME_TARGET_AVR = "avr"
    VOLUME_TARGET_AVR_FORCE = "avr_forced"
    VOLUME_TARGET_TV = "tv"
    VOLUME_TARGET_TV_FORCE = "tv_forced"

    VOLUME_TARGETS = {
        VOLUME_TARGET_DYNAMIC: _("Dynamic"),
        VOLUME_TARGET_AVR: _("Audio System"),
        VOLUME_TARGET_AVR_FORCE: _("Audio System (force)"),
        VOLUME_TARGET_TV: _("TV"),
        VOLUME_TARGET_TV_FORCE: _("TV (force)"),
    }

    config.cec = ConfigSubsection()
    config.cec.enabled = ConfigOnOff(default=True)
    config.cec.name = ConfigText(default=HardwareInfo().get_device_name(),
                                 fixed_size=False)
    config.cec.sendpower = ConfigOnOff(default=True)
    config.cec.enable_avr = ConfigOnOff(default=True)
    config.cec.avr_power_explicit = ConfigOnOff(default=False)
    config.cec.receivepower = ConfigOnOff(default=True)
    config.cec.enable_vendor_quirks = ConfigOnOff(default=True)
    config.cec.enable_experimental_vendor_quirks = ConfigOnOff(default=False)
    config.cec.receive_remotekeys = ConfigOnOff(default=True)
    config.cec.volume_forward = ConfigOnOff(default=False)
    config.cec.volume_target = ConfigSelection(VOLUME_TARGETS,
                                               default=VOLUME_TARGET_DYNAMIC)
    config.cec.remote_repeat_delay = ConfigSelectionNumber(50,
                                                           300,
                                                           50,
                                                           default=100,
                                                           wraparound=True)
    config.cec.activate_on_routing_info = ConfigOnOff(default=True)
    config.cec.activate_on_routing_change = ConfigOnOff(default=True)
    config.cec.activate_on_active_source = ConfigOnOff(default=True)
    config.cec.activate_on_stream = ConfigOnOff(default=True)
    config.cec.activate_on_tvpower = ConfigOnOff(default=True)
    config.cec.ignore_powerstates = ConfigOnOff(default=False)
    config.cec.ignore_active_source_nontv = ConfigOnOff(default=False)
    config.cec.ignore_ready_state = ConfigOnOff(default=False)

    def __init__(self):
        self.instance = eCec.getInstance()
        self.instance.setName(config.cec.name.value)

    def isReady(self):
        return self.instance.isReady()

    def otpEnable(self):
        self.instance.otpEnable()

    def otpDisable(self):
        self.instance.otpDisable()

    def systemStandby(self, target=0x0f):
        self.instance.systemStandby(target)

    def isVolumeForwarded(self):
        return self.sendSystemAudioKey(0, test=True)

    def sendSystemAudioKey(self, keyid, test=False):
        ret = False
        if config.cec.volume_forward.value:
            target = self.instance.getVolumeTarget()
            config_target = config.cec.volume_target.value
            if config_target == self.VOLUME_TARGET_DYNAMIC:
                ret = True
            elif config_target == self.VOLUME_TARGET_AVR and target == eCec.ADDR_AUDIO_SYSTEM:
                ret = True
            elif config_target == self.VOLUME_TARGET_AVR_FORCE:
                target = eCec.ADDR_AUDIO_SYSTEM
                ret = True
            elif config_target == self.VOLUME_TARGET_TV and target == eCec.ADDR_TV:
                ret = True
            elif config_target == self.VOLUME_TARGET_TV_FORCE:
                target = eCec.ADDR_TV
                ret = True
        if ret and not test:
            self.sendKey(target, keyid)
        return ret

    def getVolumeTarget(self):
        return self.instance.getVolumeTarget()

    def sendKey(self, dest, keyid):
        self.instance.sendKey(dest, keyid)

    def setPowerState(self, newstate):
        self.instance.setPowerstate(newstate)

    def giveSystemAudioStatus(self):
        self.instance.giveSystemAudioStatus()

    def systemAudioRequest(self):
        self.instance.systemAudioRequest()


#Deprecated compat API

    def otp_source_enable(self):
        Log.w("deprecated method call")
        self.otpEnable()

    def otp_source_disable(self):
        Log.w("deprecated method call")
        self.otpDisable()

    def ss_standby(self):
        Log.w("deprecated method call")
        self.systemStandby()
    def fillList(self, arg=None):
        from Tools.ISO639 import LanguageCodes
        streams = []
        conflist = []
        selectedidx = 0

        self["key_red"].setBoolean(False)
        self["key_green"].setBoolean(False)
        self["key_yellow"].setBoolean(False)
        self["key_blue"].setBoolean(False)

        if self.settings.menupage.value == PAGE_AUDIO:
            self.setTitle(_("Select audio track"))
            service = self.session.nav.getCurrentService()
            self.audioTracks = audio = service and service.audioTracks()
            n = audio and audio.getNumberOfTracks() or 0
            if SystemInfo["CanDownmixAC3"]:
                self.settings.downmix_ac3 = ConfigOnOff(
                    default=config.av.downmix_ac3.value)
                self.settings.downmix_ac3.addNotifier(self.changeAC3Downmix,
                                                      initial_call=False)
                conflist.append(
                    getConfigListEntry(_("Dolby Digital / AC3 downmix"),
                                       self.settings.downmix_ac3, None))

            if SystemInfo["CanDownmixDTS"]:
                self.settings.downmix_dts = ConfigOnOff(
                    default=config.av.downmix_dts.value)
                self.settings.downmix_dts.addNotifier(self.changeDTSDownmix,
                                                      initial_call=False)
                conflist.append(
                    getConfigListEntry(_("DTS downmix"),
                                       self.settings.downmix_dts, None))

            if SystemInfo["CanDownmixAAC"]:
                self.settings.downmix_aac = ConfigOnOff(
                    default=config.av.downmix_aac.value)
                self.settings.downmix_aac.addNotifier(self.changeAACDownmix,
                                                      initial_call=False)
                conflist.append(
                    getConfigListEntry(_("AAC downmix"),
                                       self.settings.downmix_aac, None))

            if SystemInfo["CanAACTranscode"]:
                choice_list = [("off", _("off")), ("ac3", _("AC3")),
                               ("dts", _("DTS"))]
                self.settings.transcodeaac = ConfigSelection(
                    choices=choice_list, default="off")
                self.settings.transcodeaac.addNotifier(self.setAACTranscode)
                conflist.append(
                    getConfigListEntry(_("AAC transcoding"),
                                       self.settings.transcodeaac, None))

            if SystemInfo["CanPcmMultichannel"]:
                self.settings.pcm_multichannel = ConfigOnOff(
                    default=config.av.pcm_multichannel.value)
                self.settings.pcm_multichannel.addNotifier(
                    self.changePCMMultichannel, initial_call=False)
                conflist.append(
                    getConfigListEntry(_("PCM Multichannel"),
                                       self.settings.pcm_multichannel, None))

            if n > 0:
                self.audioChannel = service.audioChannel()
                if self.audioChannel:
                    choicelist = [("0", _("left")), ("1", _("stereo")),
                                  ("2", _("right"))]
                    self.settings.channelmode = ConfigSelection(
                        choices=choicelist,
                        default=str(self.audioChannel.getCurrentChannel()))
                    self.settings.channelmode.addNotifier(self.changeMode,
                                                          initial_call=False)
                    conflist.append(
                        getConfigListEntry(_("Audio Channels"),
                                           self.settings.channelmode, None))
                selectedAudio = self.audioTracks.getCurrentTrack()
                for x in range(n):
                    number = str(x + 1)
                    i = audio.getTrackInfo(x)
                    language = self.getAudioLanguage(i)
                    description = self.getAudioDescription(i)
                    selected = ""

                    if selectedAudio == x:
                        selected = "X"
                        selectedidx = x

                    streams.append(
                        (x, "", number, description, language, selected))

            else:
                conflist.append(('', ))

            if SystemInfo["Can3DSurround"]:
                choice_list = [("none", _("off")), ("hdmi", _("HDMI")),
                               ("spdif", _("SPDIF")), ("dac", _("DAC"))]
                self.settings.surround_3d = ConfigSelection(
                    choices=choice_list, default=config.av.surround_3d.value)
                self.settings.surround_3d.addNotifier(self.change3DSurround,
                                                      initial_call=False)
                conflist.append(
                    getConfigListEntry(_("3D Surround"),
                                       self.settings.surround_3d, None))

            if SystemInfo[
                    "Can3DSpeaker"] and config.av.surround_3d.value != "none":
                choice_list = [("center", _("center")), ("wide", _("wide")),
                               ("extrawide", _("extra wide"))]
                self.settings.surround_3d_speaker = ConfigSelection(
                    choices=choice_list,
                    default=config.av.surround_3d_speaker.value)
                self.settings.surround_3d_speaker.addNotifier(
                    self.change3DSurroundSpeaker)
                conflist.append(
                    getConfigListEntry(_("3D Surround Speaker Position"),
                                       self.settings.surround_3d_speaker,
                                       None))

            if SystemInfo["CanAutoVolume"]:
                choice_list = [("none", _("off")), ("hdmi", _("HDMI")),
                               ("spdif", _("SPDIF")), ("dac", _("DAC"))]
                self.settings.autovolume = ConfigSelection(
                    choices=choice_list, default=config.av.autovolume.value)
                self.settings.autovolume.addNotifier(self.changeAutoVolume)
                conflist.append(
                    getConfigListEntry(_("Auto Volume Level"),
                                       self.settings.autovolume, None))

            # if SystemInfo["Canedidchecking"]:
            # choice_list = [("00000000", _("off")), ("00000001", _("on"))]
            # self.settings.bypass_edid_checking = ConfigSelection(choices=choice_list, default=config.av.bypass_edid_checking.value)
            # self.settings.bypass_edid_checking.addNotifier(self.changeEDIDChecking, initial_call = False)
            # conflist.append(getConfigListEntry(_("Bypass HDMI EDID Check"), self.settings.bypass_edid_checking, None))

            from Components.PluginComponent import plugins
            from Plugins.Plugin import PluginDescriptor

            if hasattr(self.infobar, "runPlugin"):

                class PluginCaller:
                    def __init__(self, fnc, *args):
                        self.fnc = fnc
                        self.args = args

                    def __call__(self, *args, **kwargs):
                        self.fnc(*self.args)

                Plugins = [(p.name, PluginCaller(self.infobar.runPlugin, p))
                           for p in plugins.getPlugins(
                               where=PluginDescriptor.WHERE_AUDIOMENU)]
                if len(Plugins):
                    for x in Plugins:
                        if x[0] != 'AudioEffect':  # always make AudioEffect Blue button.
                            conflist.append(
                                getConfigListEntry(x[0], ConfigNothing(),
                                                   x[1]))

        elif self.settings.menupage.value == PAGE_SUBTITLES:

            self.setTitle(_("Subtitle selection"))

            idx = 0

            subtitlelist = self.getSubtitleList()

            if subtitlelist is None:
                subtitlelist = []

            for x in subtitlelist:
                selected = ""

                if self.selectedSubtitle and x[:4] == self.selectedSubtitle[:4]:
                    selected = "X"
                    selectedidx = idx

                language = self.getSubtitleLanguage(x, undetermined="")
                description, number = self.getSubtitleDescription(x)

                streams.append(
                    (x, "", number, description, language, selected))
                idx += 1

            if self.infobar.selected_subtitle and self.infobar.selected_subtitle != (
                    0, 0, 0, 0) and ".DVDPlayer'>" not in repr(self.infobar):
                conflist.append(
                    getConfigListEntry(_("Subtitle Quickmenu"),
                                       ConfigNothing(), None))

            self.settings.hide_teletext_undetermined_list = ConfigOnOff(
                default=config.subtitles.hide_teletext_undetermined_list.value)
            self.settings.hide_teletext_undetermined_list.addNotifier(
                self.changeSubHideList, initial_call=False)
            conflist.append(
                getConfigListEntry(
                    _("Hide undetermined language teletext subtitles in list"),
                    self.settings.hide_teletext_undetermined_list, None))

            self.settings.hide_teletext_undetermined_cycle = ConfigOnOff(
                default=config.subtitles.hide_teletext_undetermined_cycle.value
            )
            self.settings.hide_teletext_undetermined_cycle.addNotifier(
                self.changeSubHideCycle, initial_call=False)
            conflist.append(
                getConfigListEntry(
                    _("Hide undetermined lang ttxt subtitles when cycling them"
                      ), self.settings.hide_teletext_undetermined_cycle, None))

        if len(conflist) > 0 and conflist[0][0]:
            self["key_red"].setBoolean(True)
        if len(conflist) > 1 and conflist[1][0]:
            self["key_green"].setBoolean(True)
        if len(conflist) > 2 and conflist[2][0]:
            self["key_yellow"].setBoolean(True)
        if len(conflist) > 3 and conflist[3][0]:
            self["key_blue"].setBoolean(True)

        self["config"].list = conflist
        self["config"].l.setList(conflist)

        self["streams"].list = streams
        self["streams"].setIndex(selectedidx)
Example #9
0
import time
import os
import enigma
from Plugins.Plugin import PluginDescriptor
from Components.config import config, \
   ConfigEnableDisable, ConfigSubsection, \
   ConfigClock, ConfigOnOff, ConfigText

#Set default configuration
config.plugins.autobackup = ConfigSubsection()
config.plugins.autobackup.wakeup = ConfigClock(default=((3 * 60) + 0) *
                                               60)  # 3:00
config.plugins.autobackup.enabled = ConfigEnableDisable(default=False)
config.plugins.autobackup.autoinstall = ConfigOnOff(default=False)
config.plugins.autobackup.where = ConfigText(default="/media/hdd")

# Global variables
autoStartTimer = None

##################################
# Configuration GUI

BACKUP_SCRIPT = "/usr/lib/enigma2/python/Plugins/Extensions/AutoBackup/settings-backup.sh"


def backupCommand():
    cmd = BACKUP_SCRIPT
    if config.plugins.autobackup.autoinstall.value:
        cmd += " -a"
    cmd += " " + config.plugins.autobackup.where.value
    return cmd
from enigma import eWindowAnimationManager, getDesktop
from Components.config import config, ConfigInteger, ConfigOnOff, ConfigText, getConfigListEntry
from Components.ActionMap import ActionMap, NumberActionMap
from Components.ConfigList import ConfigListScreen
from Components.Label import Label
from Components.MenuList import MenuList
from Components.Sources.StaticText import StaticText
from Screens.MessageBox import MessageBox
from Screens.Screen import Screen
from Tools.HardwareInfo import HardwareInfo
import six

config.osd.window_animation = ConfigOnOff(default=True)
config.osd.window_animation_default = ConfigText(default="simple_fade")
config.osd.widget_animation = ConfigOnOff(default=False)
config.osd.widget_animation_display = ConfigOnOff(default=False)
config.osd.widget_animation_duration = ConfigInteger(default=400,
                                                     limits=(50, 1000))


class AnimationSetup(Screen):
    skin = """
		<screen name="AnimationSetup" position="center,120" size="820,520" title="Animation Setup">
			<ePixmap pixmap="skin_default/buttons/red.png" position="10,5" size="200,40" alphatest="on" />
			<ePixmap pixmap="skin_default/buttons/green.png" position="210,5" size="200,40" alphatest="on" />
			<ePixmap pixmap="skin_default/buttons/yellow.png" position="410,5" size="200,40" alphatest="on" />
			<ePixmap pixmap="skin_default/buttons/blue.png" position="610,5" size="200,40" alphatest="on" />
			<widget name="key_red" position="10,5" size="200,40" zPosition="1" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" shadowColor="black" shadowOffset="-2,-2" />
			<widget name="key_green" position="210,5" size="200,40" zPosition="1" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" shadowColor="black" shadowOffset="-2,-2" />
			<widget name="key_yellow" position="410,5" size="200,40" zPosition="1" font="Regular;20" halign="center" valign="center" backgroundColor="#a08500" transparent="1" shadowColor="black" shadowOffset="-2,-2" />
			<widget name="key_blue" position="610,5" size="200,40" zPosition="1" font="Regular;20" halign="center" valign="center" backgroundColor="#18188b" transparent="1" shadowColor="black" shadowOffset="-2,-2" />
Example #11
0
				+ _("  or if just want to say ''thanks'',\n") \
				+ _("  feel free to donate via PayPal. \n\n") \
				+ _("  Thanks a lot ! \n  PayPal: ") + DONATE + "\n" \
				+ _("  Support: ") + SUPPORT


# Globals
gPushService = None


# Config options
config.pushservice                           = ConfigSubsection()

config.pushservice.about                     = ConfigNothing()

config.pushservice.enable                    = ConfigOnOff(default = True)

config.pushservice.boxname                   = ConfigText(default = "Enigma2", fixed_size = False)
config.pushservice.xmlpath                   = ConfigText(default = "/etc/enigma2/pushservice.xml", fixed_size = False)

config.pushservice.time                      = ConfigClock(default = 0)
config.pushservice.period                    = ConfigSelectionNumber(0, 1000, 1, default = 24)
config.pushservice.runonboot                 = ConfigOnOff(default = True)
config.pushservice.bootdelay                 = ConfigSelectionNumber(5, 1000, 5, default = 10)

config.pushservice.push_errors               = ConfigOnOff(default = False)


#######################################################
# Plugin configuration
def setup(session, **kwargs):
def InitAVSwitch():
    config.av = ConfigSubsection()
    if model == "vuduo" or BoxInfo.getItem("brand") == "ixuss":
        config.av.yuvenabled = ConfigBoolean(default=False)
    else:
        config.av.yuvenabled = ConfigBoolean(default=True)
    colorformat_choices = {"cvbs": _("CVBS")}

    # when YUV, Scart or S-Video is not support by HW, don't let the user select it
    if BoxInfo.getItem("yuv"):
        colorformat_choices["yuv"] = _("YPbPr")
    if BoxInfo.getItem("scart"):
        colorformat_choices["rgb"] = _("RGB")
    if BoxInfo.getItem("svideo"):
        colorformat_choices["svideo"] = _("S-Video")

    config.av.colorformat = ConfigSelection(choices=colorformat_choices,
                                            default="cvbs")
    config.av.aspectratio = ConfigSelection(choices={
        "4_3_letterbox":
        _("4:3 Letterbox"),
        "4_3_panscan":
        _("4:3 PanScan"),
        "16_9":
        _("16:9"),
        "16_9_always":
        _("16:9 always"),
        "16_10_letterbox":
        _("16:10 Letterbox"),
        "16_10_panscan":
        _("16:10 PanScan"),
        "16_9_letterbox":
        _("16:9 Letterbox")
    },
                                            default="16_9")
    config.av.aspect = ConfigSelection(choices={
        "4_3": _("4:3"),
        "16_9": _("16:9"),
        "16_10": _("16:10"),
        "auto": _("Automatic")
    },
                                       default="auto")
    policy2_choices = {
        # TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term.
        "letterbox": _("Letterbox"),
        # TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term
        "panscan": _("Pan&scan"),
        # TRANSLATORS: (aspect ratio policy: scale as close to fullscreen as possible)
        "scale": _("Just scale")
    }
    try:
        print("[AVSwitch] Read /proc/stb/video/policy2_choices")
        if "full" in open("/proc/stb/video/policy2_choices").read():
            # TRANSLATORS: (aspect ratio policy: display as fullscreen, even if the content aspect ratio does not match the screen ratio)
            policy2_choices.update({"full": _("Full screen")})
    except:
        print("[AVSwitch] Read /proc/stb/video/policy2_choices failed.")
    try:
        print("[AVSwitch] Read /proc/stb/video/policy2_choices")
        if "auto" in open("/proc/stb/video/policy2_choices").read():
            # TRANSLATORS: (aspect ratio policy: automatically select the best aspect ratio mode)
            policy2_choices.update({"auto": _("Auto")})
    except:
        print("[AVSwitch] Read /proc/stb/video/policy2_choices failed.")
    config.av.policy_169 = ConfigSelection(choices=policy2_choices,
                                           default="scale")
    policy_choices = {
        # TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term.
        "pillarbox": _("Pillarbox"),
        # TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term
        "panscan": _("Pan&scan"),
        # TRANSLATORS: (aspect ratio policy: scale as close to fullscreen as possible)
        "scale": _("Just scale")
    }
    try:
        print("[AVSwitch] Read /proc/stb/video/policy_choices")
        if "nonlinear" in open("/proc/stb/video/policy_choices").read():
            # TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right)
            policy_choices.update({"nonlinear": _("Nonlinear")})
    except:
        print("[AVSwitch] Read /proc/stb/video/policy_choices failed.")
    try:
        print("[AVSwitch] Read /proc/stb/video/policy_choices")
        if "full" in open("/proc/stb/video/policy_choices").read():
            # TRANSLATORS: (aspect ratio policy: display as fullscreen, even if the content aspect ratio does not match the screen ratio)
            policy_choices.update({"full": _("Full screen")})
    except:
        print("[AVSwitch] Read /proc/stb/video/policy_choices failed.")
    try:
        print("[AVSwitch] Read /proc/stb/video/policy_choices")
        if "auto" in open("/proc/stb/video/policy_choices").read():
            # TRANSLATORS: (aspect ratio policy: automatically select the best aspect ratio mode)
            policy_choices.update({"auto": _("Auto")})
    except:
        print("[AVSwitch] Read /proc/stb/video/policy_choices failed.")
    config.av.policy_43 = ConfigSelection(choices=policy_choices,
                                          default="scale")
    config.av.tvsystem = ConfigSelection(choices={
        "pal": _("PAL"),
        "ntsc": _("NTSC"),
        "multinorm": _("multinorm")
    },
                                         default="pal")
    config.av.wss = ConfigEnableDisable(default=True)
    config.av.generalAC3delay = ConfigSelectionNumber(-1000,
                                                      1000,
                                                      5,
                                                      default=0)
    config.av.generalPCMdelay = ConfigSelectionNumber(-1000,
                                                      1000,
                                                      5,
                                                      default=0)
    config.av.vcrswitch = ConfigEnableDisable(default=False)

    iAVSwitch = AVSwitch()

    def setColorFormat(configElement):
        if model == "et6x00":
            map = {"cvbs": 3, "rgb": 3, "svideo": 2, "yuv": 3}
        elif platform == "gb7356" or model.startswith('et'):
            map = {"cvbs": 0, "rgb": 3, "svideo": 2, "yuv": 3}
        else:
            map = {"cvbs": 0, "rgb": 1, "svideo": 2, "yuv": 3}
        iAVSwitch.setColorFormat(map[configElement.value])

    def setAspectRatio(configElement):
        map = {
            "4_3_letterbox": 0,
            "4_3_panscan": 1,
            "16_9": 2,
            "16_9_always": 3,
            "16_10_letterbox": 4,
            "16_10_panscan": 5,
            "16_9_letterbox": 6
        }
        iAVSwitch.setAspectRatio(map[configElement.value])

    def setSystem(configElement):
        map = {"pal": 0, "ntsc": 1, "multinorm": 2}
        iAVSwitch.setSystem(map[configElement.value])

    def setWSS(configElement):
        iAVSwitch.setAspectWSS()

    # this will call the "setup-val" initial
    config.av.colorformat.addNotifier(setColorFormat)
    config.av.aspectratio.addNotifier(setAspectRatio)
    config.av.tvsystem.addNotifier(setSystem)
    config.av.wss.addNotifier(setWSS)

    iAVSwitch.setInput("ENCODER")  # init on startup
    if platform == "gb7356" or model in (
            "et5x00", "et6x00", "ixussone", "ixusszero", "axodin", "axase3",
            "optimussos1", "optimussos2", "gb800seplus", "gb800ueplus",
            "gbultrase", "gbultraue", "gbultraueh", "twinboxlcd"):
        detected = False
    else:
        detected = eAVSwitch.getInstance().haveScartSwitch()

    BoxInfo.setItem("ScartSwitch", detected)

    if BoxInfo.getItem("CanDownmixAC3"):

        def setAC3Downmix(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/ac3")
            if BoxInfo.getItem("DreamBoxAudio"):
                open("/proc/stb/audio/ac3", "w").write(configElement.value)
            else:
                open("/proc/stb/audio/ac3",
                     "w").write(configElement.value and "downmix"
                                or "passthrough")

        if BoxInfo.getItem("DreamBoxAudio"):
            choice_list = [("downmix", _("Downmix")),
                           ("passthrough", _("Passthrough")),
                           ("multichannel", _("convert to multi-channel PCM")),
                           ("hdmi_best", _("use best / controlled by HDMI"))]
            config.av.downmix_ac3 = ConfigSelection(choices=choice_list,
                                                    default="downmix")
        else:
            config.av.downmix_ac3 = ConfigYesNo(default=True)
        config.av.downmix_ac3.addNotifier(setAC3Downmix)

    if BoxInfo.getItem("CanAC3plusTranscode"):

        def setAC3plusTranscode(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/ac3plus")
            open("/proc/stb/audio/ac3plus", "w").write(configElement.value)

        if BoxInfo.getItem("DreamBoxAudio"):
            choice_list = [("use_hdmi_caps", _("controlled by HDMI")),
                           ("force_ac3", _("convert to AC3")),
                           ("multichannel", _("convert to multi-channel PCM")),
                           ("hdmi_best", _("use best / controlled by HDMI")),
                           ("force_ddp", _("force AC3plus"))]
            config.av.transcodeac3plus = ConfigSelection(choices=choice_list,
                                                         default="force_ac3")
        elif platform in ("gb7252", "gb72604"):
            choice_list = [("downmix", _("Downmix")),
                           ("passthrough", _("Passthrough")),
                           ("force_ac3", _("convert to AC3")),
                           ("multichannel", _("convert to multi-channel PCM")),
                           ("force_dts", _("convert to DTS"))]
            config.av.transcodeac3plus = ConfigSelection(choices=choice_list,
                                                         default="force_ac3")
        else:
            choice_list = [("use_hdmi_caps", _("controlled by HDMI")),
                           ("force_ac3", _("convert to AC3"))]
            config.av.transcodeac3plus = ConfigSelection(choices=choice_list,
                                                         default="force_ac3")
        config.av.transcodeac3plus.addNotifier(setAC3plusTranscode)

    if BoxInfo.getItem("CanDownmixDTS"):

        def setDTSDownmix(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/dts")
            open("/proc/stb/audio/dts",
                 "w").write(configElement.value and "downmix" or "passthrough")

        config.av.downmix_dts = ConfigYesNo(default=True)
        config.av.downmix_dts.addNotifier(setDTSDownmix)

    if BoxInfo.getItem("CanDTSHD"):

        def setDTSHD(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/dtshd")
            open("/proc/stb/audio/dtshd", "w").write(configElement.value)

        if model in ("dm7080", "dm820"):
            choice_list = [("use_hdmi_caps", _("controlled by HDMI")),
                           ("force_dts", _("convert to DTS"))]
            config.av.dtshd = ConfigSelection(choices=choice_list,
                                              default="use_hdmi_caps")
        else:
            choice_list = [("downmix", _("Downmix")),
                           ("force_dts", _("convert to DTS")),
                           ("use_hdmi_caps", _("controlled by HDMI")),
                           ("multichannel", _("convert to multi-channel PCM")),
                           ("hdmi_best", _("use best / controlled by HDMI"))]
            config.av.dtshd = ConfigSelection(choices=choice_list,
                                              default="downmix")
        config.av.dtshd.addNotifier(setDTSHD)

    if BoxInfo.getItem("CanWMAPRO"):

        def setWMAPRO(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/wmapro")
            open("/proc/stb/audio/wmapro", "w").write(configElement.value)

        choice_list = [("downmix", _("Downmix")),
                       ("passthrough", _("Passthrough")),
                       ("multichannel", _("convert to multi-channel PCM")),
                       ("hdmi_best", _("use best / controlled by HDMI"))]
        config.av.wmapro = ConfigSelection(choices=choice_list,
                                           default="downmix")
        config.av.wmapro.addNotifier(setWMAPRO)

    if BoxInfo.getItem("CanDownmixAAC"):

        def setAACDownmix(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/aac")
            if BoxInfo.getItem("DreamBoxAudio") or platform in ("gb7252",
                                                                "gb72604"):
                open("/proc/stb/audio/aac", "w").write(configElement.value)
            else:
                open("/proc/stb/audio/aac",
                     "w").write(configElement.value and "downmix"
                                or "passthrough")

        if BoxInfo.getItem("DreamBoxAudio"):
            choice_list = [("downmix", _("Downmix")),
                           ("passthrough", _("Passthrough")),
                           ("multichannel", _("convert to multi-channel PCM")),
                           ("hdmi_best", _("use best / controlled by HDMI"))]
            config.av.downmix_aac = ConfigSelection(choices=choice_list,
                                                    default="downmix")
        elif platform in ("gb7252", "gb72604"):
            choice_list = [("downmix", _("Downmix")),
                           ("passthrough", _("Passthrough")),
                           ("multichannel", _("convert to multi-channel PCM")),
                           ("force_ac3", _("convert to AC3")),
                           ("force_dts", _("convert to DTS")),
                           ("use_hdmi_cacenter", _("use_hdmi_cacenter")),
                           ("wide", _("wide")), ("extrawide", _("extrawide"))]
            config.av.downmix_aac = ConfigSelection(choices=choice_list,
                                                    default="downmix")
        else:
            config.av.downmix_aac = ConfigYesNo(default=True)
        config.av.downmix_aac.addNotifier(setAACDownmix)

    if BoxInfo.getItem("CanDownmixAACPlus"):

        def setAACDownmixPlus(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/aacplus")
            open("/proc/stb/audio/aacplus", "w").write(configElement.value)

        choice_list = [("downmix", _("Downmix")),
                       ("passthrough", _("Passthrough")),
                       ("multichannel", _("convert to multi-channel PCM")),
                       ("force_ac3", _("convert to AC3")),
                       ("force_dts", _("convert to DTS")),
                       ("use_hdmi_cacenter", _("use_hdmi_cacenter")),
                       ("wide", _("wide")), ("extrawide", _("extrawide"))]
        config.av.downmix_aacplus = ConfigSelection(choices=choice_list,
                                                    default="downmix")
        config.av.downmix_aacplus.addNotifier(setAACDownmixPlus)

    if BoxInfo.getItem("CanAACTranscode"):

        def setAACTranscode(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/aac_transcode")
            open("/proc/stb/audio/aac_transcode",
                 "w").write(configElement.value)

        choice_list = [("off", _("off")), ("ac3", _("AC3")), ("dts", _("DTS"))]
        config.av.transcodeaac = ConfigSelection(choices=choice_list,
                                                 default="off")
        config.av.transcodeaac.addNotifier(setAACTranscode)
    else:
        config.av.transcodeaac = ConfigNothing()

    if BoxInfo.getItem("CanBTAudio"):

        def setBTAudio(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/btaudio")
            open("/proc/stb/audio/btaudio",
                 "w").write("on" if configElement.value else "off")

        config.av.btaudio = ConfigOnOff(default=False)
        config.av.btaudio.addNotifier(setBTAudio)
    else:
        config.av.btaudio = ConfigNothing()

    if BoxInfo.getItem("CanBTAudioDelay"):

        def setBTAudioDelay(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/btaudio_delay")
            open("/proc/stb/audio/btaudio_delay",
                 "w").write(format(configElement.value * 90))

        config.av.btaudiodelay = ConfigSelectionNumber(-1000,
                                                       1000,
                                                       5,
                                                       default=0)
        config.av.btaudiodelay.addNotifier(setBTAudioDelay)
    else:
        config.av.btaudiodelay = ConfigNothing()

    if BoxInfo.getItem("CanChangeOsdAlpha"):

        def setAlpha(config):
            print("[AVSwitch] Write to /proc/stb/video/alpha")
            open("/proc/stb/video/alpha", "w").write(str(config.value))

        config.av.osd_alpha = ConfigSlider(default=255, limits=(0, 255))
        config.av.osd_alpha.addNotifier(setAlpha)

    if BoxInfo.getItem("ScalerSharpness"):

        def setScaler_sharpness(config):
            myval = int(config.value)
            try:
                print("--> setting scaler_sharpness to: %0.8X" % myval)
                print(
                    "[AVSwitch] Write to /proc/stb/vmpeg/0/pep_scaler_sharpness"
                )
                open("/proc/stb/vmpeg/0/pep_scaler_sharpness",
                     "w").write("%0.8X" % myval)
                print("[AVSwitch] Write to /proc/stb/vmpeg/0/pep_apply")
                open("/proc/stb/vmpeg/0/pep_apply", "w").write("1")
            except IOError:
                print("[AVSwitch] couldn't write pep_scaler_sharpness")

        if platform == "gb7356":
            config.av.scaler_sharpness = ConfigSlider(default=5,
                                                      limits=(0, 26))
        else:
            config.av.scaler_sharpness = ConfigSlider(default=13,
                                                      limits=(0, 26))
        config.av.scaler_sharpness.addNotifier(setScaler_sharpness)
    else:
        config.av.scaler_sharpness = NoSave(ConfigNothing())

    if BoxInfo.getItem("HasMultichannelPCM"):

        def setMultichannelPCM(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/multichannel_pcm")
            open(BoxInfo.getItem("HasMultichannelPCM"),
                 "w").write(configElement.value and "enable" or "disable")

        config.av.multichannel_pcm = ConfigYesNo(default=False)
        config.av.multichannel_pcm.addNotifier(setMultichannelPCM)

    if BoxInfo.getItem("HasAutoVolume"):

        def setAutoVolume(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/avl")
            open("/proc/stb/audio/avl", "w").write(configElement.value)

        config.av.autovolume = ConfigSelection(default="none",
                                               choices=[("none", _("off")),
                                                        ("hdmi", _("HDMI")),
                                                        ("spdif", _("SPDIF")),
                                                        ("dac", _("DAC"))])
        config.av.autovolume.addNotifier(setAutoVolume)

    if BoxInfo.getItem("HasAutoVolumeLevel"):

        def setAutoVolumeLevel(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/autovolumelevel")
            open("/proc/stb/audio/autovolumelevel",
                 "w").write(configElement.value and "enabled" or "disabled")

        config.av.autovolumelevel = ConfigYesNo(default=False)
        config.av.autovolumelevel.addNotifier(setAutoVolumeLevel)

    if BoxInfo.getItem("Has3DSurround"):

        def set3DSurround(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/3d_surround")
            open("/proc/stb/audio/3d_surround", "w").write(configElement.value)

        config.av.surround_3d = ConfigSelection(default="none",
                                                choices=[("none", _("off")),
                                                         ("hdmi", _("HDMI")),
                                                         ("spdif", _("SPDIF")),
                                                         ("dac", _("DAC"))])
        config.av.surround_3d.addNotifier(set3DSurround)

    if BoxInfo.getItem("Has3DSpeaker"):

        def set3DSpeaker(configElement):
            print(
                "[AVSwitch] Write to /proc/stb/audio/3d_surround_speaker_position"
            )
            open("/proc/stb/audio/3d_surround_speaker_position",
                 "w").write(configElement.value)

        config.av.speaker_3d = ConfigSelection(default="center",
                                               choices=[("center",
                                                         _("center")),
                                                        ("wide", _("wide")),
                                                        ("extrawide",
                                                         _("extra wide"))])
        config.av.speaker_3d.addNotifier(set3DSpeaker)

    if BoxInfo.getItem("Has3DSurroundSpeaker"):

        def set3DSurroundSpeaker(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/3dsurround")
            open("/proc/stb/audio/3dsurround", "w").write(configElement.value)

        config.av.surround_3d_speaker = ConfigSelection(
            default="disabled",
            choices=[("disabled", _("off")), ("center", _("center")),
                     ("wide", _("wide")), ("extrawide", _("extra wide"))])
        config.av.surround_3d_speaker.addNotifier(set3DSurroundSpeaker)

    if BoxInfo.getItem("Has3DSurroundSoftLimiter"):

        def set3DSurroundSoftLimiter(configElement):
            print("[AVSwitch] Write to /proc/stb/audio/3dsurround_softlimiter")
            open("/proc/stb/audio/3dsurround_softlimiter",
                 "w").write(configElement.value and "enabled" or "disabled")

        config.av.surround_softlimiter_3d = ConfigYesNo(default=False)
        config.av.surround_softlimiter_3d.addNotifier(set3DSurroundSoftLimiter)

    if BoxInfo.getItem("HDMIAudioSource"):

        def setHDMIAudioSource(configElement):
            print("[AVSwitch] Write to /proc/stb/hdmi/audio_source")
            open(BoxInfo.getItem("HDMIAudioSource"),
                 "w").write(configElement.value)

        config.av.hdmi_audio_source = ConfigSelection(default="pcm",
                                                      choices=[
                                                          ("pcm", _("PCM")),
                                                          ("spdif", _("SPDIF"))
                                                      ])
        config.av.hdmi_audio_source.addNotifier(setHDMIAudioSource)

    def setVolumeStepsize(configElement):
        eDVBVolumecontrol.getInstance().setVolumeSteps(int(
            configElement.value))

    config.av.volume_stepsize = ConfigSelectionNumber(1, 10, 1, default=5)
    config.av.volume_stepsize.addNotifier(setVolumeStepsize)
Example #13
0
config.plugins.Webinterface.autowritetimer = ConfigYesNo(default=False)
config.plugins.Webinterface.loadmovielength = ConfigYesNo(default=True)
config.plugins.Webinterface.version = ConfigText(__version__) # used to make the versioninfo accessible enigma2-wide, not confgurable in GUI.

config.plugins.Webinterface.http = ConfigSubsection()
config.plugins.Webinterface.http.enabled = ConfigYesNo(default=True)
config.plugins.Webinterface.http.port = ConfigInteger(default = 80, limits=(1, 65535) )
config.plugins.Webinterface.http.auth = ConfigYesNo(default=True)

config.plugins.Webinterface.https = ConfigSubsection()
config.plugins.Webinterface.https.enabled = ConfigYesNo(default=True)
config.plugins.Webinterface.https.port = ConfigInteger(default = 443, limits=(1, 65535) )
config.plugins.Webinterface.https.auth = ConfigYesNo(default=True)

config.plugins.Webinterface.streamauth = ConfigYesNo(default=False)
config.plugins.Webinterface.localauth = ConfigOnOff(default=False)

config.plugins.Webinterface.anti_hijack = ConfigOnOff(default=True)
config.plugins.Webinterface.extended_security = ConfigOnOff(default=True)

global running_defered, waiting_shutdown, toplevel

running_defered = []
waiting_shutdown = 0
toplevel = None
server.VERSION = "Enigma2 WebInterface Server $Revision$".replace("$Revi", "").replace("sion: ", "").replace("$", "")

KEY_FILE = resolveFilename(SCOPE_CONFIG, "key.pem")
CERT_FILE = resolveFilename(SCOPE_CONFIG, "cert.pem")

#===============================================================================
Example #14
0
#!/usr/bin/python
# -*- coding: utf-8 -*-

from Components.config import config, ConfigSubsection, ConfigOnOff, ConfigNumber, ConfigSelection, ConfigYesNo, ConfigText, ConfigSelectionNumber
from Components.Language import language
from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_LANGUAGE
from os import environ as os_environ
import gettext

#######################################################
# Initialize Configuration
config.plugins.seriesplugin = ConfigSubsection()

config.plugins.seriesplugin.enabled = ConfigOnOff(default=False)

config.plugins.seriesplugin.epgimport = ConfigYesNo(default=False)
config.plugins.seriesplugin.xmltvimport = ConfigYesNo(default=False)

config.plugins.seriesplugin.menu_info = ConfigYesNo(default=True)
config.plugins.seriesplugin.menu_extensions = ConfigYesNo(default=False)
config.plugins.seriesplugin.menu_epg = ConfigYesNo(default=False)
config.plugins.seriesplugin.menu_channel = ConfigYesNo(default=True)
config.plugins.seriesplugin.menu_movie_info = ConfigYesNo(default=True)
config.plugins.seriesplugin.menu_movie_rename = ConfigYesNo(default=True)

config.plugins.seriesplugin.identifier_elapsed = ConfigText(default="",
                                                            fixed_size=False)
config.plugins.seriesplugin.identifier_today = ConfigText(default="",
                                                          fixed_size=False)
config.plugins.seriesplugin.identifier_future = ConfigText(default="",
                                                           fixed_size=False)
Example #15
0
    def fillList(self, arg=None):
        streams = []
        conflist = []
        selectedidx = 0

        # self["key_blue"].setBoolean(False)

        subtitlelist = self.getSubtitleList()
        self.nummplugin = None

        #### modify this section for add audio functions
        if self.settings.menupage.getValue() == PAGE_AUDIO:
            self.setTitle(_("Select audio track"))
            self["key_yellow"].setBoolean(True)
            self["key_green"].setBoolean(True)
            self["key_red"].setBoolean(True)
            service = self.session.nav.getCurrentService()
            self.audioTracks = audio = service and service.audioTracks()
            n = audio and audio.getNumberOfTracks() or 0

            if SystemInfo["CanDownmixAC3"]:
                self.settings.downmix_ac3 = ConfigOnOff(
                    default=config.av.downmix_ac3.getValue())
                self.settings.downmix_ac3.addNotifier(self.changeAC3Downmix,
                                                      initial_call=False)
                conflist.append(
                    getConfigListEntry(_("AC3 downmix"),
                                       self.settings.downmix_ac3))

            if SystemInfo["CanDownmixDTS"]:
                self.settings.downmix_dts = ConfigOnOff(
                    default=config.av.downmix_dts.value)
                self.settings.downmix_dts.addNotifier(self.changeDTSDownmix,
                                                      initial_call=False)
                conflist.append(
                    getConfigListEntry(_("DTS downmix"),
                                       self.settings.downmix_dts, None))

            if SystemInfo["CanDownmixAAC"]:
                self.settings.downmix_aac = ConfigOnOff(
                    default=config.av.downmix_aac.getValue())
                self.settings.downmix_aac.addNotifier(self.changeAACDownmix,
                                                      initial_call=False)
                conflist.append(
                    getConfigListEntry(_("AAC downmix"),
                                       self.settings.downmix_aac))

            if SystemInfo["CanAACTranscode"]:
                choice_list = [("off", _("off")), ("ac3", _("AC3")),
                               ("dts", _("DTS"))]
                self.settings.transcodeaac = ConfigSelection(
                    choices=choice_list, default="off")
                self.settings.transcodeaac.addNotifier(self.setAACTranscode,
                                                       initial_call=False)
                conflist.append(
                    getConfigListEntry(_("AAC transcoding"),
                                       self.settings.transcodeaac, None))

            if SystemInfo["CanPcmMultichannel"]:
                self.settings.pcm_multichannel = ConfigOnOff(
                    default=config.av.pcm_multichannel.getValue())
                self.settings.pcm_multichannel.addNotifier(
                    self.changePCMMultichannel, initial_call=False)
                conflist.append(
                    getConfigListEntry(_("PCM Multichannel"),
                                       self.settings.pcm_multichannel, None))

            if n > 0:
                self.audioChannel = service.audioChannel()
                if self.audioChannel:
                    choicelist = [("0", _("left")), ("1", _("stereo")),
                                  ("2", _("right"))]
                    self.settings.channelmode = ConfigSelection(
                        choices=choicelist,
                        default=str(self.audioChannel.getCurrentChannel()))
                    self.settings.channelmode.addNotifier(self.changeMode,
                                                          initial_call=False)
                    conflist.append(
                        getConfigListEntry(_("Audio Channel"),
                                           self.settings.channelmode))
                else:
                    conflist.append(getConfigListEntry("", ConfigNothing()))
                    # self["key_green"].setBoolean(False)
                selectedAudio = self.audioTracks.getCurrentTrack()
                conta = 0

                for x in range(n):

                    number = str(conta + 1)
                    i = audio.getTrackInfo(x)

                    languages = i.getLanguage().split('/')
                    description = i.getDescription() or ""
                    pondebug("AUDIO " + str(conta) + " - " + str(languages) +
                             " - " + str(description))
                    selected = ""
                    language = ""

                    if selectedAudio == x:
                        selected = "X"
                        selectedidx = x

                    cnt = 0
                    for lang in languages:
                        if cnt:
                            language += ' / '
                        if lang.lower() == "und":
                            language += _("Language") + " " + number + ""
                        elif lang.lower() == "qaa":
                            language += _("Original track audio") + ""
                        elif LanguageCodes.has_key(lang):
                            templan = str(LanguageCodes[lang][0])
                            if templan == None or templan == "":
                                language += _(
                                    "Language") + " " + number + " (" + str(
                                        lang) + ")"
                            else:
                                language += _(templan)
                        else:

                            if lang == None or lang == "":
                                language += _(
                                    "Language") + " [" + number + "] " + str(
                                        lang) + ""
                            else:
                                language += _(
                                    "Language") + " [" + number + "] " + str(
                                        lang) + ""

                        cnt += 1
                    if language != "---":
                        try:
                            streams.append((x, "", number, language,
                                            description, selected))
                            conta += 1
                        except:
                            pass

            else:
                streams = []
                conflist.append(getConfigListEntry("", ConfigNothing()))
                # self["key_green"].setBoolean(False)

            #add by mpiero
            try:
                self["key_info"].setText(_("To subtitle selection"))
            except:
                pass

            if subtitlelist:
                # self["key_yellow"].setBoolean(True)
                # conflist.append(getConfigListEntry(_("To subtitle selection"), self.settings.menupage))
                pass
            else:
                # self["key_yellow"].setBoolean(False)
                conflist.append(getConfigListEntry("", ConfigNothing()))

            if SystemInfo["Can3DSurround"]:
                surround_choicelist = [("none", _("off")), ("hdmi", _("HDMI")),
                                       ("spdif", _("SPDIF")),
                                       ("dac", _("DAC"))]
                self.settings.surround_3d = ConfigSelection(
                    choices=surround_choicelist,
                    default=config.av.surround_3d.getValue())
                self.settings.surround_3d.addNotifier(self.change3DSurround,
                                                      initial_call=False)
                conflist.append(
                    getConfigListEntry(_("3D Surround"),
                                       self.settings.surround_3d))

            from Components.PluginComponent import plugins
            from Plugins.Plugin import PluginDescriptor

            if hasattr(self.infobar, "runPlugin"):

                class PluginCaller:
                    def __init__(self, fnc, *args):
                        self.fnc = fnc
                        self.args = args

                    def __call__(self, *args, **kwargs):
                        self.fnc(*self.args)

                Plugins = [(p.name, PluginCaller(self.infobar.runPlugin, p))
                           for p in plugins.getPlugins(
                               where=PluginDescriptor.WHERE_AUDIOMENU)]

                if len(Plugins):
                    #add by mpiero
                    # self["key_blue"].setBoolean(True)
                    conflist.append(
                        getConfigListEntry(Plugins[0][0], ConfigNothing()))
                    self.plugincallfunc = Plugins[0][1]
                    self.nummplugin = len(conflist) - 1

                if len(Plugins) > 1:
                    print "plugin(s) installed but not displayed in the dialog box:", Plugins[
                        1:]

        #### modify this section for add subtitle functions
        elif self.settings.menupage.getValue() == PAGE_SUBTITLES:

            self.setTitle(_("Subtitle selection"))
            # conflist.append(getConfigListEntry("----", ConfigNothing()))
            # conflist.append(getConfigListEntry("----", ConfigNothing()))
            self["key_yellow"].setBoolean(False)
            self["key_green"].setBoolean(False)
            self["key_red"].setBoolean(False)
            selected = "X"
            for x in subtitlelist:
                if self.selectedSubtitle and x[:4] == self.selectedSubtitle[:4]:
                    selected = ""

            streams.append(("Ninguno", "", "1", "(" + _("Deactivate") + ")",
                            "" + _("No subtitles"), selected))
            idx = 1
            selectedidx = 0
            for x in subtitlelist:
                pondebug("SUBTITLES " + str(idx) + " - " + str(x))
                number = str(x[1])
                description = "?"
                language = ""
                selected = ""

                if self.selectedSubtitle and x[:4] == self.selectedSubtitle[:4]:
                    selected = "X"
                    selectedidx = idx

                try:
                    if x[4].lower() == "und":
                        language += _("Language") + " " + str(idx + 1) + ""
                    elif x[4].lower() == "qaa":
                        language += _("Original track audio") + ""
                    elif LanguageCodes.has_key(x[4]):
                        language = _(LanguageCodes[x[4]][0])
                    else:
                        language = _("Language") + " " + str(idx +
                                                             1) + " (" + str(
                                                                 x[4]) + ")"
                except:
                    language = ""

                if x[0] == 0:
                    description = _("Digital Subtitle") + "(DVB)"
                    number = "%x" % (x[1])

                elif x[0] == 1:
                    description = _("Teletext Subtitle") + "(TXT)"
                    number = "%x%02x" % (x[3] and x[3] or 8, x[2])

                elif x[0] == 2:
                    types = (_("unknown"), "embedded", _("File") + " " + "SSA",
                             _("File") + " " + "ASS", _("File") + " " + "SRT",
                             _("File") + " " + "VOB", _("File") + " " + "PGS")
                    try:
                        description = types[x[2]]
                    except:
                        description = _("unknown") + ": %s" % x[2]
                    number = str(int(number) + 1)
                if language == None or language == "":
                    pass
                else:
                    streams.append(
                        (x, "", str(idx + 1), language, description, selected))
                    idx += 1

            # conflist.append(getConfigListEntry(_("To audio selection"), self.settings.menupage))
            try:
                self["key_info"].setText(_("To audio selection"))
            except:
                pass
            if self.infobar.selected_subtitle and self.infobar.selected_subtitle != (
                    0, 0, 0, 0) and not ".DVDPlayer'>" in ` self.infobar `:
                self["key_red"].setBoolean(True)
                conflist.append(
                    getConfigListEntry(_("Subtitle Quickmenu"),
                                       ConfigNothing()))
            # else:
            # conflist.append(getConfigListEntry("----", ConfigNothing()))

        self["config"].list = conflist
        self["config"].l.setList(conflist)

        self["streams"].list = streams
        self["streams"].setIndex(selectedidx)
Example #16
0
    def fillList(self, preselected_idx=None):
        streams = []
        conflist = []
        playing_idx = None

        if self.settings.menupage.getValue() == PAGE_AUDIO:
            self.setTitle(_("Select audio track"))
            service = self.session.nav.getCurrentService()
            self.audioTracks = audio = service and service.audioTracks()
            n = audio and audio.getNumberOfTracks() or 0
            if SystemInfo["CanDownmixAC3"]:
                self.settings.downmix = ConfigOnOff(
                    default=config.av.downmix_ac3.value)
                self.settings.downmix.addNotifier(self.changeAC3Downmix,
                                                  initial_call=False)
                conflist.append(
                    getConfigListEntry(_("AC3 downmix"),
                                       self.settings.downmix))
                self["key_red"].setBoolean(True)

            if n > 0:
                self.audioChannel = service.audioChannel()
                if self.audioChannel:
                    choicelist = [("0", _("left")), ("1", _("stereo")),
                                  ("2", _("right"))]
                    self.settings.channelmode = ConfigSelection(
                        choices=choicelist,
                        default=str(self.audioChannel.getCurrentChannel()))
                    self.settings.channelmode.addNotifier(self.changeMode,
                                                          initial_call=False)
                    conflist.append(
                        getConfigListEntry(_("Channel"),
                                           self.settings.channelmode))
                    self["key_green"].setBoolean(True)
                else:
                    conflist.append(('', ))
                    self["key_green"].setBoolean(False)

                playing_idx = self.audioTracks.getCurrentTrack()
                for idx in range(n):
                    s_number = str(idx + 1)
                    trackinfo = audio.getTrackInfo(idx)
                    languages = trackinfo.getLanguage().split('/')
                    s_codec = AUDIO_FORMATS[trackinfo.getType()][1]
                    s_description = trackinfo.getDescription() or ""
                    s_language = ""
                    selected = idx == playing_idx

                    if selected:
                        playing_idx = idx

                    cnt = 0
                    for lang in languages:
                        if cnt:
                            s_language += ' / '
                        if LanguageCodes.has_key(lang):
                            s_language += _(LanguageCodes[lang][0])
                        elif lang == "und":
                            _("<unknown>")
                        else:
                            s_language += lang
                        cnt += 1

                    streams.append(
                        (SelectionTrackinfoEntry(idx, trackinfo), s_number,
                         s_language, s_codec, s_description,
                         selected and selectionpng or None))

            else:
                streams = []
                conflist.append(('', ))
                self["key_green"].setBoolean(False)

        elif self.settings.menupage.getValue() == PAGE_SUBTITLES:
            self.setTitle(_("Subtitle selection"))
            conflist.append(('', ))
            conflist.append(('', ))
            self["key_red"].setBoolean(False)
            self["key_green"].setBoolean(False)

            if self.infobar.subtitles_enabled:
                playing_idx = self.infobar.selected_subtitle
            else:
                playing_idx = None

            subs = self.infobar.getCurrentServiceSubtitle()
            n = subs and subs.getNumberOfSubtitleTracks() or 0

            for idx in range(n):
                trackinfo = subs.getSubtitleTrackInfo(idx)
                s_number = str(idx + 1)
                s_codec = "?"
                s_language = _("<unknown>")
                flags = []
                selected = idx == playing_idx

                if selected:
                    playing_idx = idx

                lang = trackinfo.getLanguage()
                if lang != "und":
                    if LanguageCodes.has_key(lang):
                        s_language = _(LanguageCodes[lang][0])
                    else:
                        s_language = lang

                if trackinfo.getType() == iSt.GST:
                    s_codec = GST_SUB_FORMATS[trackinfo.getGstSubtype()][1]
                else:
                    s_codec = SUB_FORMATS[trackinfo.getType()][1]

                if trackinfo.getType() in [iSt.GST, iSt.DVD]:
                    if trackinfo.isDefault():
                        flags.append(_("Default"))
                    if trackinfo.isForced():
                        flags.append(_("Forced"))
                    if trackinfo.getType(
                    ) == iSt.DVD or trackinfo.getGstSubtype() in [
                            iGSt.stPGS, iGSt.stVOB
                    ]:
                        if trackinfo.getFilter(
                        ) & iSubtitleFilterType_ENUMS.SUB_FILTER_SHOW_FORCED_ONLY:
                            flags.append(_("forced only"))
                        if trackinfo.getFilter(
                        ) & iSubtitleFilterType_ENUMS.SUB_FILTER_SHOW_ALL:
                            flags.append(_("show all"))
                if trackinfo.isSaved():
                    flags.append(_("Saved"))
                s_flags = (", ").join(flags)

                if s_codec == "TTX":
                    s_codec += " %x%x" % (trackinfo.getMagazineNumber(),
                                          trackinfo.getPageNumber())

                stream = (SelectionTrackinfoEntry(idx, trackinfo), s_number,
                          s_language, s_codec, s_flags,
                          selected and selectionpng or None)
                streams.append(stream)

        conflist.append(getConfigListEntry(_("Menu"), self.settings.menupage))

        if hasattr(self.infobar, "runPlugin"):

            class PluginCaller:
                def __init__(self, fnc, *args):
                    self.fnc = fnc
                    self.args = args

                def __call__(self, *args, **kwargs):
                    self.fnc(*self.args)

            audioPlugins = [(p.name, PluginCaller(self.infobar.runPlugin, p))
                            for p in plugins.getPlugins(
                                where=PluginDescriptor.WHERE_AUDIOMENU)]
            if len(audioPlugins) > 0:
                self["key_blue"].setBoolean(True)
                text, fnc = audioPlugins[0]
                conflist.append(getConfigListEntry(text, ConfigNothing()))
                self.plugincallerdict[text] = fnc
            if len(audioPlugins) > 1:
                self["key_menu"].setBoolean(True)
                if len(audioPlugins) == 2:
                    text, fnc = audioPlugins[1]
                    self.plugincallerdict[text] = fnc
                    conflist.append(getConfigListEntry(text, ConfigNothing()))
                else:
                    self._extendedAudioPlugins = audioPlugins[1:]
                    text, fnc = _(
                        "More ..."), self.showExtendedAudioPluginChoice
                    audioPlugins.append([text, fnc])
                    conflist.append(getConfigListEntry(text, ConfigNothing()))
                    self.plugincallerdict[text] = fnc
                    for text, fnc in audioPlugins[1:]:
                        self.plugincallerdict[text] = fnc

        self["config"].list = conflist
        self["config"].l.setList(conflist)

        self["streams"].list = streams
        if isinstance(preselected_idx, int):
            self["streams"].setIndex(preselected_idx)
        elif isinstance(playing_idx, int):
            self["streams"].setIndex(playing_idx)
        self.setToggleSubsFilterKey()
Example #17
0
# Initialize Configuration
config.plugins.simpleRSS = ConfigSubsection()
simpleRSS = config.plugins.simpleRSS
simpleRSS.update_notification = ConfigSelection(
	choices = [
		("notification", _("Notification")),
		("preview", _("Preview")),
		("ticker", _("Ticker")),
		("none", _("none"))
	],
	default = "preview"
)
simpleRSS.interval = ConfigNumber(default=15)
simpleRSS.feedcount = ConfigNumber(default=0)
simpleRSS.autostart = ConfigOnOff(default=False)
simpleRSS.keep_running = ConfigOnOff(default=True)
simpleRSS.feed = ConfigSubList()
i = 0
while i < simpleRSS.feedcount.value:
	s = ConfigSubsection()
	s.uri = ConfigText(default="http://", fixed_size=False)
	s.autoupdate = ConfigOnOff(default=True)
	simpleRSS.feed.append(s)
	i += 1
	del s
simpleRSS.enable_google_reader = ConfigYesNo(default=False)
simpleRSS.google_username = ConfigText(default="", fixed_size=False)
simpleRSS.google_password = ConfigPassword(default="")

del simpleRSS, i
Example #18
0
    "16_9_always": _("16:9 always"),
    "16_10_letterbox": _("16:10 Letterbox"),
    "16_10_panscan": _("16:10 PanScan"),
    "16_9_letterbox": _("16:9 Letterbox")
}

PACKAGE_PATH = os.path.dirname(str((globals())["__file__"]))
KEYMAPPINGS = {
    'bouquet': os.path.join(PACKAGE_PATH, 'keymap-bouquet.xml'),
    'help': os.path.join(PACKAGE_PATH, 'keymap-help.xml'),
    'radio': os.path.join(PACKAGE_PATH, 'keymap-radio.xml'),
    'video': os.path.join(PACKAGE_PATH, 'keymap-video.xml')
}

config.plugins.AspectRatioSwitch = ConfigSubsection()
config.plugins.AspectRatioSwitch.enabled = ConfigOnOff(default=False)
config.plugins.AspectRatioSwitch.keymap = ConfigSelection(
    {
        'bouquet': _('Bouquet +/- long'),
        'help': _('Help key long'),
        'radio': _('Radio key long'),
        'video': _('PVR key long')
    },
    default='bouquet')
config.plugins.AspectRatioSwitch.autostart_ratio_enabled = ConfigOnOff(
    default=False)
config.plugins.AspectRatioSwitch.autostart_ratio = ConfigSelection(choices=[
    ("0", _("4:3 Letterbox")), ("1", _("4:3 PanScan")), ("2", _("16:9")),
    ("3", _("16:9 always")), ("4", _("16:10 Letterbox")),
    ("5", _("16:10 PanScan")), ("6", _("16:9 Letterbox"))
],
Example #19
0
from Components.Label import Label
from Components.Sources.StaticText import StaticText
from Components.ActionMap import ActionMap
from Components.ProgressBar import ProgressBar
from Components.config import config, getConfigListEntry, ConfigSubsection
from Components.ConfigList import ConfigListScreen
from Components.config import ConfigOnOff
from Tools.Directories import resolveFilename, SCOPE_PLUGIN
from Tools.Transponder import ConvertToHumanReadable
from enigma import eListboxPythonMultiContent, eListbox, gFont, eTimer, getDesktop, iServiceInformation
#from bitratecalc import eBitrateCalculator
from os import listdir, popen, error as os_error
import os

config.plugins.MerlinInfo = ConfigSubsection()
config.plugins.MerlinInfo.Hotkey = ConfigOnOff(default=True)
config.plugins.MerlinInfo.ExMenu = ConfigOnOff(default=True)

mysession = None
baseHelpableScreen__init__ = None

# Thanks to Dr.Best for his help for Hotkey stuff...


def autostart(reason, **kwargs):
    global mysession, baseHelpableScreen__init__
    mysession = kwargs["session"]
    if baseHelpableScreen__init__ is None:
        baseHelpableScreen__init__ = HelpableScreen.__init__
    HelpableScreen.__init__ = HelpableScreen__init__
    config.plugins.MerlinInfo.Hotkey.addNotifier(hotkeyChanged,
Example #20
0
from skin import componentSizes, TemplatedListFonts


def getScale():
    return AVSwitch().getFramebufferScale()


config.pic = ConfigSubsection()
config.pic.framesize = ConfigInteger(default=30, limits=(0, 99))
config.pic.slidetime = ConfigInteger(default=10, limits=(5, 60))
config.pic.resize = ConfigSelection(default="2",
                                    choices=[("0", _("simple")),
                                             ("1", _("better")),
                                             ("2", _("fast JPEG"))])
config.pic.resize.value = 2  # 2 = fast JPEG (non JPEG fallback to 1)
config.pic.cache = ConfigOnOff(default=True)
config.pic.lastDir = ConfigText(default=resolveFilename(SCOPE_MEDIA))
config.pic.infoline = ConfigOnOff(default=True)
config.pic.loop = ConfigOnOff(default=True)
config.pic.bgcolor = ConfigSelection(default="#000000",
                                     choices=[("#ffffff", _("white")),
                                              ("#000000", _("black")),
                                              ("#18188b", _("blue")),
                                              ("#9f1313", _("red")),
                                              ("#a08500", _("yellow")),
                                              ("#1f771f", _("green"))])
config.pic.textcolor = ConfigSelection(default="#38FF48",
                                       choices=[("#ffffff", _("white")),
                                                ("#000000", _("black")),
                                                ("#18188b", _("blue")),
                                                ("#9f1313", _("red")),
Example #21
0
	def fillList(self, arg=None):
		streams = []
		conflist = []
		selectedidx = 0

		self["key_red"].setBoolean(False)
		self["key_green"].setBoolean(False)
		self["key_yellow"].setBoolean(False)
		self["key_blue"].setBoolean(False)

		service = self.session.nav.getCurrentService()
		self.audioTracks = audio = service and service.audioTracks()
		n = audio and audio.getNumberOfTracks() or 0

		subtitlelist = self.getSubtitleList()

		if self.settings.menupage.value == PAGE_AUDIO:
			self.setTitle(_("Select audio track"))
			service = self.session.nav.getCurrentService()
			self.audioTracks = audio = service and service.audioTracks()
			n = audio and audio.getNumberOfTracks() or 0

			if SystemInfo["CanDownmixAC3"]:
				if getBoxType() in ('dm900', 'dm920', 'dm7080', 'dm800'):
					choice_list = [("downmix", _("Downmix")), ("passthrough", _("Passthrough")), ("multichannel", _("convert to multi-channel PCM")), ("hdmi_best", _("use best / controlled by HDMI"))]
					self.settings.downmix_ac3 = ConfigSelection(choices=choice_list, default=config.av.downmix_ac3.value)
				else:
					self.settings.downmix_ac3 = ConfigOnOff(default=config.av.downmix_ac3.value)
				self.settings.downmix_ac3.addNotifier(self.changeAC3Downmix, initial_call=False)
				conflist.append(getConfigListEntry(_("AC3 downmix"), self.settings.downmix_ac3, None))

			if SystemInfo["CanDownmixDTS"]:
				self.settings.downmix_dts = ConfigOnOff(default=config.av.downmix_dts.value)
				self.settings.downmix_dts.addNotifier(self.changeDTSDownmix, initial_call=False)
				conflist.append(getConfigListEntry(_("DTS downmix"), self.settings.downmix_dts, None))

			if SystemInfo["CanDownmixAAC"]:
				if getBoxType() in ('dm900', 'dm920', 'dm7080', 'dm800'):
					choice_list = [("downmix", _("Downmix")), ("passthrough", _("Passthrough")), ("multichannel", _("convert to multi-channel PCM")), ("hdmi_best", _("use best / controlled by HDMI"))]
					self.settings.downmix_aac = ConfigSelection(choices=choice_list, default=config.av.downmix_aac.value)
				elif getBoxType() in ('gbquad4k', 'gbue4k', 'gbx34k'):
					choice_list = [("downmix", _("Downmix")), ("passthrough", _("Passthrough")), ("multichannel", _("convert to multi-channel PCM")), ("force_ac3", _("convert to AC3")), ("force_dts", _("convert to DTS")), ("use_hdmi_cacenter", _("use_hdmi_cacenter")), ("wide", _("wide")), ("extrawide", _("extrawide"))]
					self.settings.downmix_aac = ConfigSelection(choices=choice_list, default=config.av.downmix_aac.value)
				else:
					self.settings.downmix_aac = ConfigOnOff(default=config.av.downmix_aac.value)
				self.settings.downmix_aac.addNotifier(self.changeAACDownmix, initial_call=False)
				conflist.append(getConfigListEntry(_("AAC downmix"), self.settings.downmix_aac, None))

			if SystemInfo["CanDownmixAACPlus"]:
				choice_list = [("downmix", _("Downmix")), ("passthrough", _("Passthrough")), ("multichannel", _("convert to multi-channel PCM")), ("force_ac3", _("convert to AC3")), ("force_dts", _("convert to DTS")), ("use_hdmi_cacenter", _("use_hdmi_cacenter")), ("wide", _("wide")), ("extrawide", _("extrawide"))]
				self.settings.downmix_aacplus = ConfigSelection(choices=choice_list, default=config.av.downmix_aacplus.value)
				self.settings.downmix_aacplus.addNotifier(self.changeAACDownmixPlus, initial_call=False)
				conflist.append(getConfigListEntry(_("AAC Plus downmix"), self.settings.downmix_aacplus, None))

			if SystemInfo["CanAACTranscode"]:
				choice_list = [("off", _("off")), ("ac3", _("AC3")), ("dts", _("DTS"))]
				self.settings.transcodeaac = ConfigSelection(choices=choice_list, default=config.av.transcodeaac.value)
				self.settings.transcodeaac.addNotifier(self.setAACTranscode, initial_call=False)
				conflist.append(getConfigListEntry(_("AAC transcoding"), self.settings.transcodeaac, None))

			if SystemInfo["CanAC3plusTranscode"]:
				if getBoxType() in ('dm900', 'dm920', 'dm7080', 'dm800'):
					choice_list = [("use_hdmi_caps", _("controlled by HDMI")), ("force_ac3", _("convert to AC3")), ("multichannel", _("convert to multi-channel PCM")), ("hdmi_best", _("use best / controlled by HDMI")), ("force_ddp", _("force AC3plus"))]
					self.settings.transcodeac3plus = ConfigSelection(choices=choice_list, default=config.av.transcodeac3plus.value)
				elif getBoxType() in ('gbquad4k', 'gbue4k', 'gbx34k'):
					choice_list = [("downmix", _("Downmix")), ("passthrough", _("Passthrough")), ("force_ac3", _("convert to AC3")), ("multichannel", _("convert to multi-channel PCM")), ("force_dts", _("convert to DTS"))]
					self.settings.transcodeac3plus = ConfigSelection(choices=choice_list, default=config.av.transcodeac3plus.value)
				else:
					choice_list = [("use_hdmi_caps", _("controlled by HDMI")), ("force_ac3", _("convert to AC3"))]
				self.settings.transcodeac3plus = ConfigSelection(choices=choice_list, default=config.av.transcodeac3plus.value)
				self.settings.transcodeac3plus.addNotifier(self.setAC3plusTranscode, initial_call=False)
				conflist.append(getConfigListEntry(_("AC3plus transcoding"), self.settings.transcodeac3plus, None))

			if SystemInfo["HasMultichannelPCM"]:
				if getBoxType() in ('dm900', 'dm920', 'dm7080', 'dm800'):
					choice_list = [("downmix", _("Downmix")), ("passthrough", _("Passthrough")), ("multichannel", _("convert to multi-channel PCM")), ("hdmi_best", _("use best / controlled by HDMI"))]
					self.settings.pcm_multichannel = ConfigSelection(choices=choice_list, default=config.av.pcm_multichannel.value)
				else:
					self.settings.pcm_multichannel = ConfigOnOff(default=config.av.pcm_multichannel.value)
				self.settings.pcm_multichannel.addNotifier(self.changePCMMultichannel, initial_call=False)
				conflist.append(getConfigListEntry(_("PCM Multichannel"), self.settings.pcm_multichannel, None))

			if SystemInfo["CanDTSHD"]:
				if getBoxType() in ("dm7080", "dm820"):
					choice_list = [("use_hdmi_caps", _("controlled by HDMI")), ("force_dts", _("convert to DTS"))]
				else:
					choice_list = [("downmix", _("Downmix")), ("force_dts", _("convert to DTS")), ("use_hdmi_caps", _("controlled by HDMI")), ("multichannel", _("convert to multi-channel PCM")), ("hdmi_best", _("use best / controlled by HDMI"))]
				self.settings.dtshd = ConfigSelection(choices=choice_list, default=config.av.dtshd.value)
				self.settings.dtshd.addNotifier(self.setDTSHD, initial_call=False)
				conflist.append(getConfigListEntry(_("DTS HD downmix"), self.settings.dtshd, None))

			if SystemInfo["CanWMAPRO"]:
				choice_list = [("downmix", _("Downmix")), ("passthrough", _("Passthrough")), ("multichannel", _("convert to multi-channel PCM")), ("hdmi_best", _("use best / controlled by HDMI"))]
				self.settings.wmapro = ConfigSelection(choices=choice_list, default=config.av.wmapro.value)
				self.settings.wmapro.addNotifier(self.setWMAPro, initial_call=False)
				conflist.append(getConfigListEntry(_("WMA Pro downmix"), self.settings.wmapro, None))

			if SystemInfo["CanBTAudio"]:
				choice_list = [("off", _("off")), ("on", _("on"))]
				self.settings.btaudio = ConfigSelection(choices=choice_list, default=config.av.btaudio.value)
				self.settings.btaudio.addNotifier(self.changeBTAudio, initial_call=False)
				conflist.append(getConfigListEntry(_("Enable BT Audio"), self.settings.btaudio, None))

			if n > 0:
				self.audioChannel = service.audioChannel()
				if self.audioChannel:
					choicelist = [("0", _("left")), ("1", _("stereo")), ("2", _("right"))]
					self.settings.channelmode = ConfigSelection(choices=choicelist, default=str(self.audioChannel.getCurrentChannel()))
					self.settings.channelmode.addNotifier(self.changeMode, initial_call=False)
					conflist.append(getConfigListEntry(_("Channel"), self.settings.channelmode, None))
				selectedAudio = self.audioTracks.getCurrentTrack()
				for x in range(n):
					number = str(x + 1)
					i = audio.getTrackInfo(x)
					languages = i.getLanguage().split('/')
					description = i.getDescription() or ""
					selected = ""
					language = ""

					if selectedAudio == x:
						selected = "X"
						selectedidx = x

					cnt = 0
					for lang in languages:
						if cnt:
							language += ' / '
						if lang in LanguageCodes:
							language += _(LanguageCodes[lang][0])
						else:
							language += lang
						cnt += 1

					streams.append((x, "", number, description, language, selected))

			else:
				conflist.append(('',))

			if SystemInfo["Can3DSurround"]:
				choice_list = [("none", _("off")), ("hdmi", _("HDMI")), ("spdif", _("SPDIF")), ("dac", _("DAC"))]
				self.settings.surround_3d = ConfigSelection(choices=choice_list, default=config.av.surround_3d.value)
				self.settings.surround_3d.addNotifier(self.change3DSurround, initial_call=False)
				conflist.append(getConfigListEntry(_("3D Surround"), self.settings.surround_3d, None))

			if SystemInfo["Can3DSpeaker"] and config.av.surround_3d.value != "none":
				choice_list = [("center", _("center")), ("wide", _("wide")), ("extrawide", _("extra wide"))]
				self.settings.surround_3d_speaker = ConfigSelection(choices=choice_list, default=config.av.surround_3d_speaker.value)
				self.settings.surround_3d_speaker.addNotifier(self.change3DSurroundSpeaker, initial_call=False)
				conflist.append(getConfigListEntry(_("3D Surround Speaker Position"), self.settings.surround_3d_speaker, None))

			if SystemInfo["CanAutoVolume"]:
				choice_list = [("none", _("off")), ("hdmi", _("HDMI")), ("spdif", _("SPDIF")), ("dac", _("DAC"))]
				self.settings.autovolume = ConfigSelection(choices=choice_list, default=config.av.autovolume.value)
				self.settings.autovolume.addNotifier(self.changeAutoVolume, initial_call=False)
				conflist.append(getConfigListEntry(_("Auto Volume Level"), self.settings.autovolume, None))

			from Components.PluginComponent import plugins
			from Plugins.Plugin import PluginDescriptor

			if hasattr(self.infobar, "runPlugin"):
				class PluginCaller:
					def __init__(self, fnc, *args):
						self.fnc = fnc
						self.args = args

					def __call__(self, *args, **kwargs):
						self.fnc(*self.args)

				Plugins = [(p.name, PluginCaller(self.infobar.runPlugin, p)) for p in plugins.getPlugins(where=PluginDescriptor.WHERE_AUDIOMENU)]
				if len(Plugins):
					for x in Plugins:
						if x[0] != 'AudioEffect': # always make AudioEffect Blue button.
							conflist.append(getConfigListEntry(x[0], ConfigNothing(), x[1]))

		elif self.settings.menupage.value == PAGE_SUBTITLES:

			self.setTitle(_("Subtitle selection"))

			idx = 0
			if (subtitlelist is not None):
				for x in subtitlelist:
					number = str(x[1])
					description = "?"
					language = ""
					selected = ""

					if self.selectedSubtitle and x[:4] == self.selectedSubtitle[:4]:
						selected = "X"
						selectedidx = idx

					try:
						if x[4] != "und":
							if x[4] in LanguageCodes:
								language = _(LanguageCodes[x[4]][0])
							else:
								language = x[4]
					except:
						language = ""

					if x[0] == 0:
						description = "DVB"
						number = "%x" % (x[1])

					elif x[0] == 1:
						description = "teletext"
						number = "%x%02x" % (x[3] and x[3] or 8, x[2])

					elif x[0] == 2:
						types = ("unknown", "embedded", "SSA file", "ASS file",
								"SRT file", "VOB file", "PGS file")
						try:
							description = types[x[2]]
						except:
							description = _("unknown") + ": %s" % x[2]
						number = str(int(number) + 1)

					streams.append((x, "", number, description, language, selected))
					idx += 1

			if self.infobar.selected_subtitle and self.infobar.selected_subtitle != (0, 0, 0, 0) and not ".DVDPlayer'>" in `self.infobar`:
				conflist.append(getConfigListEntry(_("Subtitle Quickmenu"), ConfigNothing(), None))

		if len(conflist) > 0 and conflist[0][0]:
			self["key_red"].setBoolean(True)
		if len(conflist) > 1 and conflist[1][0]:
			self["key_green"].setBoolean(True)
		if len(conflist) > 2 and conflist[2][0]:
			self["key_yellow"].setBoolean(True)
		if len(conflist) > 3 and conflist[3][0]:
			self["key_blue"].setBoolean(True)

		self["config"].list = conflist
		self["config"].l.setList(conflist)

		self["streams"].list = streams
		self["streams"].setIndex(selectedidx)
Example #22
0
from Components.config import config, ConfigYesNo, ConfigOnOff, ConfigText, ConfigInteger, ConfigSubsection
from Tools.HardwareInfo import HardwareInfo

config.plugins.mediarenderer = ConfigSubsection()
config.plugins.mediarenderer.enabled = ConfigOnOff(default=True)
config.plugins.mediarenderer.name = ConfigText(
    default="%s" % (HardwareInfo().get_device_name()), fixed_size=False)
config.plugins.mediarenderer.uuid = ConfigText(default="", fixed_size=False)
Example #23
0
# -*- coding: utf-8 -*-
from Components.config import config, ConfigSubsection, ConfigOnOff, ConfigDirectory, ConfigNumber, ConfigSelection, ConfigNothing

from MetrixReloadedTranslation import _

# Configuration
config.plugins.MetrixReloaded = ConfigSubsection()
config.plugins.MetrixReloaded.onlineMode = ConfigOnOff(default=True)
config.plugins.MetrixReloaded.checkNewVersionOnStartUp = ConfigOnOff(
    default=True)
config.plugins.MetrixReloaded.autoDownloadNewVersion = ConfigOnOff(
    default=True)
config.plugins.MetrixReloaded.debug = ConfigOnOff(default=False)
config.plugins.MetrixReloaded.logDirectory = ConfigDirectory(
    default='/mnt/hdd/MetrixReloaded/log/')
config.plugins.MetrixReloaded.logAutoRemove = ConfigNumber(default=10)
config.plugins.MetrixReloaded.showScreenNames = ConfigOnOff(default=False)
config.plugins.MetrixReloaded.showMenuEntryNames = ConfigOnOff(default=False)
config.plugins.MetrixReloaded.posterDownload = ConfigOnOff(default=True)
config.plugins.MetrixReloaded.posterDirectory = ConfigDirectory(
    default='/mnt/hdd/MetrixReloaded/poster/')
config.plugins.MetrixReloaded.posterAutoRemove = ConfigNumber(default=30)
config.plugins.MetrixReloaded.updated = ConfigOnOff(default=True)
config.plugins.MetrixReloaded.openConverter = ConfigNothing()


def getPosterDircetory():
    return config.plugins.MetrixReloaded.posterDirectory.value


def getPosterAutoRemove():
Example #24
0
# -*- coding: utf-8 -*-
# Config
from Components.config import config, ConfigSubsection, ConfigOnOff, \
 ConfigNumber, ConfigSelection, ConfigSelectionNumber, ConfigYesNo, ConfigText

config.plugins.autotimer = ConfigSubsection()
config.plugins.autotimer.autopoll = ConfigOnOff(default=False)
config.plugins.autotimer.delay = ConfigNumber(default=3)
config.plugins.autotimer.editdelay = ConfigNumber(default=3)
config.plugins.autotimer.interval = ConfigNumber(default=3)
config.plugins.autotimer.timeout = ConfigNumber(default=5)
config.plugins.autotimer.refresh = ConfigSelection(choices=[
    ("none", _("None")),
    ("auto", _("Only AutoTimers created during this session")),
    ("all", _("All non-repeating timers"))
],
                                                   default="none")
config.plugins.autotimer.try_guessing = ConfigOnOff(default=True)
config.plugins.autotimer.editor = ConfigSelection(choices=[
    ("plain", _("Classic")), ("wizard", _("Wizard"))
],
                                                  default="wizard")
config.plugins.autotimer.addsimilar_on_conflict = ConfigOnOff(default=False)
config.plugins.autotimer.add_autotimer_to_tags = ConfigYesNo(default=False)
config.plugins.autotimer.add_name_to_tags = ConfigYesNo(default=False)
config.plugins.autotimer.disabled_on_conflict = ConfigOnOff(default=False)
config.plugins.autotimer.show_in_extensionsmenu = ConfigYesNo(default=False)
config.plugins.autotimer.fastscan = ConfigYesNo(default=False)
config.plugins.autotimer.notifconflict = ConfigYesNo(default=True)
config.plugins.autotimer.notifsimilar = ConfigYesNo(default=True)
config.plugins.autotimer.maxdaysinfuture = ConfigNumber(default=0)
Example #25
0
from enigma import eHbbtv, eServiceReference, ePoint, eSize, eRect, getDesktop, eTimer, eDVBVolumecontrol, cvar
from Plugins.Plugin import PluginDescriptor
from Screens.Screen import Screen
from Screens.ChoiceBox import ChoiceBox
from Screens.MessageBox import MessageBox
from Screens.LocationBox import MovieLocationBox
from Components.config import config, ConfigSubsection, ConfigOnOff, ConfigSelection
from Components.PluginComponent import plugins
from Components.UsageConfig import preferredPath
from Components.VideoWindow import VideoWindow

from Plugins.Extensions.Browser.Browser import Browser
from Plugins.Extensions.Browser.Downloads import downloadManager, DownloadJob

config.plugins.hbbtv = ConfigSubsection()
config.plugins.hbbtv.enabled = ConfigOnOff(default=True)
config.plugins.hbbtv.testsuite = ConfigSelection([("mainmenu", _("Menu")), ("extensions", _("Extensions")), ("plugins", _("Plugin Browser")), ("disabled", _("Disabled"))], default="disabled")
config.plugins.hbbtv.text = ConfigOnOff(default=True)

from datetime import datetime
from urlparse import urlparse

class HbbTVVideoWindow(Screen):
	skin = """
		<screen name="HbbTVVideoWindow" flags="wfNoBorder" zPosition="-1" position="0,0" size="1280,720" title="HbbTVVideoWindow" backgroundColor="transparent" transparent="1" >
			<widget name="video" position="0,0" zPosition="0" size="0,0" backgroundColor="transparent" />
		</screen>
	"""

	def __init__(self, session, point=ePoint(0, 0), size=eSize(0, 0)):
		Screen.__init__(self, session)
Example #26
0
    def fillList(self, arg=None):
        streams = []
        conflist = []
        selectedidx = 0

        self["key_red"].setBoolean(False)
        self["key_green"].setBoolean(False)
        self["key_yellow"].setBoolean(False)
        self["key_blue"].setBoolean(False)

        service = self.session.nav.getCurrentService()
        self.audioTracks = audio = service and service.audioTracks()
        n = audio and audio.getNumberOfTracks() or 0

        subtitlelist = self.getSubtitleList()

        if self.settings.menupage.value == PAGE_AUDIO:
            self.setTitle(_("Select audio track"))
            service = self.session.nav.getCurrentService()
            self.audioTracks = audio = service and service.audioTracks()
            n = audio and audio.getNumberOfTracks() or 0
            if SystemInfo["CanDownmixAC3"]:
                self.settings.downmix_ac3 = ConfigOnOff(
                    default=config.av.downmix_ac3.value)
                self.settings.downmix_ac3.addNotifier(self.changeAC3Downmix,
                                                      initial_call=False)
                conflist.append(
                    getConfigListEntry(_("Digital downmix"),
                                       self.settings.downmix_ac3, None))

            if SystemInfo["CanDownmixAAC"]:
                self.settings.downmix_aac = ConfigOnOff(
                    default=config.av.downmix_aac.value)
                self.settings.downmix_aac.addNotifier(self.changeAACDownmix,
                                                      initial_call=False)
                conflist.append(
                    getConfigListEntry(_("AAC downmix"),
                                       self.settings.downmix_aac, None))

            if SystemInfo["CanAACTranscode"]:
                choice_list = [("off", _("off")), ("ac3", _("AC3")),
                               ("dts", _("DTS"))]
                self.settings.transcodeaac = ConfigSelection(
                    choices=choice_list, default="off")
                self.settings.transcodeaac.addNotifier(self.setAACTranscode)
                conflist.append(
                    getConfigListEntry(_("AAC transcoding"),
                                       self.settings.transcodeaac, None))

            if SystemInfo["CanPcmMultichannel"]:
                self.settings.pcm_multichannel = ConfigOnOff(
                    default=config.av.pcm_multichannel.value)
                self.settings.pcm_multichannel.addNotifier(
                    self.changePCMMultichannel, initial_call=False)
                conflist.append(
                    getConfigListEntry(_("PCM Multichannel"),
                                       self.settings.pcm_multichannel, None))

            if n > 0:
                self.audioChannel = service.audioChannel()
                if self.audioChannel:
                    choicelist = [("0", _("left")), ("1", _("stereo")),
                                  ("2", _("right"))]
                    self.settings.channelmode = ConfigSelection(
                        choices=choicelist,
                        default=str(self.audioChannel.getCurrentChannel()))
                    self.settings.channelmode.addNotifier(self.changeMode,
                                                          initial_call=False)
                    conflist.append(
                        getConfigListEntry(_("Channel"),
                                           self.settings.channelmode, None))
                selectedAudio = self.audioTracks.getCurrentTrack()
                for x in range(n):
                    number = str(x + 1)
                    i = audio.getTrackInfo(x)
                    languages = i.getLanguage().split('/')
                    description = i.getDescription() or ""
                    selected = ""
                    language = ""

                    if selectedAudio == x:
                        selected = "X"
                        selectedidx = x

                    cnt = 0
                    for lang in languages:
                        if cnt:
                            language += ' / '
                        if LanguageCodes.has_key(lang):
                            language += _(LanguageCodes[lang][0])
                        else:
                            language += lang
                        cnt += 1

                    streams.append(
                        (x, "", number, description, language, selected))

            else:
                conflist.append(('', ))

            if SystemInfo["Can3DSurround"]:
                choice_list = [("none", _("off")), ("hdmi", _("HDMI")),
                               ("spdif", _("SPDIF")), ("dac", _("DAC"))]
                self.settings.surround_3d = ConfigSelection(
                    choices=choice_list, default=config.av.surround_3d.value)
                self.settings.surround_3d.addNotifier(self.change3DSurround,
                                                      initial_call=False)
                conflist.append(
                    getConfigListEntry(_("3D Surround"),
                                       self.settings.surround_3d, None))

            if SystemInfo[
                    "Can3DSpeaker"] and config.av.surround_3d.value != "none":
                choice_list = [("center", _("center")), ("wide", _("wide")),
                               ("extrawide", _("extra wide"))]
                self.settings.surround_3d_speaker = ConfigSelection(
                    choices=choice_list,
                    default=config.av.surround_3d_speaker.value)
                self.settings.surround_3d_speaker.addNotifier(
                    self.change3DSurroundSpeaker)
                conflist.append(
                    getConfigListEntry(_("3D Surround Speaker Position"),
                                       self.settings.surround_3d_speaker,
                                       None))

            if SystemInfo["CanAutoVolume"]:
                choice_list = [("none", _("off")), ("hdmi", _("HDMI")),
                               ("spdif", _("SPDIF")), ("dac", _("DAC"))]
                self.settings.autovolume = ConfigSelection(
                    choices=choice_list, default=config.av.autovolume.value)
                self.settings.autovolume.addNotifier(self.changeAutoVolume)
                conflist.append(
                    getConfigListEntry(_("Auto Volume Level"),
                                       self.settings.autovolume, None))


#			if SystemInfo["Canedidchecking"]:
#				choice_list = [("00000000", _("off")), ("00000001", _("on"))]
#				self.settings.bypass_edid_checking = ConfigSelection(choices = choice_list, default = config.av.bypass_edid_checking.value)
#				self.settings.bypass_edid_checking.addNotifier(self.changeEDIDChecking, initial_call = False)
#				conflist.append(getConfigListEntry(_("Bypass HDMI EDID Check"), self.settings.bypass_edid_checking, None))

            from Components.PluginComponent import plugins
            from Plugins.Plugin import PluginDescriptor

            if hasattr(self.infobar, "runPlugin"):

                class PluginCaller:
                    def __init__(self, fnc, *args):
                        self.fnc = fnc
                        self.args = args

                    def __call__(self, *args, **kwargs):
                        self.fnc(*self.args)

                Plugins = [(p.name, PluginCaller(self.infobar.runPlugin, p))
                           for p in plugins.getPlugins(
                               where=PluginDescriptor.WHERE_AUDIOMENU)]
                if len(Plugins):
                    for x in Plugins:
                        if x[0] != 'AudioEffect':  # always make AudioEffect Blue button.
                            conflist.append(
                                getConfigListEntry(x[0], ConfigNothing(),
                                                   x[1]))

        elif self.settings.menupage.value == PAGE_SUBTITLES:

            self.setTitle(_("Subtitle selection"))

            idx = 0

            for x in subtitlelist:
                number = str(x[1])
                description = "?"
                language = ""
                selected = ""

                if self.selectedSubtitle and x[:4] == self.selectedSubtitle[:4]:
                    selected = "X"
                    selectedidx = idx

                try:
                    if x[4] != "und":
                        if LanguageCodes.has_key(x[4]):
                            language = _(LanguageCodes[x[4]][0])
                        else:
                            language = x[4]
                except:
                    language = ""

                if x[0] == 0:
                    description = "DVB"
                    number = "%x" % (x[1])

                elif x[0] == 1:
                    description = "teletext"
                    number = "%x%02x" % (x[3] and x[3] or 8, x[2])

                elif x[0] == 2:
                    types = ("unknown", "embedded", "SSA file", "ASS file",
                             "SRT file", "VOB file", "PGS file")
                    try:
                        description = types[x[2]]
                    except:
                        description = _("unknown") + ": %s" % x[2]
                    number = str(int(number) + 1)

                streams.append(
                    (x, "", number, description, language, selected))
                idx += 1

            if self.infobar.selected_subtitle and self.infobar.selected_subtitle != (
                    0, 0, 0, 0) and not ".DVDPlayer'>" in ` self.infobar `:
                conflist.append(
                    getConfigListEntry(_("Subtitle Quickmenu"),
                                       ConfigNothing(), None))

        if len(conflist) > 0 and conflist[0][0]:
            self["key_red"].setBoolean(True)
        if len(conflist) > 1 and conflist[1][0]:
            self["key_green"].setBoolean(True)
        if len(conflist) > 2 and conflist[2][0]:
            self["key_yellow"].setBoolean(True)
        if len(conflist) > 3 and conflist[3][0]:
            self["key_blue"].setBoolean(True)

        self["config"].list = conflist
        self["config"].l.setList(conflist)

        self["streams"].list = streams
        self["streams"].setIndex(selectedidx)
Example #27
0
    def fillList(self, arg=None):
        streams = []
        conflist = []
        selectedidx = 0

        if self.settings.menupage.getValue() == PAGE_AUDIO:
            self.setTitle(_("Select audio track"))
            service = self.session.nav.getCurrentService()
            self.audioTracks = audio = service and service.audioTracks()
            n = audio and audio.getNumberOfTracks() or 0
            if SystemInfo["CanDownmixAC3"]:
                self.settings.downmix = ConfigOnOff(
                    default=config.av.downmix_ac3.value)
                self.settings.downmix.addNotifier(self.changeAC3Downmix,
                                                  initial_call=False)
                conflist.append(
                    getConfigListEntry(_("AC3 downmix"),
                                       self.settings.downmix))
                self["key_red"].setBoolean(True)

            if n > 0:
                self.audioChannel = service.audioChannel()
                if self.audioChannel:
                    choicelist = [("0", _("left")), ("1", _("stereo")),
                                  ("2", _("right"))]
                    self.settings.channelmode = ConfigSelection(
                        choices=choicelist,
                        default=str(self.audioChannel.getCurrentChannel()))
                    self.settings.channelmode.addNotifier(self.changeMode,
                                                          initial_call=False)
                    conflist.append(
                        getConfigListEntry(_("Channel"),
                                           self.settings.channelmode))
                    self["key_green"].setBoolean(True)
                else:
                    conflist.append(('', ))
                    self["key_green"].setBoolean(False)
                selectedAudio = self.audioTracks.getCurrentTrack()
                for x in range(n):
                    number = str(x)
                    i = audio.getTrackInfo(x)
                    languages = i.getLanguage().split('/')
                    description = i.getDescription() or _("<unknown>")
                    selected = ""
                    language = ""

                    if selectedAudio == x:
                        selected = _("Running")
                        selectedidx = x

                    cnt = 0
                    for lang in languages:
                        if cnt:
                            language += ' / '
                        if LanguageCodes.has_key(lang):
                            language += LanguageCodes[lang][0]
                        elif lang == "und":
                            _("<unknown>")
                        else:
                            language += lang
                        cnt += 1

                    streams.append(
                        (x, "", number, description, language, selected))

            else:
                streams = []
                conflist.append(('', ))
                self["key_green"].setBoolean(False)

        elif self.settings.menupage.getValue() == PAGE_SUBTITLES:
            self.setTitle(_("Subtitle selection"))
            conflist.append(('', ))
            conflist.append(('', ))
            self["key_red"].setBoolean(False)
            self["key_green"].setBoolean(False)

            if self.subtitlesEnabled():
                sel = self.infobar.selected_subtitle
            else:
                sel = None

            idx = 0

            subtitlelist = self.getSubtitleList()

            if len(subtitlelist):
                for x in subtitlelist:
                    number = str(x[1])
                    description = "?"
                    language = _("<unknown>")
                    selected = ""

                    if sel and x == sel:
                        selected = _("Running")
                        selectedidx = idx

                    if x[4] != "und":
                        if LanguageCodes.has_key(x[4]):
                            language = LanguageCodes[x[4]][0]
                        else:
                            language = x[4]

                    if x[0] == 0:
                        description = "DVB"
                        number = "%x" % (x[1])

                    elif x[0] == 1:
                        description = "TTX"
                        number = "%x%02x" % (x[3], x[2])

                    elif x[0] == 2:
                        types = (_("<unknown>"), "UTF-8 text", "SSA", "AAS",
                                 ".SRT file", "VOB", "PGS (unsupported)")
                        description = types[x[2]]

                    streams.append(
                        (x, "", number, description, language, selected))
                    idx += 1

            else:
                streams = []

        conflist.append(getConfigListEntry(_("Menu"), self.settings.menupage))

        from Components.PluginComponent import plugins
        from Plugins.Plugin import PluginDescriptor

        if hasattr(self.infobar, "runPlugin"):

            class PluginCaller:
                def __init__(self, fnc, *args):
                    self.fnc = fnc
                    self.args = args

                def __call__(self, *args, **kwargs):
                    self.fnc(*self.args)

            Plugins = [(p.name, PluginCaller(self.infobar.runPlugin, p))
                       for p in plugins.getPlugins(
                           where=PluginDescriptor.WHERE_AUDIOMENU)]

            if len(Plugins):
                self["key_blue"].setBoolean(True)
                conflist.append(
                    getConfigListEntry(Plugins[0][0], ConfigNothing()))
                self.plugincallfunc = Plugins[0][1]
            if len(Plugins) > 1:
                print "plugin(s) installed but not displayed in the dialog box:", Plugins[
                    1:]

        self["config"].list = conflist
        self["config"].l.setList(conflist)

        self["streams"].list = streams
        self["streams"].setIndex(selectedidx)
Example #28
0
from compat import MessageBox, eConnectCallback
from Screens.MinuteInput import MinuteInput
from Screens.Screen import Screen

from e2_utils import getFps, fps_float, BaseMenuScreen
from enigma import eTimer, getDesktop
from parsers.baseparser import ParseError
from process import LoadError, DecodeError, ParserNotFoundError
from skin import parseColor
from subtitles import SubsChooser, initSubsSettings, SubsScreen, \
    SubsLoader, PARSERS, ALL_LANGUAGES_ENCODINGS, ENCODINGS, \
    warningMessage

config.plugins.subsSupport = ConfigSubsection()
config.plugins.subsSupport.dvb = ConfigSubsection()
config.plugins.subsSupport.dvb.autoSync = ConfigOnOff(default=True)


class SubsSetupDVBPlayer(BaseMenuScreen):
    def __init__(self, session, dvbSettings):
        BaseMenuScreen.__init__(self, session, _("DVB player settings"))
        self.dvbSettings = dvbSettings

    def buildMenu(self):
        self['config'].setList([
            getConfigListEntry(_("Auto sync to current event"),
                               self.dvbSettings.autoSync)
        ])


class SubsSupportDVB(object):
Example #29
0
	def fillList(self, arg=None):
		from Tools.ISO639 import LanguageCodes
		streams = []
		conflist = []
		selectedidx = 0

		self["key_blue"].setBoolean(False)

		subtitlelist = self.getSubtitleList()

		if self.settings.menupage.getValue() == PAGE_AUDIO:
			self.setTitle(_("Select audio track"))
			service = self.session.nav.getCurrentService()
			self.audioTracks = audio = service and service.audioTracks()
			n = audio and audio.getNumberOfTracks() or 0
			if SystemInfo["CanDownmixAC3"]:
				self.settings.downmix = ConfigOnOff(default=config.av.downmix_ac3.value)
				self.settings.downmix.addNotifier(self.changeAC3Downmix, initial_call = False)
				conflist.append(getConfigListEntry(_("Multi channel downmix"), self.settings.downmix))
				self["key_red"].setBoolean(True)

			if n > 0:
				self.audioChannel = service.audioChannel()
				if self.audioChannel:
					choicelist = [("0",_("left")), ("1",_("stereo")), ("2", _("right"))]
					self.settings.channelmode = ConfigSelection(choices = choicelist, default = str(self.audioChannel.getCurrentChannel()))
					self.settings.channelmode.addNotifier(self.changeMode, initial_call = False)
					conflist.append(getConfigListEntry(_("Channel"), self.settings.channelmode))
					self["key_green"].setBoolean(True)
				else:
					conflist.append(('',))
					self["key_green"].setBoolean(False)
				selectedAudio = self.audioTracks.getCurrentTrack()
				for x in range(n):
					number = str(x + 1)
					i = audio.getTrackInfo(x)
					languages = i.getLanguage().split('/')
					description = i.getDescription() or ""
					selected = ""
					language = ""

					if selectedAudio == x:
						selected = "X"
						selectedidx = x

					cnt = 0
					for lang in languages:
						if cnt:
							language += ' / '
						if lang in LanguageCodes:
							language += _(LanguageCodes[lang][0])
						elif lang == "und":
							""
						else:
							language += lang
						cnt += 1

					streams.append((x, "", number, description, language, selected))

			else:
				streams = []
				conflist.append(('',))
				self["key_green"].setBoolean(False)

			if subtitlelist:
				self["key_yellow"].setBoolean(True)
				conflist.append(getConfigListEntry(_("To subtitle selection"), self.settings.menupage))
			else:
				self["key_yellow"].setBoolean(False)
				conflist.append(('',))

			from Components.PluginComponent import plugins
			from Plugins.Plugin import PluginDescriptor

			if hasattr(self.infobar, "runPlugin"):
				class PluginCaller:
					def __init__(self, fnc, *args):
						self.fnc = fnc
						self.args = args
					def __call__(self, *args, **kwargs):
						self.fnc(*self.args)

				self.Plugins = [ (p.name, PluginCaller(self.infobar.runPlugin, p)) for p in plugins.getPlugins(where = PluginDescriptor.WHERE_AUDIOMENU) ]

				if self.Plugins:
					self["key_blue"].setBoolean(True)
					if len(self.Plugins) > 1:
						conflist.append(getConfigListEntry(_("Audio plugins"), ConfigNothing()))
						self.plugincallfunc = [(x[0], x[1]) for x in self.Plugins]
					else:
						conflist.append(getConfigListEntry(self.Plugins[0][0], ConfigNothing()))
						self.plugincallfunc = self.Plugins[0][1]

		elif self.settings.menupage.getValue() == PAGE_SUBTITLES:

			self.setTitle(_("Subtitle selection"))
			conflist.append(('',))
			conflist.append(('',))
			self["key_red"].setBoolean(False)
			self["key_green"].setBoolean(False)

			idx = 0

			for x in subtitlelist:
				number = str(x[1])
				description = "?"
				language = ""
				selected = ""

				if self.selectedSubtitle and x[:4] == self.selectedSubtitle[:4]:
					selected = "X"
					selectedidx = idx

				try:
					if x[4] != "und":
						if x[4] in LanguageCodes:
							language = _(LanguageCodes[x[4]][0])
						else:
							language = x[4]
				except:
					language = ""

				if x[0] is 0:
					description = "DVB"
					number = "%x" % (x[1])

				elif x[0] is 1:
					description = "teletext"
					number = "%x%02x" %(x[3] and x[3] or 8, x[2])

				elif x[0] is 2:
					types = (_("unknown"), _("embedded"), _("SSA file"), _("ASS file"),
							_("SRT file"), _("VOB file"), _("PGS file"))
					try:
						description = types[x[2]]
					except:
						description = _("unknown") + ": %s" % x[2]
					number = str(int(number) + 1)

				streams.append((x, "", number, description, language, selected))
				idx += 1

			conflist.append(getConfigListEntry(_("To audio selection"), self.settings.menupage))

			if self.infobar.selected_subtitle and self.infobar.selected_subtitle != (0,0,0,0)  and not ".DVDPlayer'>" in `self.infobar`:
				self["key_blue"].setBoolean(True)
				conflist.append(getConfigListEntry(_("Subtitle Quickmenu"), ConfigNothing()))

		self["config"].list = conflist
		self["config"].l.setList(conflist)

		self["streams"].list = streams
		self["streams"].setIndex(selectedidx)
Example #30
0
config.plugins.e2m3u2b.autobouquetupdate = ConfigYesNo(default=False)
config.plugins.e2m3u2b.scheduletype = ConfigSelection(
    default='interval', choices=['interval', 'fixed time'])
config.plugins.e2m3u2b.updateinterval = ConfigSelectionNumber(default=6,
                                                              min=2,
                                                              max=48,
                                                              stepwidth=1)
config.plugins.e2m3u2b.schedulefixedtime = ConfigClock(default=0)
config.plugins.e2m3u2b.autobouquetupdateatboot = ConfigYesNo(default=False)
config.plugins.e2m3u2b.iconpath = ConfigSelection(
    default=e2m3u2bouquet.PICONSPATH, choices=getMounted())
config.plugins.e2m3u2b.last_update = ConfigText()
config.plugins.e2m3u2b.extensions = ConfigYesNo(default=False)
config.plugins.e2m3u2b.mainmenu = ConfigYesNo(default=False)
config.plugins.e2m3u2b.do_epgimport = ConfigYesNo(default=False)
config.plugins.e2m3u2b.debug = ConfigOnOff(default=False)
config.plugins.e2m3u2b.cfglevel = ConfigText(default='')


class AutoStartTimer:
    def __init__(self, session):
        self.session = session
        self.timer = eTimer()
        self.timer.callback.append(self.on_timer)
        self.update()

    def get_wake_time(self):
        print >> log, '[e2m3u2b] [{}] AutoStartTimer -> get_wake_time'.format(
            time.strftime('%c', time.localtime(int(time.time()))))
        if config.plugins.e2m3u2b.autobouquetupdate.value:
            if config.plugins.e2m3u2b.scheduletype.value == 'interval':