Пример #1
0
	def __init__(self, args = None):
		iNetwork = resourcemanager.getResource("iNetwork")
		self.adapters = iNetwork.getAdapterList()

		self.bool_options = ("inotify", "enable_tivo", "strict_dlna")
		self.hostname = HardwareInfo().get_device_name()
		if len(config.plugins.minidlna.media_dirs.value) == 0 and config.plugins.minidlna.share_videodirs.value:
			config.plugins.minidlna.media_dirs.value = config.movielist.videodirs.value

		self._config = {
			"port" : config.plugins.minidlna.port,
			"network_interface" : config.plugins.minidlna.network_interface,
			"media_dir" : config.plugins.minidlna.media_dirs,
			"friendly_name" : config.plugins.minidlna.friendly_name,
			"db_dir" : config.plugins.minidlna.db_dir,
			"log_dir" : config.plugins.minidlna.log_dir,
			"album_art_names" : config.plugins.minidlna.album_art_names,
			"inotify" : config.plugins.minidlna.inotify,
			"enable_tivo" : config.plugins.minidlna.enable_tivo,
			"strict_dlna" : config.plugins.minidlna.strict_dlna,
			"serial" : config.plugins.minidlna.serial,
			"model_number" : config.plugins.minidlna.model_number,
			"root_container" : config.plugins.minidlna.root_container,
		}

		self._init = StartStopDaemon(self.DAEMON, self.DAEMON_TITLE, pidfile=self.PID_FILE)
		self._init.onCommandFinished.append(self._onStartStopCommandFinished)
		self.onActionFinished = []

		harddiskmanager.delayed_device_Notifier.append(self._onDeviceNotifier)
Пример #2
0
def autostart(reason, **kwargs):
    if reason == 0:
        resourcemanager.addResource("Hotplug", Hotplug())
    elif reason == 1:
        hotplug = resourcemanager.getResource("Hotplug")
        if hotplug:
            resourcemanager.removeResource("Hotplug")
            hotplug.release()
Пример #3
0
def autostart(reason, **kwargs):
	if reason == 0:
		resourcemanager.addResource("Hotplug", Hotplug())
	elif reason == 1:
		hotplug = resourcemanager.getResource("Hotplug")
		if hotplug:
			resourcemanager.removeResource("Hotplug")
			hotplug.release()
Пример #4
0
def onOnlineChanged(isOnline):
    cp = resourcemanager.getResource("UPnPControlPoint")
    if not cp:
        return
    if isOnline:
        cp.start()
    else:
        cp.shutdown()
Пример #5
0
def onOnlineChanged(isOnline):
	cp = resourcemanager.getResource("UPnPControlPoint")
	if not cp:
		return
	if isOnline:
		cp.start()
	else:
		cp.shutdown()
Пример #6
0
def restartMediaServer(name, uuid, **kwargs):
    cp = resourcemanager.getResource("UPnPControlPoint")
    if cp:
        removeUPnPDevice(uuid, cp)
        return cp.registerServer(DreamboxMediaStore,
                                 name=name,
                                 uuid=uuid,
                                 **kwargs)
    return None
Пример #7
0
def start(reason, **kwargs):
	global instance
	session = kwargs.get('session', None)
	if session and reason == 0:
		cp = resourcemanager.getResource("UPnPControlPoint")
		if cp:
			instance = cp.registerRenderer(UPnPMediaRenderer, session=session, player=ExtendedPlayer(session))
	else:
		if instance != None:
			instance.unregister()
Пример #8
0
def start(reason, **kwargs):
	global instance
	session = kwargs.get('session', None)
	if session and reason == 0:
		cp = resourcemanager.getResource("UPnPControlPoint")
		if cp:
			instance = cp.registerServer(DreamboxServiceStore, name=_("%s (TV & Radio)" %(HardwareInfo().get_device_name())))
	else:
		if instance != None:
			instance.unregister()
Пример #9
0
def restartMediaRenderer(session, player, name, uuid, **kwargs):
    cp = resourcemanager.getResource("UPnPControlPoint")
    if cp:
        removeUPnPDevice(uuid, cp)
        return cp.registerRenderer(UPnPMediaRenderer,
                                   session=session,
                                   player=player,
                                   name=name,
                                   uuid=uuid,
                                   **kwargs)
    return None
