aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Plugins/Plugin.py
blob: 2c8d9296f111c2209dd6b2df5cc67b3279097e0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
from enigma import loadPNG

class PluginDescriptor:
	"""An object to describe a plugin."""
	
	# where to list the plugin. Note that there are different call arguments,
	# so you might not be able to combine them.
	
	# supported arguments are:
	#   session
	#   servicereference
	#   reason
	
	# you have to ignore unknown kwargs!
	
	# argument: session
	WHERE_BLUEMENU = 0
	WHERE_MAINMENU = 1
	WHERE_PLUGINMENU  = 2
	# argument: session, serviceref (currently selected)
	WHERE_MOVIELIST = 3
	# ...
	WHERE_SETUP    = 4
	
	# reason (0: start, 1: end)
	WHERE_AUTOSTART = 5
	
	# start as wizard. In that case, fnc must be a screen class!
	WHERE_WIZARD = 6
	
	def __init__(self, name = "Plugin", where = [ ], description = "", icon = None, fnc = None):
		self.name = name
		if type(where) is list:
			self.where = where
		else:
			self.where = [ where ]
		self.description = description

		if type(icon) is str or icon is None:
			self.iconstr = icon
			self.icon = None
		else:
			self.icon = icon

		self.__call__ = fnc

	def updateIcon(self, path):
		if type(self.iconstr) is str:
			self.icon = loadPNG(path + "/" + self.iconstr)
		else:
			self.icon = None

	def __eq__(self, other):
		return self.__call__ == other.__call__