コード例 #1
0
ファイル: plugin.py プロジェクト: st7TEAM/dreambox
	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
ファイル: plugin.py プロジェクト: OpenDMM/enigma2
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
ファイル: earlyplugin.py プロジェクト: OpenDMM/enigma2
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
ファイル: plugin.py プロジェクト: st7TEAM/dreambox
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
ファイル: plugin.py プロジェクト: st7TEAM/dreambox
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
ファイル: About.py プロジェクト: st7TEAM/dreambox
	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
ファイル: UPnPBrowser.py プロジェクト: st7TEAM/dreambox
	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
ファイル: SatIPTuner.py プロジェクト: xmasmc/enigma2-plugins
	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
ファイル: plugin.py プロジェクト: aitchala/enigma2
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
ファイル: UPnPMediaRenderer.py プロジェクト: popazerty/12
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
ファイル: StartWizard.py プロジェクト: OpenDMM/enigma2
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
ファイル: StartWizard.py プロジェクト: dream-alpha/enigma2
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
ファイル: plugin.py プロジェクト: st7TEAM/dreambox
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
ファイル: plugin.py プロジェクト: st7TEAM/dreambox
def autostart(reason, **kwargs):
	if reason == 1:
		cp = resourcemanager.getResource("UPnPControlPoint")
		if cp:
			cp.shutdown()
コード例 #24
0
ファイル: plugin.py プロジェクト: OpenDMM/enigma2
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
ファイル: UPnPCore.py プロジェクト: OpenDMM/enigma2
def removeUPnPDevice(uuid, cp=None):
	if not cp:
		cp = resourcemanager.getResource("UPnPControlPoint")
	if cp:
		return cp.removeDevice(uuid)
	return False
コード例 #26
0
ファイル: plugin.py プロジェクト: aitchala/enigma2
def session_start(reason, session=None, **kwargs):
    if reason == 0 and session != None:
        cp = resourcemanager.getResource("UPnPControlPoint")
        if cp:
            cp.setSession(session)
コード例 #27
0
ファイル: plugin.py プロジェクト: OpenDMM/enigma2
	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
ファイル: plugin.py プロジェクト: OpenDMM/enigma2
	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
ファイル: DreamboxMediaStore.py プロジェクト: OpenDMM/enigma2
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
ファイル: StartWizard.py プロジェクト: aitchala/enigma2
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)