Пример #10
0
	def __init__(self, session):
		Screen.__init__(self, session)

		self["EnigmaVersion"] = StaticText("Enigma2: " + about.getEnigmaVersionString())
		self["ImageVersion"] = StaticText("Image: " + about.getImageVersionString())

		self["TunerHeader"] = StaticText(_("Detected NIMs:"))

		fp_version = getFPVersion()
		if fp_version is None:
			fp_version = ""
		else:
			fp_version = _("Frontprocessor version: %d") % fp_version

		self["FPVersion"] = StaticText(fp_version)

		nims = nimmanager.nimList()
		for count in (0, 1, 2, 3):
			if count < len(nims):
				self["Tuner" + str(count)] = StaticText(nims[count])
			else:
				self["Tuner" + str(count)] = StaticText("")

		self["HDDHeader"] = StaticText(_("Detected HDD:"))
		hddlist = harddiskmanager.HDDList()
		hdd = hddlist and hddlist[0][1] or None
		if hdd is not None and hdd.model() != "":
			self["hddA"] = StaticText(_("%s\n(%s, %d MB free)") % (hdd.model(), hdd.capacity(),hdd.free()))
		else:
			self["hddA"] = StaticText(_("none"))

		self["IPHeader"] = StaticText(_("Current IP Address:"))
		iNetwork = resourcemanager.getResource("iNetwork")
		ifaces = iNetwork.getConfiguredAdapters()
		convertIP = lambda l: "%s.%s.%s.%s" % tuple(l) if l and len(l) == 4 else "0.0.0.0"
		ipA = _("none")
		if len(ifaces) > 0:
			iface = ifaces[0]
			ip = iNetwork.getAdapterAttribute(iface, "ip")
			name = iNetwork.getFriendlyAdapterName(iface)
			if ip != None:
				ipA = "%s (%s)" %(convertIP(ip), name)
		self["ipA"] = StaticText(ipA)

		self["actions"] = ActionMap(["SetupActions", "ColorActions"],
			{
				"cancel": self.close,
				"ok": self.close,
				"green": self.showTranslationInfo
			})
Пример #11
0
	def __init__(self):
		self.controlPoint = resourcemanager.getResource("UPnPControlPoint")
		assert self.controlPoint is not None

		self._currentClient = None
		self._idHistory = []
		self._currentID = -1
		self._requestedID = -1

		self.onListReady = []
		self.list = []

		self.onMediaServerDetected = []
		self.onMediaServerRemoved  = []

		self.controlPoint.onMediaServerDetected.append(self._onMediaServerDetected)
		self.controlPoint.onMediaServerRemoved.append(self._onMediaServerRemoved)
Пример #12
0
	def __init__(self, session):
		Screen.__init__(self, session)
		self._cp = resourcemanager.getResource("UPnPControlPoint")
		assert self._cp is not None

		self.setTitle(_("Sat>IP Tuner Overview"))
		self["list"] = MenuList([], enableWrapAround=True)
		self["tunerActions"] = ActionMap(["OkCancelActions"],
		{
			"ok": self._ok,
			"cancel": self._close,
		}, -2)

		self._devices = []
		self._reload()

		self._cp.onSatIpServerDetected.append(self._reload)
		self._cp.onSatIpServerRemoved.append(self._reload)
		self.onClose.append(self.__onClose)
Пример #13
0
	def __init__(self, session):
		Screen.__init__(self, session)
		self._cp = resourcemanager.getResource("UPnPControlPoint")
		assert self._cp is not None

		self.setTitle(_("Sat>IP Tuner Overview"))
		self["list"] = MenuList([], enableWrapAround=True)
		self["tunerActions"] = ActionMap(["OkCancelActions"],
		{
			"ok": self._ok,
			"cancel": self._close,
		}, -2)

		self._devices = []
		self._reload()

		self._cp.onSatIpServerDetected.append(self._reload)
		self._cp.onSatIpServerRemoved.append(self._reload)
		self.onClose.append(self.__onClose)
Пример #14
0
def upnp_start(reason, **kwargs):
    if reason == 0:
        try:
            from Plugins.Extensions.WebInterface import webif
            if config.plugins.Webinterface.enabled.value and (
                    config.plugins.Webinterface.http.enabled.value
                    or config.plugins.Webinterface.https.enabled.value):
                cp = resourcemanager.getResource("UPnPControlPoint")
                if cp:
                    cp.registerDevice(DreamboxUpnpDevice(cp.coherence))
        except:
            pass
        if config.plugins.mediaserver.enabled.value:
            restartMediaServer(
                config.plugins.mediaserver.name.value,
                getUUID(config.plugins.mediaserver.uuid),
                manufacturer='dreambox',
                manufacturer_url='http://www.dreambox.de',
                model_description='Dreambox MediaServer',
                model_name=config.plugins.mediaserver.name.value,
                model_number=config.plugins.mediaserver.name.value,
                model_url='http://www.dreambox.de')
Пример #15
0
    def __init__(self):
        self.controlPoint = resourcemanager.getResource("UPnPControlPoint")
        assert self.controlPoint is not None

        self._currentClient = None
        self._idHistory = []
        self._currentID = -1
        self._requestedID = -1

        self.onListReady = []
        self.onBrowseError = []
        self.list = []

        self.onMediaServerDetected = []
        self.onMediaServerRemoved = []

        self.currentPath = ""

        self.controlPoint.onMediaServerDetected.append(
            self._onMediaServerDetected)
        self.controlPoint.onMediaServerRemoved.append(
            self._onMediaServerRemoved)
Пример #16
0
def restartMediaRenderer(session, player, name, uuid):
	cp = resourcemanager.getResource("UPnPControlPoint")
	if cp:
		removeUPnPDevice(uuid, cp)
		return cp.registerRenderer(UPnPMediaRenderer, session=session, player=player, name=name, uuid=uuid)
	return None
Пример #17
0
from Screens.Screen import Screen
from Screens.MessageBox import MessageBox
from Components.ActionMap import NumberActionMap
from Components.Pixmap import Pixmap
from Components.FileList import FileList
from Plugins.Plugin import PluginDescriptor
from Components.ResourceManager import resourcemanager

EarlyTest = resourcemanager.getResource("EarlyTest")


class Test(Screen):
    skin = """
		<screen position="100,100" size="550,400" title="Test" >
			<!--widget name="text" position="0,0" size="550,25" font="Regular;20" /-->
			<widget name="list" position="10,0" size="190,250" scrollbarMode="showOnDemand" />
			<widget name="pixmap" position="200,0" size="190,250" />
		</screen>"""

    def __init__(self, session, args=None):
        self.skin = Test.skin
        Screen.__init__(self, session)

        self["list"] = FileList("/",
                                matchingPattern="^.*\.(png|avi|mp3|mpeg|ts)")
        self["pixmap"] = Pixmap()

        #self["text"] = Input("1234", maxSize=True, type=Input.NUMBER)

        self["actions"] = NumberActionMap(
            ["WizardActions", "InputActions"],
Пример #18
0
config.misc.startwizard.shownimconfig = ConfigBoolean(default = True)
config.misc.startwizard.doservicescan = ConfigBoolean(default = True)
config.misc.languageselected = ConfigBoolean(default = True)

emptyWizardList = []

# empty classes if the plugins are not present for not being forced to use dynamic inheritance
# we need a generator function here since multiple inheritance of the same class is not allowed in python
def makeEmptyWizard():
	global emptyWizardList
	class EmptyWizard(object):
		pass
	emptyWizardList.append(EmptyWizard)
	return EmptyWizard

NetworkWizardNew = resourcemanager.getResource("NetworkWizard.NetworkWizardNew", makeEmptyWizard())
VideoWizard = resourcemanager.getResource("videomode.videowizard", makeEmptyWizard())

class StartWizard(NetworkWizardNew, VideoWizard, DefaultSatLists, LanguageSelection, Rc):
	def __init__(self, session, silent = True, showSteps = False, neededTag = None):
		self.xmlfile = ["startwizard.xml", "defaultsatlists.xml"]
		DefaultWizard.__init__(self, session, silent, showSteps, neededTag = "services", default = True)
		WizardLanguage.__init__(self, session, showSteps = False, showMulticontentList = True)
		Rc.__init__(self)

		self["wizard"] = Pixmap()

		# needed for LanguageSelection
		self.png_cache = { }

		self["button_green"] = Boolean(False)
Пример #19
0
def removeUPnPDevice(uuid, cp=None):
    if not cp:
        cp = resourcemanager.getResource("UPnPControlPoint")
    if cp:
        return cp.removeDevice(uuid)
    return False
Пример #20
0
from Components.ResourceManager import resourcemanager
NetworkAdapterSelection = resourcemanager.getResource("NetworkAdapterSelection")
AdapterSetup = resourcemanager.getResource("AdapterSetup")
Пример #21
0
emptyWizardList = []


# empty classes if the plugins are not present for not being forced to use dynamic inheritance
# we need a generator function here since multiple inheritance of the same class is not allowed in python
def makeEmptyWizard():
    global emptyWizardList

    class EmptyWizard(object):
        pass

    emptyWizardList.append(EmptyWizard)
    return EmptyWizard


NetworkWizardNew = resourcemanager.getResource(
    "NetworkWizard.NetworkWizardNew", makeEmptyWizard())
VideoWizard = resourcemanager.getResource("videomode.videowizard",
                                          makeEmptyWizard())
InputDeviceWizardBase = resourcemanager.getResource(
    "InputDeviceWizard.InputDeviceWizardBase", makeEmptyWizard())


class StartWizard(InputDeviceWizardBase, NetworkWizardNew, VideoWizard,
                  DefaultSatLists, LanguageSelection, Rc):
    def __init__(self, session, silent=True, showSteps=False, neededTag=None):
        self.xmlfile = ["startwizard.xml", "defaultsatlists.xml"]
        DefaultWizard.__init__(self,
                               session,
                               silent,
                               showSteps,
                               neededTag="services",
Пример #22
0
from enigma import eEnv, eConsoleAppContainer, eTimer

from Components.config import config, ConfigYesNo, ConfigEnableDisable, ConfigText, ConfigInteger, ConfigSubList, ConfigLocations, ConfigSubsection, ConfigSelection, ConfigDirectory, getConfigListEntry
from Components.ActionMap import ActionMap
from Components.ConfigList import ConfigListScreen
from Components.Harddisk import harddiskmanager
from Components.Sources.StaticText import StaticText
from Components.ResourceManager import resourcemanager
from Plugins.Plugin import PluginDescriptor
from Screens.MessageBox import MessageBox
from Screens.Screen import Screen
from Tools.HardwareInfo import HardwareInfo
from os import path as os_path

iNetwork = resourcemanager.getResource("iNetwork")

def onUnMountNotifier(action, mountpoint):
	if action == harddiskmanager.EVENT_UNMOUNT:
		dlna_config.stopDaemon()
	else:
		if config.plugins.minidlna.enabled.value:
			dlna_config.startDaemon()
harddiskmanager.onUnMount_Notifier.append(onUnMountNotifier)

"""
This is a start-stop-script-like python-class
"""
class StartStopDaemon(object):
	TYPE_START = "start"
	TYPE_STOP = "stop"
Пример #23
0
def autostart(reason, **kwargs):
	if reason == 1:
		cp = resourcemanager.getResource("UPnPControlPoint")
		if cp:
			cp.shutdown()
Пример #24
0
from Screens.Screen import Screen
from Screens.MessageBox import MessageBox
from Components.ActionMap import NumberActionMap
from Components.Pixmap import Pixmap
from Components.FileList import FileList
from Plugins.Plugin import PluginDescriptor
from Components.ResourceManager import resourcemanager
EarlyTest = resourcemanager.getResource("EarlyTest")

class Test(Screen):
	skin = """
		<screen position="100,100" size="550,400" title="Test" >
			<!--widget name="text" position="0,0" size="550,25" font="Regular;20" /-->
			<widget name="list" position="10,0" size="190,250" scrollbarMode="showOnDemand" />
			<widget name="pixmap" position="200,0" size="190,250" />
		</screen>"""
	def __init__(self, session, args = None):
		self.skin = Test.skin
		Screen.__init__(self, session)

		self["list"] = FileList("/", matchingPattern = "^.*\.(png|avi|mp3|mpeg|ts)")
		self["pixmap"] = Pixmap()

		#self["text"] = Input("1234", maxSize=True, type=Input.NUMBER)

		self["actions"] = NumberActionMap(["WizardActions", "InputActions"],
		{
			"ok": self.openTest,
			"back": self.close,
#			"left": self.keyLeft,
#			"right": self.keyRight,
Пример #25
0
def removeUPnPDevice(uuid, cp=None):
	if not cp:
		cp = resourcemanager.getResource("UPnPControlPoint")
	if cp:
		return cp.removeDevice(uuid)
	return False
Пример #26
0
def session_start(reason, session=None, **kwargs):
    if reason == 0 and session != None:
        cp = resourcemanager.getResource("UPnPControlPoint")
        if cp:
            cp.setSession(session)
Пример #27
0
	def append(self, callback):
		hotplug = resourcemanager.getResource("Hotplug")
		if hotplug:
			hotplug.registerEventCallback(callback)
Пример #28
0
emptyWizardList = []


# empty classes if the plugins are not present for not being forced to use dynamic inheritance
# we need a generator function here since multiple inheritance of the same class is not allowed in python
def makeEmptyWizard():
    global emptyWizardList

    class EmptyWizard(object):
        pass

    emptyWizardList.append(EmptyWizard)
    return EmptyWizard


NetworkWizardNew = resourcemanager.getResource(
    "NetworkWizard.NetworkWizardNew", makeEmptyWizard())
VideoWizard = resourcemanager.getResource("videomode.videowizard",
                                          makeEmptyWizard())


class StartWizard(NetworkWizardNew, VideoWizard, DefaultSatLists,
                  LanguageSelection, Rc):
    def __init__(self, session, silent=True, showSteps=False, neededTag=None):
        self.xmlfile = ["startwizard.xml", "defaultsatlists.xml"]
        DefaultWizard.__init__(self,
                               session,
                               silent,
                               showSteps,
                               neededTag="services",
                               default=True)
        WizardLanguage.__init__(self,
Пример #29
0
	def remove(self, callback):
		hotplug = resourcemanager.getResource("Hotplug")
		if hotplug:
			hotplug.unregisterEventCallback(callback)
Пример #30
0
 def remove(self, callback):
     hotplug = resourcemanager.getResource("Hotplug")
     if hotplug:
         hotplug.unregisterEventCallback(callback)
Пример #31
0
def restartMediaServer(name, uuid, **kwargs):
	cp = resourcemanager.getResource("UPnPControlPoint")
	if cp:
		removeUPnPDevice(uuid, cp)
		return cp.registerServer(DreamboxMediaStore, name=name, uuid=uuid, **kwargs)
	return None
Пример #32
0
 def append(self, callback):
     hotplug = resourcemanager.getResource("Hotplug")
     if hotplug:
         hotplug.registerEventCallback(callback)
Пример #33
0
config.misc.startwizard.shownimconfig = ConfigBoolean(default = True)
config.misc.startwizard.doservicescan = ConfigBoolean(default = True)
config.misc.languageselected = ConfigBoolean(default = True)

emptyWizardList = []

# empty classes if the plugins are not present for not being forced to use dynamic inheritance
# we need a generator function here since multiple inheritance of the same class is not allowed in python
def makeEmptyWizard():
	global emptyWizardList
	class EmptyWizard(object):
		pass
	emptyWizardList.append(EmptyWizard)
	return EmptyWizard

NetworkWizardNew = resourcemanager.getResource("NetworkWizard.NetworkWizardNew", makeEmptyWizard())
VideoWizard = resourcemanager.getResource("videomode.videowizard", makeEmptyWizard())
InputDeviceWizardBase = resourcemanager.getResource("InputDeviceWizard.InputDeviceWizardBase", makeEmptyWizard())

class StartWizard(InputDeviceWizardBase, NetworkWizardNew, VideoWizard, DefaultSatLists, LanguageSelection, Rc):
	def __init__(self, session, silent = True, showSteps = False, neededTag = None):
		self.xmlfile = ["startwizard.xml", "defaultsatlists.xml"]
		DefaultWizard.__init__(self, session, silent, showSteps, neededTag = "services", default = True, showMulticontentList = True)
		Rc.__init__(self)

		self["wizard"] = Pixmap()

		# needed for LanguageSelection
		self.png_cache = { }

		self["button_green"] = Boolean(False)