Skip to content
More languages

Translate automatically from English. Screenshots and search terms remain English.

Google Translate loads after you choose a language.

English original

Converter API — arguments, properties and methods

A converter transforms data or affects downstream behaviour. It has no native widget and therefore no position, size, font or backgroundColor XML attributes. Its argument string is the text inside <convert>:

<widget source="global.CurrentTime" render="Label"
position="24,24" size="250,40" font="Regular;28">
<convert type="ClockToText">WithSeconds</convert>
</widget>

ClockToText receives WithSeconds in its constructor and reads upstream time; Label receives the converter’s text. font belongs to the Label widget. The contract recipes cover formatting, visibility, progress and list content.

The catalogue covers 63 matching module classes in Components/Converter, including the base Converter and helper Poll. It records the constructor’s actual parsing code, class option maps, declared methods, inherited methods and effective properties. No converter code is executed to build the handbook.

The source-access list is a static reading aid. It includes methods as well as properties, and optional probes are identified separately. It is not a promise that all those inputs or outputs apply in every mode. For example, FrontendInfo has text, boolean and value, but a lock-status mode is intended for a boolean consumer, while SNR can feed a progress renderer.

Arguments are class-specific: one converter accepts a single exact token, another comma-separated flags, another a format string, and a template converter may parse a whole expression. There is no universal converter-argument schema. The embedded constructor is the exact syntax reference; the recipes explain the common patterns in prose.

63 entries

Source snapshot f4135659cb. Current attribute counts exclude legacy names and structural XML names. Deprecated attributes and compatibility migrations have their own reference.

AnalogClock

lib/python/Components/Converter/AnalogClock.py, line 9 ↗

Class: Components.Converter.AnalogClock.AnalogClock. Bases: Converter.

Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

Direct upstream accesses declared here: time. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

Upstream accesses in base classes
  • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
Effective Python properties (2) and value/range constants

These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

Arguments, defaults and skin parsing — exact implementation

Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

Class-level constants and option maps
DEFAULT = 0
OMA_SEC = 1
OMA_MIN = 2
OMA_HOUR = 3
AnalogClock.__init__(self, tokens)

Implementation, line 15 ↗

def __init__(self, tokens):
	Converter.__init__(self, tokens)
	self.type = {
		"Hours": self.OMA_HOUR,
		"Minutes": self.OMA_MIN,
		"Seconds": self.OMA_SEC
	}.get(tokens, self.DEFAULT)
Converter.__init__(self, tokens)

Implementation, line 5 ↗

def __init__(self, tokens):
	Element.__init__(self)
	self.converter_arguments = tokens
Element.__init__(self)

Implementation, line 18 ↗

def __init__(self):
	self.downstream_elements = CList()
	self.master = None
	self.sources = []
	self.source = None
	self.__suspended = True
	self.cache = None
	self.onChanged = []
Declared methods (2) and inherited methods (11)

Inherited methods

ChannelNumbers

lib/python/Components/Converter/ChannelNumbers.py, line 5 ↗

Class: Components.Converter.ChannelNumbers.ChannelNumbers. Bases: none.

Helper: does not inherit Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

Effective Python properties (0) and value/range constants

These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

    Arguments, defaults and skin parsing — exact implementation

    Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

    ChannelNumbers.__init__(self)

    Implementation, line 6 ↗

    def __init__(self):
    	pass
    
    Declared methods (6) and inherited methods (0)

    Inherited methods

      ClientsStreaming

      lib/python/Components/Converter/ClientsStreaming.py, line 11 ↗

      Class: Components.Converter.ClientsStreaming.ClientsStreaming. Bases: Converter, Poll.

      Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

      Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

      Upstream accesses in base classes
      • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
      Effective Python properties (5) and value/range constants

      These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

      Arguments, defaults and skin parsing — exact implementation

      Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

      Class-level constants and option maps
      UNKNOWN = -1
      REF = 0
      IP = 1
      NAME = 2
      ENCODER = 3
      NUMBER = 4
      SHORT_ALL = 5
      ALL = 6
      INFO = 7
      INFO_RESOLVE = 8
      INFO_RESOLVE_SHORT = 9
      EXTRA_INFO = 10
      DATA = 11
      ClientsStreaming.__init__(self, tokens)

      Implementation, line 26 ↗

      def __init__(self, tokens):
      	Converter.__init__(self, tokens)
      	Poll.__init__(self)
      	self.poll_interval = 30000
      	self.poll_enabled = True
      	self.type = {
      		"ALL": self.ALL,
      		"DATA": self.DATA,
      		"ENCODER": self.ENCODER,
      		"EXTRA_INFO": self.EXTRA_INFO,
      		"INFO": self.INFO,
      		"INFO_RESOLVE": self.INFO_RESOLVE,
      		"INFO_RESOLVE_SHORT": self.INFO_RESOLVE_SHORT,
      		"IP": self.IP,
      		"NAME": self.NAME,
      		"NUMBER": self.NUMBER,
      		"REF": self.REF,
      		"SHORT_ALL": self.SHORT_ALL
      	}.get(tokens, self.UNKNOWN)
      	self.streamServer = eStreamServer.getInstance()
      
      Converter.__init__(self, tokens)

      Implementation, line 5 ↗

      def __init__(self, tokens):
      	Element.__init__(self)
      	self.converter_arguments = tokens
      
      Element.__init__(self)

      Implementation, line 18 ↗

      def __init__(self):
      	self.downstream_elements = CList()
      	self.master = None
      	self.sources = []
      	self.source = None
      	self.__suspended = True
      	self.cache = None
      	self.onChanged = []
      
      Poll.__init__(self)

      Implementation, line 5 ↗

      def __init__(self):
      	self.__poll_timer = eTimer()
      	self.__poll_timer.callback.append(self.poll)
      	self.__interval = 1000
      	self.__enabled = False
      
      Declared methods (5) and inherited methods (10)

      Inherited methods

      ClockToText

      Formats upstream time (seconds or a tuple) as text. Built-in formats are in TIME_OPTIONS; Format:, Separator: and Parse: modify formatting and tokenisation.

      lib/python/Components/Converter/ClockToText.py, line 7 ↗

      Class: Components.Converter.ClockToText.ClockToText. Bases: Converter.

      Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

      Direct upstream accesses declared here: time. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

      Upstream accesses in base classes
      • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
      Effective Python properties (2) and value/range constants

      These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

      Arguments, defaults and skin parsing — exact implementation

      Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

      Class-level constants and option maps
      TIME_OPTIONS = {'': lambda t: strftime(config.usage.time.short.value, localtime(t)), 'AsLength': lambda t: '' if t < 0 else f'{int(t // 60)}:{int(t % 60):02d}', 'AsLengthHours': lambda t: '' if t < 0 else f'{int(t // 3600)}:{int(t // 60 % 60):02d}', 'AsLengthSeconds': lambda t: '' if t < 0 else f'{int(t // 3600)}:{int(t // 60 % 60):02d}:{int(t % 60):02d}', 'Date': lambda t: strftime(config.usage.date.dayfull.value, localtime(t)), 'Default': lambda t: strftime(config.usage.time.short.value, localtime(t)), 'Display': lambda t: strftime(config.usage.time.display.value, localtime(t)), 'DisplayDate': lambda t: strftime(config.usage.date.display.value, localtime(t)), 'DisplayDayDate': lambda t: strftime(config.usage.date.displayday.value, localtime(t)), 'DisplayTime': lambda t: strftime(config.usage.time.display.value, localtime(t)), 'Full': lambda t: strftime(f'{config.usage.date.dayshort.value} {config.usage.time.short.value}', localtime(t)), 'FullDate': lambda t: strftime(config.usage.date.shortdayfull.value, localtime(t)), 'InMinutes': lambda t: ngettext('%d Min', '%d Mins', t // 60) % (t // 60), 'LongDate': lambda t: strftime(config.usage.date.dayshortfull.value, localtime(t)), 'LongFullDate': lambda t: strftime(f'{config.usage.date.daylong.value}  {config.usage.time.short.value}', localtime(t)), 'Mixed': lambda t: strftime(config.usage.time.mixed.value, localtime(t)), 'ShortDate': lambda t: strftime(config.usage.date.dayshort.value, localtime(t)), 'ShortFullDate': lambda t: strftime(config.usage.date.daylong.value, localtime(t)), 'Timestamp': lambda t: str(t), 'VFD': lambda t: strftime(f'{config.usage.date.compact.value}{config.usage.time.display.value}', localtime(t)), 'VFD08': lambda t: strftime(config.usage.time.display.value, localtime(t)), 'VFD11': lambda t: strftime(f'{config.usage.date.compressed.value}{config.usage.time.display.value}', localtime(t)), 'VFD12': lambda t: strftime(f'{config.usage.date.compact.value}{config.usage.time.display.value}', localtime(t)), 'VFD14': lambda t: strftime(f'{config.usage.date.short.value} {config.usage.time.display.value}', localtime(t)), 'VFD18': lambda t: strftime(f'{config.usage.date.dayshort.value} {config.usage.time.display.value}', localtime(t)), 'WithSeconds': lambda t: strftime(config.usage.time.long.value, localtime(t))}
      ClockToText.__init__(self, tokens)

      Implementation, line 64 ↗

      def __init__(self, tokens):
      	Converter.__init__(self, tokens)
      	self.separator = " - "
      	self.formats = []
      	tokens = tokens.lstrip()
      	if tokens.startswith("Parse"):
      		parse = tokens[5:6]
      	else:
      		# OpenViX used ";" as the only ClockToText token separator. For legacy support skip the
      		# multiple parse character processing if the first token is "Format". Otherwise, some
      		# builds use ";" as a separator, most use ",". If "Parse" is NOT used change "," to ";".
      		parse = ";"
      		if not tokens.startswith("Format"):
      			tokens = tokens.replace(",", ";")
      	for arg in [x.lstrip() for x in tokens.split(parse)]:
      		if arg.startswith("Format"):
      			self.formats.append(eval(f"lambda t: strftime(\"{arg[7:]}\", localtime(t))"))
      		elif arg.startswith("Separator"):
      			self.separator = arg[10:]
      		elif not arg.startswith(("NoSpace", "Parse", "Proportional")):  # Ignore old OpenViX options and the already processed "Parse".
      			self.formats.append(self.TIME_OPTIONS.get(arg, lambda t: "???"))
      	if not self.formats:
      		self.formats.append(self.TIME_OPTIONS.get("Default", lambda t: "???"))
      
      Converter.__init__(self, tokens)

      Implementation, line 5 ↗

      def __init__(self, tokens):
      	Element.__init__(self)
      	self.converter_arguments = tokens
      
      Element.__init__(self)

      Implementation, line 18 ↗

      def __init__(self):
      	self.downstream_elements = CList()
      	self.master = None
      	self.sources = []
      	self.source = None
      	self.__suspended = True
      	self.cache = None
      	self.onChanged = []
      
      Declared methods (2) and inherited methods (11)

      Inherited methods

      Combine

      lib/python/Components/Converter/Combine.py, line 5 ↗

      Class: Components.Converter.Combine.Combine. Bases: Converter.

      Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

      Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

      Upstream accesses in base classes
      • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
      Effective Python properties (2) and value/range constants

      These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

      Arguments, defaults and skin parsing — exact implementation

      Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

      Class-level constants and option maps
      SINGLE_SOURCE = False
      Combine.__init__(self, tokens=None, func=None)

      Implementation, line 8 ↗

      def __init__(self, tokens=None, func=None):
      	Converter.__init__(self, tokens)
      	assert func is not None
      	self.func = func
      
      Converter.__init__(self, tokens)

      Implementation, line 5 ↗

      def __init__(self, tokens):
      	Element.__init__(self)
      	self.converter_arguments = tokens
      
      Element.__init__(self)

      Implementation, line 18 ↗

      def __init__(self):
      	self.downstream_elements = CList()
      	self.master = None
      	self.sources = []
      	self.source = None
      	self.__suspended = True
      	self.cache = None
      	self.onChanged = []
      
      Declared methods (2) and inherited methods (11)

      Inherited methods

      ConditionalShowHide

      Controls downstream visibility from source.boolean, optionally inverted or blinking. It forwards other attribute requests upstream and is not simply a boolean-to-text conversion.

      lib/python/Components/Converter/ConditionalShowHide.py, line 6 ↗

      Class: Components.Converter.ConditionalShowHide.ConditionalShowHide. Bases: Converter.

      Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

      Direct upstream accesses declared here: boolean. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

      Upstream accesses in base classes
      • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
      Effective Python properties (1) and value/range constants

      These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

      Arguments, defaults and skin parsing — exact implementation

      Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

      ConditionalShowHide.__init__(self, tokens)

      Implementation, line 7 ↗

      def __init__(self, tokens):
      	Converter.__init__(self, tokens)
      	tokenDictionary = {
      		"Blink": ("blink", True),
      		"Invert": ("invert", True)
      	}
      	self.blink = False
      	self.invert = False
      	self.blinkTime = 500
      	parse = ","
      	tokens = tokens.replace(";", parse)  # Some builds use ";" as a separator, most use ",".
      	tokens = [x.strip() for x in tokens.split(parse)]
      	for token in tokens:
      		if token.isdigit():
      			self.blinkTime = int(token)
      			continue
      		variable, value = tokenDictionary.get(token, (None, None))
      		if variable:
      			setattr(self, variable, value)
      		elif token:
      			print(f"[ConditionalShowHide] Error: Converter argument '{token}' is invalid!")
      	if self.blink:
      		self.timer = eTimer()
      		self.timer.callback.append(self.blinker)
      	else:
      		self.timer = None
      
      Converter.__init__(self, tokens)

      Implementation, line 5 ↗

      def __init__(self, tokens):
      	Element.__init__(self)
      	self.converter_arguments = tokens
      
      Element.__init__(self)

      Implementation, line 18 ↗

      def __init__(self):
      	self.downstream_elements = CList()
      	self.master = None
      	self.sources = []
      	self.source = None
      	self.__suspended = True
      	self.cache = None
      	self.onChanged = []
      
      Declared methods (9) and inherited methods (8)

      Inherited methods

      ConfigEntryTest

      lib/python/Components/Converter/ConfigEntryTest.py, line 6 ↗

      Class: Components.Converter.ConfigEntryTest.ConfigEntryTest. Bases: Converter.

      Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

      Direct upstream accesses declared here: boolean. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

      Upstream accesses in base classes
      • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
      Effective Python properties (2) and value/range constants

      These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

      Arguments, defaults and skin parsing — exact implementation

      Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

      ConfigEntryTest.__init__(self, tokens)

      Implementation, line 7 ↗

      def __init__(self, tokens):
      	Converter.__init__(self, tokens)
      	args = [x.strip() for x in tokens.split(",")]
      	self.argError = False
      	self.checkSourceBoolean = False
      	self.checkInvertSourceBoolean = False
      	self.invert = False
      	self.ignore = False
      	self.configKey = None
      	self.configValue = None
      	if len(args) > 1 and "config." in args[0]:
      		self.configKey = args[0]
      		self.configValue = args[1]
      		argMap = {
      			"CheckInvertSourceBoolean": "checkInvertSourceBoolean",
      			"CheckSourceBoolean": "checkSourceBoolean",
      			"Ignore": "ignore",
      			"Invert": "invert"
      		}
      		for arg in args[2:5]:  # Check args[2], args[3] and args[4].
      			if arg in argMap:
      				setattr(self, argMap[arg], True)
      			else:
      				self.argError = True
      	else:
      		self.argError = True
      	if self.argError:
      		print(f"[ConfigEntryTest] Converter got incorrect arguments '{str(args)}'! The arg[0] must start with 'config.', arg[1] is the compare string, arg[2] - arg[4] are optional arguments and must be 'Invert', 'Ignore', 'CheckSourceBoolean' or 'CheckInvertSourceBoolean'.")
      
      Converter.__init__(self, tokens)

      Implementation, line 5 ↗

      def __init__(self, tokens):
      	Element.__init__(self)
      	self.converter_arguments = tokens
      
      Element.__init__(self)

      Implementation, line 18 ↗

      def __init__(self):
      	self.downstream_elements = CList()
      	self.master = None
      	self.sources = []
      	self.source = None
      	self.__suspended = True
      	self.cache = None
      	self.onChanged = []
      
      Declared methods (2) and inherited methods (11)

      Inherited methods

      ConfigEntryTestVisible

      lib/python/Components/Converter/ConfigEntryTestVisible.py, line 5 ↗

      Class: Components.Converter.ConfigEntryTestVisible.ConfigEntryTestVisible. Bases: ConfigEntryTest.

      Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

      Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

      Upstream accesses in base classes
      • Components.Converter.ConfigEntryTest.ConfigEntryTest: accesses boolean; probes none.
      • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
      Effective Python properties (2) and value/range constants

      These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

      Arguments, defaults and skin parsing — exact implementation

      Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

      ConfigEntryTestVisible.__init__(self, tokens)

      Implementation, line 6 ↗

      def __init__(self, tokens):
      	ConfigEntryTest.__init__(self, tokens)
      
      ConfigEntryTest.__init__(self, tokens)

      Implementation, line 7 ↗

      def __init__(self, tokens):
      	Converter.__init__(self, tokens)
      	args = [x.strip() for x in tokens.split(",")]
      	self.argError = False
      	self.checkSourceBoolean = False
      	self.checkInvertSourceBoolean = False
      	self.invert = False
      	self.ignore = False
      	self.configKey = None
      	self.configValue = None
      	if len(args) > 1 and "config." in args[0]:
      		self.configKey = args[0]
      		self.configValue = args[1]
      		argMap = {
      			"CheckInvertSourceBoolean": "checkInvertSourceBoolean",
      			"CheckSourceBoolean": "checkSourceBoolean",
      			"Ignore": "ignore",
      			"Invert": "invert"
      		}
      		for arg in args[2:5]:  # Check args[2], args[3] and args[4].
      			if arg in argMap:
      				setattr(self, argMap[arg], True)
      			else:
      				self.argError = True
      	else:
      		self.argError = True
      	if self.argError:
      		print(f"[ConfigEntryTest] Converter got incorrect arguments '{str(args)}'! The arg[0] must start with 'config.', arg[1] is the compare string, arg[2] - arg[4] are optional arguments and must be 'Invert', 'Ignore', 'CheckSourceBoolean' or 'CheckInvertSourceBoolean'.")
      
      Converter.__init__(self, tokens)

      Implementation, line 5 ↗

      def __init__(self, tokens):
      	Element.__init__(self)
      	self.converter_arguments = tokens
      
      Element.__init__(self)

      Implementation, line 18 ↗

      def __init__(self):
      	self.downstream_elements = CList()
      	self.master = None
      	self.sources = []
      	self.source = None
      	self.__suspended = True
      	self.cache = None
      	self.onChanged = []
      
      Declared methods (4) and inherited methods (10)

      Inherited methods

      Converter

      Base Element subclass storing the argument string. Concrete converters expose properties or affect downstream elements.

      lib/python/Components/Converter/Converter.py, line 4 ↗

      Class: Components.Converter.Converter.Converter. Bases: Element.

      Inherits Converter. Use a concrete implementation for a skin chain.

      Direct upstream accesses declared here: handleCommand. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

      Effective Python properties (1) and value/range constants

      These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

      Arguments, defaults and skin parsing — exact implementation

      Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

      Converter.__init__(self, tokens)

      Implementation, line 5 ↗

      def __init__(self, tokens):
      	Element.__init__(self)
      	self.converter_arguments = tokens
      
      Element.__init__(self)

      Implementation, line 18 ↗

      def __init__(self):
      	self.downstream_elements = CList()
      	self.master = None
      	self.sources = []
      	self.source = None
      	self.__suspended = True
      	self.cache = None
      	self.onChanged = []
      
      Declared methods (3) and inherited methods (10)

      Inherited methods

      ConverterRotator

      Static Text Converter Rotator

      lib/python/Components/Converter/ConverterRotator.py, line 13 ↗

      Class: Components.Converter.ConverterRotator.ConverterRotator. Bases: Poll, Converter.

      Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

      Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

      Upstream accesses in base classes
      • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
      Effective Python properties (4) and value/range constants

      These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

      Arguments, defaults and skin parsing — exact implementation

      Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

      ConverterRotator.__init__(self, tokens)

      Implementation, line 16 ↗

      def __init__(self, tokens):
      	Poll.__init__(self)
      	Converter.__init__(self, tokens)
      	self.mainstream = None
      	self.sourceList = []
      	self.sourceIndex = -1
      	if tokens and tokens.isdigit():
      		self.poll_interval = int(tokens) * 1000
      
      Poll.__init__(self)

      Implementation, line 5 ↗

      def __init__(self):
      	self.__poll_timer = eTimer()
      	self.__poll_timer.callback.append(self.poll)
      	self.__interval = 1000
      	self.__enabled = False
      
      Converter.__init__(self, tokens)

      Implementation, line 5 ↗

      def __init__(self, tokens):
      	Element.__init__(self)
      	self.converter_arguments = tokens
      
      Element.__init__(self)

      Implementation, line 18 ↗

      def __init__(self):
      	self.downstream_elements = CList()
      	self.master = None
      	self.sources = []
      	self.source = None
      	self.__suspended = True
      	self.cache = None
      	self.onChanged = []
      
      Declared methods (5) and inherited methods (9)

      Inherited methods

      CryptoInfo

      lib/python/Components/Converter/CryptoInfo.py, line 8 ↗

      Class: Components.Converter.CryptoInfo.CryptoInfo. Bases: Poll, Converter.

      Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

      Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

      Upstream accesses in base classes
      • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
      Effective Python properties (4) and value/range constants

      These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

      Arguments, defaults and skin parsing — exact implementation

      Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

      CryptoInfo.__init__(self, tokens)

      Implementation, line 9 ↗

      def __init__(self, tokens):
      	Converter.__init__(self, tokens)
      	Poll.__init__(self)
      	self.type = tokens
      	self.active = False  # TODO what's this
      	self.visible = config.usage.show_cryptoinfo.value > 0
      	self.textvalue = ""  # TODO what's this
      	self.ecmdata = GetEcmInfo()
      
      	def ShowCryptoInfo(configElement):
      		if configElement.value > 0:
      			self.poll_interval = 1000
      			self.poll_enabled = True
      		else:
      			self.poll_enabled = False
      
      	config.usage.show_cryptoinfo.addNotifier(ShowCryptoInfo)
      
      Poll.__init__(self)

      Implementation, line 5 ↗

      def __init__(self):
      	self.__poll_timer = eTimer()
      	self.__poll_timer.callback.append(self.poll)
      	self.__interval = 1000
      	self.__enabled = False
      
      Converter.__init__(self, tokens)

      Implementation, line 5 ↗

      def __init__(self, tokens):
      	Element.__init__(self)
      	self.converter_arguments = tokens
      
      Element.__init__(self)

      Implementation, line 18 ↗

      def __init__(self):
      	self.downstream_elements = CList()
      	self.master = None
      	self.sources = []
      	self.source = None
      	self.__suspended = True
      	self.cache = None
      	self.onChanged = []
      
      Declared methods (2) and inherited methods (12)

      Inherited methods

      EGAnalogic

      lib/python/Components/Converter/EGAnalogic.py, line 8 ↗

      Class: Components.Converter.EGAnalogic.EGAnalogic. Bases: Converter.

      Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

      Direct upstream accesses declared here: time. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

      Upstream accesses in base classes
      • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
      Effective Python properties (2) and value/range constants

      These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

      Arguments, defaults and skin parsing — exact implementation

      Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

      EGAnalogic.__init__(self, tokens)

      Implementation, line 9 ↗

      def __init__(self, tokens):
      	Converter.__init__(self, tokens)
      	self.type = {
      		"Hours": 3,
      		"Minutes": 2,
      		"Seconds": 1
      	}.get(tokens, -1)
      
      Converter.__init__(self, tokens)

      Implementation, line 5 ↗

      def __init__(self, tokens):
      	Element.__init__(self)
      	self.converter_arguments = tokens
      
      Element.__init__(self)

      Implementation, line 18 ↗

      def __init__(self):
      	self.downstream_elements = CList()
      	self.master = None
      	self.sources = []
      	self.source = None
      	self.__suspended = True
      	self.cache = None
      	self.onChanged = []
      
      Declared methods (2) and inherited methods (11)

      Inherited methods

      EtAnalogClock

      lib/python/Components/Converter/EtAnalogClock.py, line 4 ↗

      Class: Components.Converter.EtAnalogClock.EtAnalogClock. Bases: AnalogClock.

      Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

      Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

      Upstream accesses in base classes
      • Components.Converter.AnalogClock.AnalogClock: accesses time; probes none.
      • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
      Effective Python properties (2) and value/range constants

      These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

      Arguments, defaults and skin parsing — exact implementation

      Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

      AnalogClock.__init__(self, tokens)

      Implementation, line 15 ↗

      def __init__(self, tokens):
      	Converter.__init__(self, tokens)
      	self.type = {
      		"Hours": self.OMA_HOUR,
      		"Minutes": self.OMA_MIN,
      		"Seconds": self.OMA_SEC
      	}.get(tokens, self.DEFAULT)
      
      Converter.__init__(self, tokens)

      Implementation, line 5 ↗

      def __init__(self, tokens):
      	Element.__init__(self)
      	self.converter_arguments = tokens
      
      Element.__init__(self)

      Implementation, line 18 ↗

      def __init__(self):
      	self.downstream_elements = CList()
      	self.master = None
      	self.sources = []
      	self.source = None
      	self.__suspended = True
      	self.cache = None
      	self.onChanged = []
      
      Declared methods (0) and inherited methods (12)

        Inherited methods

        EventInfo

        Extracts event text, timing, progress and metadata. The selected constructor mode determines which output properties are meaningful.

        lib/python/Components/Converter/EventInfo.py, line 157 ↗

        Class: Components.Converter.EventInfo.EventInfo. Bases: Converter, Poll.

        Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

        Direct upstream accesses declared here: event, info, service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

        Upstream accesses in base classes
        • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
        Effective Python properties (7) and value/range constants

        These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

        range = 1000 — Components.Converter.EventInfo.EventInfo

        Arguments, defaults and skin parsing — exact implementation

        Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

        Class-level constants and option maps
        CRID_EPISODE = 0
        CRID_RECOMMENDATION = 1
        CRID_SERIES = 2
        DURATION = 3
        ELAPSED = 4
        ELAPSED_VFD = 5
        END_TIME = 6
        EPG_SOURCE = 7
        EXTENDED_DESCRIPTION = 8
        EXTRA_DATA = 9
        FILE_SIZE = 10
        FULL_DESCRIPTION = 11
        GENRE = 12
        GENRE_LIST = 13
        ID = 14
        MEDIA_PATH = 15
        NAME = 16
        NAME_NEXT = 17
        NAME_NEXT2 = 18
        NAME_NOW = 19
        NEXT_DESCRIPTION = 20
        NEXT_DURATION = 21
        NEXT_END_TIME = 22
        NEXT_START_TIME = 23
        NEXT_TIMES = 24
        PDC = 25
        PDC_TIME = 26
        PDC_TIME_SHORT = 27
        PROGRESS = 28
        RATING = 29
        RATING_CODE = 30
        RATING_COUNTRY = 31
        RATING_ICON = 32
        RATING_RAW = 33
        RATING_TEXT_AND_COLOR = 34
        REMAINING = 35
        REMAINING_VFD = 36
        RUNNING_STATUS = 37
        SERVICE_NAME = 38
        SERVICE_REFERENCE = 39
        SHORT_DESCRIPTION = 40
        START_TIME = 41
        THIRD_DESCRIPTION = 42
        THIRD_DURATION = 43
        THIRD_END_TIME = 44
        THIRD_NAME = 45
        THIRD_NAME2 = 46
        THIRD_START_TIME = 47
        THIRD_TIMES = 48
        TIMES = 49
        RATING_SHORT = 0
        RATING_LONG = 1
        RATING_IMAGE = 2
        RATING_COLOR = 3
        RATING_NORMAL = 0
        RATING_DEFAULT = 1
        range = 1000
        EventInfo.__init__(self, tokens)

        Implementation, line 217 ↗

        def __init__(self, tokens):
        	Converter.__init__(self, tokens)
        	Poll.__init__(self)
        	tokenDictionary = {
        		# Arguments...
        		"CRIDEpisode": ("token", self.CRID_EPISODE, 0),
        		"CRIDRecommendation": ("token", self.CRID_RECOMMENDATION, 0),
        		"CRIDSeries": ("token", self.CRID_SERIES, 0),
        		"Description": ("token", self.SHORT_DESCRIPTION, 0),
        		"Duration": ("token", self.DURATION, 0),
        		"EPGSource": ("token", self.EPG_SOURCE, 0),
        		"Elapsed": ("token", self.ELAPSED, 60000),
        		"ElapsedVFD": ("token", self.ELAPSED_VFD, 60000),
        		"EndTime": ("token", self.END_TIME, 0),
        		"ExtendedDescription": ("token", self.EXTENDED_DESCRIPTION, 0),
        		"ExtraData": ("token", self.EXTRA_DATA, 0),
        		"FileSize": ("token", self.FILE_SIZE, 0),
        		"FullDescription": ("token", self.FULL_DESCRIPTION, 0),
        		"Genre": ("token", self.GENRE, 0),
        		"GenreList": ("token", self.GENRE_LIST, 0),
        		"ID": ("token", self.ID, 0),
        		"IsRunningStatus": ("token", self.RUNNING_STATUS, 0),  # Deprecated.
        		"MediaPath": ("token", self.MEDIA_PATH, 0),
        		"Name": ("token", self.NAME, 0),
        		"NameNext": ("token", self.NAME_NEXT, 0),
        		"NameNextOnly": ("token", self.NAME_NEXT2, 0),
        		"NameNow": ("token", self.NAME_NOW, 0),
        		"NextDescription": ("token", self.NEXT_DESCRIPTION, 0),
        		"NextDuration": ("token", self.NEXT_DURATION, 0),
        		"NextEndTime": ("token", self.NEXT_END_TIME, 0),
        		"NextName": ("token", self.NAME_NEXT, 0),
        		"NextNameOnly": ("token", self.NAME_NEXT2, 0),
        		"NextStartTime": ("token", self.NEXT_START_TIME, 0),
        		"NextTimes": ("token", self.NEXT_TIMES, 0),
        		"NowName": ("token", self.NAME_NOW, 0),
        		"Pdc": ("token", self.PDC, 0),
        		"PdcTime": ("token", self.PDC_TIME, 0),
        		"PdcTimeShort": ("token", self.PDC_TIME_SHORT, 0),
        		"Progress": ("token", self.PROGRESS, 30000),
        		"Rating": ("token", self.RATING, 0),
        		"RatingCode": ("token", self.RATING_CODE, 0),
        		"RatingCountry": ("token", self.RATING_COUNTRY, 0),
        		"RatingIcon": ("token", self.RATING_ICON, 0),
        		"RatingRaw": ("token", self.RATING_RAW, 0),
        		"RatingTextAndColor": ("token", self.RATING_TEXT_AND_COLOR, 0),
        		"RawRating": ("token", self.RATING_RAW, 0),
        		"Remaining": ("token", self.REMAINING, 60000),
        		"RemainingVFD": ("token", self.REMAINING_VFD, 60000),
        		"RunningStatus": ("token", self.RUNNING_STATUS, 0),
        		"ServiceName": ("token", self.SERVICE_NAME, 0),
        		"ServiceReference": ("token", self.SERVICE_REFERENCE, 0),
        		"ShortDescription": ("token", self.SHORT_DESCRIPTION, 0),
        		"SmallRating": ("token", self.RATING_CODE, 0),  # Deprecated?
        		"StartTime": ("token", self.START_TIME, 0),
        		"ThirdDescription": ("token", self.THIRD_DESCRIPTION, 0),
        		"ThirdDuration": ("token", self.THIRD_DURATION, 0),
        		"ThirdEndTime": ("token", self.THIRD_END_TIME, 0),
        		"ThirdName": ("token", self.THIRD_NAME, 0),
        		"ThirdNameOnly": ("token", self.THIRD_NAME2, 0),
        		"ThirdStartTime": ("token", self.THIRD_START_TIME, 0),
        		"ThirdTimes": ("token", self.THIRD_TIMES, 0),
        		"Times": ("token", self.TIMES, 0),
        		"VFDElapsed": ("token", self.ELAPSED_VFD, 60000),
        		"VFDRemaining": ("token", self.REMAINING_VFD, 60000),
        		# Options...
        		"NotSeparated": ("separator", "\n", 0),
        		"NotTrimmed": ("trim", False, 0),
        		"Separated": ("separator", "\n\n", 0),
        		"SeparatorComma": ("separator", ", ", 0),
        		"SeparatorSlash": ("separator", "/", 0),
        		"Trimmed": ("trim", True, 0)
        	}
        	self.token = self.NAME
        	self.separator = None
        	self.trim = False
        	parse = ","
        	tokens = tokens.replace(";", parse)  # Some builds use ";" as a separator, most use ",".
        	tokens = [x.strip() for x in tokens.split(parse)]
        	for token in tokens:
        		variable, value, poll = tokenDictionary.get(token, (None, None, 0))
        		if variable:
        			setattr(self, variable, value)
        			if variable == "token" and poll:
        				self.poll_interval = poll
        				self.poll_enabled = True
        		elif token:
        			print(f"[EventInfo] Error: Converter argument '{token}' is invalid!")
        	if self.separator is None:
        		self.separator = tokenDictionary["SeparatorComma" if self.token == self.GENRE_LIST else "NotSeparated"][1]
        	self.epgCache = eEPGCache.getInstance()
        
        Converter.__init__(self, tokens)

        Implementation, line 5 ↗

        def __init__(self, tokens):
        	Element.__init__(self)
        	self.converter_arguments = tokens
        
        Element.__init__(self)

        Implementation, line 18 ↗

        def __init__(self):
        	self.downstream_elements = CList()
        	self.master = None
        	self.sources = []
        	self.source = None
        	self.__suspended = True
        	self.cache = None
        	self.onChanged = []
        
        Poll.__init__(self)

        Implementation, line 5 ↗

        def __init__(self):
        	self.__poll_timer = eTimer()
        	self.__poll_timer.callback.append(self.poll)
        	self.__interval = 1000
        	self.__enabled = False
        
        Declared methods (6) and inherited methods (11)

        Inherited methods

        EventName

        lib/python/Components/Converter/EventName.py, line 4 ↗

        Class: Components.Converter.EventName.EventName. Bases: EventInfo.

        Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

        Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

        Upstream accesses in base classes
        • Components.Converter.EventInfo.EventInfo: accesses event, info, service; probes none.
        • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
        Effective Python properties (7) and value/range constants

        These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

        range = 1000 — Components.Converter.EventInfo.EventInfo

        Arguments, defaults and skin parsing — exact implementation

        Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

        EventName.__init__(self, tokens)

        Implementation, line 5 ↗

        def __init__(self, tokens):
        	EventInfo.__init__(self, tokens)
        
        EventInfo.__init__(self, tokens)

        Implementation, line 217 ↗

        def __init__(self, tokens):
        	Converter.__init__(self, tokens)
        	Poll.__init__(self)
        	tokenDictionary = {
        		# Arguments...
        		"CRIDEpisode": ("token", self.CRID_EPISODE, 0),
        		"CRIDRecommendation": ("token", self.CRID_RECOMMENDATION, 0),
        		"CRIDSeries": ("token", self.CRID_SERIES, 0),
        		"Description": ("token", self.SHORT_DESCRIPTION, 0),
        		"Duration": ("token", self.DURATION, 0),
        		"EPGSource": ("token", self.EPG_SOURCE, 0),
        		"Elapsed": ("token", self.ELAPSED, 60000),
        		"ElapsedVFD": ("token", self.ELAPSED_VFD, 60000),
        		"EndTime": ("token", self.END_TIME, 0),
        		"ExtendedDescription": ("token", self.EXTENDED_DESCRIPTION, 0),
        		"ExtraData": ("token", self.EXTRA_DATA, 0),
        		"FileSize": ("token", self.FILE_SIZE, 0),
        		"FullDescription": ("token", self.FULL_DESCRIPTION, 0),
        		"Genre": ("token", self.GENRE, 0),
        		"GenreList": ("token", self.GENRE_LIST, 0),
        		"ID": ("token", self.ID, 0),
        		"IsRunningStatus": ("token", self.RUNNING_STATUS, 0),  # Deprecated.
        		"MediaPath": ("token", self.MEDIA_PATH, 0),
        		"Name": ("token", self.NAME, 0),
        		"NameNext": ("token", self.NAME_NEXT, 0),
        		"NameNextOnly": ("token", self.NAME_NEXT2, 0),
        		"NameNow": ("token", self.NAME_NOW, 0),
        		"NextDescription": ("token", self.NEXT_DESCRIPTION, 0),
        		"NextDuration": ("token", self.NEXT_DURATION, 0),
        		"NextEndTime": ("token", self.NEXT_END_TIME, 0),
        		"NextName": ("token", self.NAME_NEXT, 0),
        		"NextNameOnly": ("token", self.NAME_NEXT2, 0),
        		"NextStartTime": ("token", self.NEXT_START_TIME, 0),
        		"NextTimes": ("token", self.NEXT_TIMES, 0),
        		"NowName": ("token", self.NAME_NOW, 0),
        		"Pdc": ("token", self.PDC, 0),
        		"PdcTime": ("token", self.PDC_TIME, 0),
        		"PdcTimeShort": ("token", self.PDC_TIME_SHORT, 0),
        		"Progress": ("token", self.PROGRESS, 30000),
        		"Rating": ("token", self.RATING, 0),
        		"RatingCode": ("token", self.RATING_CODE, 0),
        		"RatingCountry": ("token", self.RATING_COUNTRY, 0),
        		"RatingIcon": ("token", self.RATING_ICON, 0),
        		"RatingRaw": ("token", self.RATING_RAW, 0),
        		"RatingTextAndColor": ("token", self.RATING_TEXT_AND_COLOR, 0),
        		"RawRating": ("token", self.RATING_RAW, 0),
        		"Remaining": ("token", self.REMAINING, 60000),
        		"RemainingVFD": ("token", self.REMAINING_VFD, 60000),
        		"RunningStatus": ("token", self.RUNNING_STATUS, 0),
        		"ServiceName": ("token", self.SERVICE_NAME, 0),
        		"ServiceReference": ("token", self.SERVICE_REFERENCE, 0),
        		"ShortDescription": ("token", self.SHORT_DESCRIPTION, 0),
        		"SmallRating": ("token", self.RATING_CODE, 0),  # Deprecated?
        		"StartTime": ("token", self.START_TIME, 0),
        		"ThirdDescription": ("token", self.THIRD_DESCRIPTION, 0),
        		"ThirdDuration": ("token", self.THIRD_DURATION, 0),
        		"ThirdEndTime": ("token", self.THIRD_END_TIME, 0),
        		"ThirdName": ("token", self.THIRD_NAME, 0),
        		"ThirdNameOnly": ("token", self.THIRD_NAME2, 0),
        		"ThirdStartTime": ("token", self.THIRD_START_TIME, 0),
        		"ThirdTimes": ("token", self.THIRD_TIMES, 0),
        		"Times": ("token", self.TIMES, 0),
        		"VFDElapsed": ("token", self.ELAPSED_VFD, 60000),
        		"VFDRemaining": ("token", self.REMAINING_VFD, 60000),
        		# Options...
        		"NotSeparated": ("separator", "\n", 0),
        		"NotTrimmed": ("trim", False, 0),
        		"Separated": ("separator", "\n\n", 0),
        		"SeparatorComma": ("separator", ", ", 0),
        		"SeparatorSlash": ("separator", "/", 0),
        		"Trimmed": ("trim", True, 0)
        	}
        	self.token = self.NAME
        	self.separator = None
        	self.trim = False
        	parse = ","
        	tokens = tokens.replace(";", parse)  # Some builds use ";" as a separator, most use ",".
        	tokens = [x.strip() for x in tokens.split(parse)]
        	for token in tokens:
        		variable, value, poll = tokenDictionary.get(token, (None, None, 0))
        		if variable:
        			setattr(self, variable, value)
        			if variable == "token" and poll:
        				self.poll_interval = poll
        				self.poll_enabled = True
        		elif token:
        			print(f"[EventInfo] Error: Converter argument '{token}' is invalid!")
        	if self.separator is None:
        		self.separator = tokenDictionary["SeparatorComma" if self.token == self.GENRE_LIST else "NotSeparated"][1]
        	self.epgCache = eEPGCache.getInstance()
        
        Converter.__init__(self, tokens)

        Implementation, line 5 ↗

        def __init__(self, tokens):
        	Element.__init__(self)
        	self.converter_arguments = tokens
        
        Element.__init__(self)

        Implementation, line 18 ↗

        def __init__(self):
        	self.downstream_elements = CList()
        	self.master = None
        	self.sources = []
        	self.source = None
        	self.__suspended = True
        	self.cache = None
        	self.onChanged = []
        
        Poll.__init__(self)

        Implementation, line 5 ↗

        def __init__(self):
        	self.__poll_timer = eTimer()
        	self.__poll_timer.callback.append(self.poll)
        	self.__interval = 1000
        	self.__enabled = False
        
        Declared methods (1) and inherited methods (16)

        Inherited methods

        EventTime

        Compatibility subclass of EventInfo. Its constructor and properties are inherited from EventInfo; inspect that base contract for available modes.

        lib/python/Components/Converter/EventTime.py, line 4 ↗

        Class: Components.Converter.EventTime.EventTime. Bases: EventInfo.

        Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

        Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

        Upstream accesses in base classes
        • Components.Converter.EventInfo.EventInfo: accesses event, info, service; probes none.
        • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
        Effective Python properties (7) and value/range constants

        These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

        range = 1000 — Components.Converter.EventInfo.EventInfo

        Arguments, defaults and skin parsing — exact implementation

        Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

        EventTime.__init__(self, tokens)

        Implementation, line 5 ↗

        def __init__(self, tokens):
        	EventInfo.__init__(self, tokens)
        
        EventInfo.__init__(self, tokens)

        Implementation, line 217 ↗

        def __init__(self, tokens):
        	Converter.__init__(self, tokens)
        	Poll.__init__(self)
        	tokenDictionary = {
        		# Arguments...
        		"CRIDEpisode": ("token", self.CRID_EPISODE, 0),
        		"CRIDRecommendation": ("token", self.CRID_RECOMMENDATION, 0),
        		"CRIDSeries": ("token", self.CRID_SERIES, 0),
        		"Description": ("token", self.SHORT_DESCRIPTION, 0),
        		"Duration": ("token", self.DURATION, 0),
        		"EPGSource": ("token", self.EPG_SOURCE, 0),
        		"Elapsed": ("token", self.ELAPSED, 60000),
        		"ElapsedVFD": ("token", self.ELAPSED_VFD, 60000),
        		"EndTime": ("token", self.END_TIME, 0),
        		"ExtendedDescription": ("token", self.EXTENDED_DESCRIPTION, 0),
        		"ExtraData": ("token", self.EXTRA_DATA, 0),
        		"FileSize": ("token", self.FILE_SIZE, 0),
        		"FullDescription": ("token", self.FULL_DESCRIPTION, 0),
        		"Genre": ("token", self.GENRE, 0),
        		"GenreList": ("token", self.GENRE_LIST, 0),
        		"ID": ("token", self.ID, 0),
        		"IsRunningStatus": ("token", self.RUNNING_STATUS, 0),  # Deprecated.
        		"MediaPath": ("token", self.MEDIA_PATH, 0),
        		"Name": ("token", self.NAME, 0),
        		"NameNext": ("token", self.NAME_NEXT, 0),
        		"NameNextOnly": ("token", self.NAME_NEXT2, 0),
        		"NameNow": ("token", self.NAME_NOW, 0),
        		"NextDescription": ("token", self.NEXT_DESCRIPTION, 0),
        		"NextDuration": ("token", self.NEXT_DURATION, 0),
        		"NextEndTime": ("token", self.NEXT_END_TIME, 0),
        		"NextName": ("token", self.NAME_NEXT, 0),
        		"NextNameOnly": ("token", self.NAME_NEXT2, 0),
        		"NextStartTime": ("token", self.NEXT_START_TIME, 0),
        		"NextTimes": ("token", self.NEXT_TIMES, 0),
        		"NowName": ("token", self.NAME_NOW, 0),
        		"Pdc": ("token", self.PDC, 0),
        		"PdcTime": ("token", self.PDC_TIME, 0),
        		"PdcTimeShort": ("token", self.PDC_TIME_SHORT, 0),
        		"Progress": ("token", self.PROGRESS, 30000),
        		"Rating": ("token", self.RATING, 0),
        		"RatingCode": ("token", self.RATING_CODE, 0),
        		"RatingCountry": ("token", self.RATING_COUNTRY, 0),
        		"RatingIcon": ("token", self.RATING_ICON, 0),
        		"RatingRaw": ("token", self.RATING_RAW, 0),
        		"RatingTextAndColor": ("token", self.RATING_TEXT_AND_COLOR, 0),
        		"RawRating": ("token", self.RATING_RAW, 0),
        		"Remaining": ("token", self.REMAINING, 60000),
        		"RemainingVFD": ("token", self.REMAINING_VFD, 60000),
        		"RunningStatus": ("token", self.RUNNING_STATUS, 0),
        		"ServiceName": ("token", self.SERVICE_NAME, 0),
        		"ServiceReference": ("token", self.SERVICE_REFERENCE, 0),
        		"ShortDescription": ("token", self.SHORT_DESCRIPTION, 0),
        		"SmallRating": ("token", self.RATING_CODE, 0),  # Deprecated?
        		"StartTime": ("token", self.START_TIME, 0),
        		"ThirdDescription": ("token", self.THIRD_DESCRIPTION, 0),
        		"ThirdDuration": ("token", self.THIRD_DURATION, 0),
        		"ThirdEndTime": ("token", self.THIRD_END_TIME, 0),
        		"ThirdName": ("token", self.THIRD_NAME, 0),
        		"ThirdNameOnly": ("token", self.THIRD_NAME2, 0),
        		"ThirdStartTime": ("token", self.THIRD_START_TIME, 0),
        		"ThirdTimes": ("token", self.THIRD_TIMES, 0),
        		"Times": ("token", self.TIMES, 0),
        		"VFDElapsed": ("token", self.ELAPSED_VFD, 60000),
        		"VFDRemaining": ("token", self.REMAINING_VFD, 60000),
        		# Options...
        		"NotSeparated": ("separator", "\n", 0),
        		"NotTrimmed": ("trim", False, 0),
        		"Separated": ("separator", "\n\n", 0),
        		"SeparatorComma": ("separator", ", ", 0),
        		"SeparatorSlash": ("separator", "/", 0),
        		"Trimmed": ("trim", True, 0)
        	}
        	self.token = self.NAME
        	self.separator = None
        	self.trim = False
        	parse = ","
        	tokens = tokens.replace(";", parse)  # Some builds use ";" as a separator, most use ",".
        	tokens = [x.strip() for x in tokens.split(parse)]
        	for token in tokens:
        		variable, value, poll = tokenDictionary.get(token, (None, None, 0))
        		if variable:
        			setattr(self, variable, value)
        			if variable == "token" and poll:
        				self.poll_interval = poll
        				self.poll_enabled = True
        		elif token:
        			print(f"[EventInfo] Error: Converter argument '{token}' is invalid!")
        	if self.separator is None:
        		self.separator = tokenDictionary["SeparatorComma" if self.token == self.GENRE_LIST else "NotSeparated"][1]
        	self.epgCache = eEPGCache.getInstance()
        
        Converter.__init__(self, tokens)

        Implementation, line 5 ↗

        def __init__(self, tokens):
        	Element.__init__(self)
        	self.converter_arguments = tokens
        
        Element.__init__(self)

        Implementation, line 18 ↗

        def __init__(self):
        	self.downstream_elements = CList()
        	self.master = None
        	self.sources = []
        	self.source = None
        	self.__suspended = True
        	self.cache = None
        	self.onChanged = []
        
        Poll.__init__(self)

        Implementation, line 5 ↗

        def __init__(self):
        	self.__poll_timer = eTimer()
        	self.__poll_timer.callback.append(self.poll)
        	self.__interval = 1000
        	self.__enabled = False
        
        Declared methods (1) and inherited methods (16)

        Inherited methods

        ExtendedServiceInfo

        lib/python/Components/Converter/ExtendedServiceInfo.py, line 11 ↗

        Class: Components.Converter.ExtendedServiceInfo.ExtendedServiceInfo. Bases: Converter.

        Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

        Direct upstream accesses declared here: service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

        Upstream accesses in base classes
        • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
        Effective Python properties (2) and value/range constants

        These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

        Arguments, defaults and skin parsing — exact implementation

        Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

        Class-level constants and option maps
        SERVICENAME = 0
        SERVICENUMBER = 1
        ORBITALPOSITION = 2
        SATNAME = 3
        PROVIDER = 4
        FROMCONFIG = 5
        ALL = 6
        ExtendedServiceInfo.__init__(self, tokens)

        Implementation, line 20 ↗

        def __init__(self, tokens):
        	Converter.__init__(self, tokens)
        	self.satNames = {}
        	self.readSatXml()
        	self.getLists()
        	self.type = {
        		"Config": self.FROMCONFIG,
        		"OrbitalPosition": self.ORBITALPOSITION,
        		"Provider": self.PROVIDER,
        		"SatName": self.SATNAME,
        		"ServiceName": self.SERVICENAME,
        		"ServiceNumber": self.SERVICENUMBER
        	}.get(tokens, self.ALL)
        
        Converter.__init__(self, tokens)

        Implementation, line 5 ↗

        def __init__(self, tokens):
        	Element.__init__(self)
        	self.converter_arguments = tokens
        
        Element.__init__(self)

        Implementation, line 18 ↗

        def __init__(self):
        	self.downstream_elements = CList()
        	self.master = None
        	self.sources = []
        	self.source = None
        	self.__suspended = True
        	self.cache = None
        	self.onChanged = []
        
        Declared methods (8) and inherited methods (10)

        Inherited methods

        ExtremeInfo

        lib/python/Components/Converter/ExtremeInfo.py, line 9 ↗

        Class: Components.Converter.ExtremeInfo.ExtremeInfo. Bases: Poll, Converter.

        Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

        Direct upstream accesses declared here: service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

        Upstream accesses in base classes
        • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
        Effective Python properties (5) and value/range constants

        These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

        Arguments, defaults and skin parsing — exact implementation

        Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

        Class-level constants and option maps
        TUNERINFO = 0
        CAMNAME = 1
        NUMBER = 2
        ECMINFO = 3
        IRDCRYPT = 4
        SECACRYPT = 5
        NAGRACRYPT = 6
        VIACRYPT = 7
        CONAXCRYPT = 8
        BETACRYPT = 9
        CRWCRYPT = 10
        DREAMCRYPT = 11
        NDSCRYPT = 12
        IRDECM = 13
        SECAECM = 14
        NAGRAECM = 15
        VIAECM = 16
        CONAXECM = 17
        BETAECM = 18
        CRWECM = 19
        DREAMECM = 20
        NDSECM = 21
        CAIDINFO = 22
        FTA = 23
        EMU = 24
        CRD = 25
        NET = 26
        TUNERINFOBP = 27
        BISCRYPT = 28
        BISECM = 29
        MGCAMD = 30
        BULCRYPT = 31
        BULECM = 32
        SATELLITES = {3590: 'Thor/Intelsat (1.0W)', 3560: 'Amos (4.0W)', 3550: 'Atlantic Bird (5.0W)', 3530: 'Nilesat/Atlantic Bird (7.0W)', 3520: 'Atlantic Bird (8.0W)', 3475: 'Atlantic Bird (12.5W)', 3460: 'Express (14.0W)', 3450: 'Telstar (15.0W)', 3420: 'Intelsat (18.0W)', 3380: 'Nss (22.0W)', 3355: 'Intelsat (24.5W)', 3325: 'Intelsat (27.5W)', 3300: 'Hispasat (30.0W)', 3285: 'Intelsat (31.5W)', 3170: 'Intelsat (43.0W)', 3150: 'Intelsat (45.0W)', 3070: 'Intelsat (53.0W)', 3045: 'Intelsat (55.5W)', 3020: 'Intelsat 9 (58.0W)', 2990: 'Amazonas (61.0W)', 2900: 'Star One (70.0W)', 2880: 'AMC 6 (72.0W)', 2875: 'Echostar 6 (72.7W)', 2860: 'Horizons (74.0W)', 2810: 'AMC5 (79.0W)', 2780: 'NIMIQ 4 (82.0W)', 2690: 'NIMIQ 1 (91.0W)', 3592: 'Thor/Intelsat (0.8W)', 2985: 'Echostar 3,12 (61.5W)', 2830: 'Echostar 8 (77.0W)', 2630: 'Galaxy 19 (97.0W)', 2500: 'Echostar 10,11 (110.0W)', 2502: 'DirectTV 5 (110.0W)', 2410: 'Echostar 7 Anik F3 (119.0W)', 2391: 'Galaxy 23 (121.0W)', 2390: 'Echostar 9 (121.0W)', 2412: 'DirectTV 7S (119.0W)', 2310: 'Galaxy 27 (129.0W)', 2311: 'Ciel 2 (129.0W)', 2120: 'Echostar 2 (148.0W)', 1100: 'BSat 1A,2A (110.0E)', 1101: 'N-Sat 110 (110.0E)', 1131: 'KoreaSat 5 (113.0E)', 1440: 'SuperBird 7,C2 (144.0E)', 1006: 'AsiaSat 2 (100.5E)', 1030: 'Express A2 (103.0E)', 1056: 'Asiasat 3S (105.5E)', 1082: 'NSS 11 (108.2E)', 881: 'ST1 (88.0E)', 900: 'Yamal 201 (90.0E)', 917: 'Mesat (91.5E)', 950: 'Insat 4B (95.0E)', 951: 'NSS 6 (95.0E)', 765: 'Telestar (76.5E)', 785: 'ThaiCom 5 (78.5E)', 800: 'Express (80.0E)', 830: 'Insat 4A (83.0E)', 850: 'Intelsat 709 (85.2E)', 750: 'Abs (75.0E)', 720: 'Intelsat (72.0E)', 705: 'Eutelsat W5 (70.5E)', 685: 'Intelsat (68.5E)', 620: 'Intelsat 902 (62.0E)', 600: 'Intelsat 904 (60.0E)', 570: 'Nss (57.0E)', 530: 'Express AM22 (53.0E)', 480: 'Eutelsat 2F2 (48.0E)', 450: 'Intelsat (45.0E)', 420: 'Turksat 2A (42.0E)', 400: 'Express AM1 (40.0E)', 390: 'Hellas Sat 2 (39.0E)', 380: 'Paksat 1 (38.0E)', 360: 'Eutelsat Sesat (36.0E)', 335: 'Astra 1M (33.5E)', 330: 'Eurobird 3 (33.0E)', 328: 'Galaxy 11 (32.8E)', 315: 'Astra 5A (31.5E)', 310: 'Turksat (31.0E)', 305: 'Arabsat (30.5E)', 285: 'Eurobird 1 (28.5E)', 284: 'Eurobird/Astra (28.2E)', 282: 'Eurobird/Astra (28.2E)', 1220: 'AsiaSat (122.0E)', 1380: 'Telstar 18 (138.0E)', 260: 'Badr 3/4 (26.0E)', 255: 'Eurobird 2 (25.5E)', 235: 'Astra 1E (23.5E)', 215: 'Eutelsat (21.5E)', 216: 'Eutelsat W6 (21.6E)', 210: 'AfriStar 1 (21.0E)', 192: 'Astra 1F (19.2E)', 160: 'Eutelsat W2 (16.0E)', 130: 'Hot Bird 6,7A,8 (13.0E)', 100: 'Eutelsat W1 (10.0E)', 90: 'Eurobird 9 (9.0E)', 70: 'Eutelsat W3A (7.0E)', 50: 'Sirius 4 (5.0E)', 48: 'Sirius 4 (4.8E)', 30: 'Telecom 2 (3.0E)'}
        ExtremeInfo.__init__(self, tokens)

        Implementation, line 154 ↗

        def __init__(self, tokens):
        	Poll.__init__(self)
        	Converter.__init__(self, tokens)
        	self.list = []
        	self.getLists()
        	self.type = {
        		"BetaCrypt": self.BETACRYPT,
        		"BetaEcm": self.BETAECM,
        		"BisCrypt": self.BISCRYPT,
        		"BisEcm": self.BISECM,
        		"BulCrypt": self.BULCRYPT,
        		"BulEcm": self.BULECM,
        		"CaidInfo": self.CAIDINFO,
        		"CamName": self.CAMNAME,
        		"ConaxCrypt": self.CONAXCRYPT,
        		"ConaxEcm": self.CONAXECM,
        		"Crd": self.CRD,
        		"CrwCrypt": self.CRWCRYPT,
        		"CrwEcm": self.CRWECM,
        		"DreamCrypt": self.DREAMCRYPT,
        		"DreamEcm": self.DREAMECM,
        		"EcmInfo": self.ECMINFO,
        		"Emu": self.EMU,
        		"Fta": self.FTA,
        		"IrdCrypt": self.IRDCRYPT,
        		"IrdEcm": self.IRDECM,
        		"Mgcamd": self.MGCAMD,
        		"NagraCrypt": self.NAGRACRYPT,
        		"NagraEcm": self.NAGRAECM,
        		"NdsCrypt": self.NDSCRYPT,
        		"NdsEcm": self.NDSECM,
        		"Net": self.NET,
        		"Number": self.NUMBER,
        		"SecaCrypt": self.SECACRYPT,
        		"SecaEcm": self.SECAECM,
        		"TunerInfo": self.TUNERINFO,
        		"TunerInfoBP": self.TUNERINFOBP,
        		"ViaCrypt": self.VIACRYPT,
        		"ViaEcm": self.VIAECM
        		# This is for future enhancement.
        		# "Camd3": self.CAMD3,
        		# "Cccam": self.CCAM,
        		# "Gbox": self.GBOX,
        		# "Incubus": self.INCUBUS,
        		# "Mbox": self.MBOX,
        		# "Oscam": self.OSCAM,
        		# "Wicardd": self.WICARDD
        	}.get(tokens, self.TUNERINFO)
        
        Poll.__init__(self)

        Implementation, line 5 ↗

        def __init__(self):
        	self.__poll_timer = eTimer()
        	self.__poll_timer.callback.append(self.poll)
        	self.__interval = 1000
        	self.__enabled = False
        
        Converter.__init__(self, tokens)

        Implementation, line 5 ↗

        def __init__(self, tokens):
        	Element.__init__(self)
        	self.converter_arguments = tokens
        
        Element.__init__(self)

        Implementation, line 18 ↗

        def __init__(self):
        	self.downstream_elements = CList()
        	self.master = None
        	self.sources = []
        	self.source = None
        	self.__suspended = True
        	self.cache = None
        	self.onChanged = []
        
        Declared methods (21) and inherited methods (11)

        Inherited methods

        FrontendInfo

        Converts frontend measurements and tuner status to text, boolean or value/range. Not every mode supports every output property; see the mode-specific assertions and recipes.

        lib/python/Components/Converter/FrontendInfo.py, line 10 ↗

        Class: Components.Converter.FrontendInfo.FrontendInfo. Bases: Converter.

        Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

        Direct upstream accesses declared here: agc, ber, frontend_type, lock, slot_number, snr, snr_db, tuner_mask. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

        Upstream accesses in base classes
        • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
        Effective Python properties (4) and value/range constants

        These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

        range = 65536 — Components.Converter.FrontendInfo.FrontendInfo

        Arguments, defaults and skin parsing — exact implementation

        Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

        Class-level constants and option maps
        BER = 0
        SNR = 1
        AGC = 2
        LOCK = 3
        SNRdB = 4
        SLOT_NUMBER = 5
        TUNER_TYPE = 6
        STRING = 7
        REC_TUNER = 8
        TUNERS = 9
        SNR_STREAM = 10
        range = 65536
        FrontendInfo.__init__(self, tokens)

        Implementation, line 25 ↗

        def __init__(self, tokens):
        	def checkColor(color, default):
        		if color in ("", "Default"):
        			color = default
        		return None if color == "None" else rf"\c{parseColor(color, default).argb():08X}"
        
        	Converter.__init__(self, tokens)
        	if tokens.startswith("STRING"):  # "STRING[,spaceForTuners[,spaceForTunersWithSpaces]]"
        		self.type = self.STRING
        		data = [x.strip() for x in tokens.split(",")]
        		self.spaceForTuners = len(data) > 1 and int(data[1]) or 10
        		self.spaceForTunersWithSpaces = len(data) > 2 and int(data[2]) or 6
        	elif tokens.startswith("TUNERS"):  # "TUNERS[,idleColor[,activeColor[,recordingColor[,disabledColor[,spacer]]]]]"
        		self.type = self.TUNERS
        		data = [x.strip() for x in tokens.split(",", 5)]
        		self.idleColor = checkColor(data[1], "#00CFCFCF") if len(data) > 1 and data[1] else r"\c00CFCFCF"
        		self.activeColor = checkColor(data[2], "#0000FF00") if len(data) > 2 and data[2] else r"\c0000FF00"
        		self.recordingColor = checkColor(data[3], "#00FF0000") if len(data) > 3 and data[3] else r"\c00FF0000"
        		self.disabledColor = checkColor(data[4], "#006F6F6F") if len(data) > 4 and data[4] else r"\c006F6F6F"
        		if len(data) > 5 and data[5]:
        			spacer = data[5]
        			self.spacer = spacer[1:-1] if len(spacer) > 1 and spacer[0] == spacer[-1] else spacer
        		else:
        			self.spacer = " "
        	elif tokens.split("_")[0] == "REC":
        		self.type = self.REC_TUNER
        		self.tunerNum = int(tokens.split("_")[1])
        	else:
        		self.type = {
        			"AGC": self.AGC,
        			"BER": self.BER,
        			"NUMBER": self.SLOT_NUMBER,
        			"SNR": self.SNR,
        			"SNRStream": self.SNR_STREAM,
        			"SNRdB": self.SNRdB,
        			"TYPE": self.TUNER_TYPE
        		}.get(tokens, self.LOCK)
        	self.recordTimer = None
        	if self.type in (self.TUNERS, self.REC_TUNER) and NavigationInstance.instance:
        		self.recordTimer = NavigationInstance.instance.RecordTimer
        		self.recordTimer.on_state_change.append(self.recordTimerStateChanged)
        
        Converter.__init__(self, tokens)

        Implementation, line 5 ↗

        def __init__(self, tokens):
        	Element.__init__(self)
        	self.converter_arguments = tokens
        
        Element.__init__(self)

        Implementation, line 18 ↗

        def __init__(self):
        	self.downstream_elements = CList()
        	self.master = None
        	self.sources = []
        	self.source = None
        	self.__suspended = True
        	self.cache = None
        	self.onChanged = []
        
        Declared methods (8) and inherited methods (10)

        Inherited methods

        HbbtvApplicationInfo

        lib/python/Components/Converter/HbbtvApplicationInfo.py, line 5 ↗

        Class: Components.Converter.HbbtvApplicationInfo.HbbtvApplicationInfo. Bases: Converter.

        Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

        Direct upstream accesses declared here: name. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

        Upstream accesses in base classes
        • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
        Effective Python properties (2) and value/range constants

        These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

        Arguments, defaults and skin parsing — exact implementation

        Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

        Class-level constants and option maps
        NAME = 0
        HbbtvApplicationInfo.__init__(self, tokens)

        Implementation, line 8 ↗

        def __init__(self, tokens):
        	Converter.__init__(self, tokens)
        	self.type = self.NAME if tokens == "Name" else ""
        
        Converter.__init__(self, tokens)

        Implementation, line 5 ↗

        def __init__(self, tokens):
        	Element.__init__(self)
        	self.converter_arguments = tokens
        
        Element.__init__(self)

        Implementation, line 18 ↗

        def __init__(self):
        	self.downstream_elements = CList()
        	self.master = None
        	self.sources = []
        	self.source = None
        	self.__suspended = True
        	self.cache = None
        	self.onChanged = []
        
        Declared methods (2) and inherited methods (11)

        Inherited methods

        MenuEntryCompare

        lib/python/Components/Converter/MenuEntryCompare.py, line 5 ↗

        Class: Components.Converter.MenuEntryCompare.MenuEntryCompare. Bases: Converter.

        Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

        Direct upstream accesses declared here: current, onSelectionChanged. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

        Upstream accesses in base classes
        • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
        Effective Python properties (2) and value/range constants

        These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

        Arguments, defaults and skin parsing — exact implementation

        Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

        MenuEntryCompare.__init__(self, tokens)

        Implementation, line 6 ↗

        def __init__(self, tokens):
        	Converter.__init__(self, tokens)
        	self.entry_id = tokens
        
        Converter.__init__(self, tokens)

        Implementation, line 5 ↗

        def __init__(self, tokens):
        	Element.__init__(self)
        	self.converter_arguments = tokens
        
        Element.__init__(self)

        Implementation, line 18 ↗

        def __init__(self):
        	self.downstream_elements = CList()
        	self.master = None
        	self.sources = []
        	self.source = None
        	self.__suspended = True
        	self.cache = None
        	self.onChanged = []
        
        Declared methods (4) and inherited methods (10)

        Inherited methods

        MovieInfo

        lib/python/Components/Converter/MovieInfo.py, line 10 ↗

        Class: Components.Converter.MovieInfo.MovieInfo. Bases: Converter.

        Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

        Direct upstream accesses declared here: event, info, service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

        Upstream accesses in base classes
        • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
        Effective Python properties (2) and value/range constants

        These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

        Arguments, defaults and skin parsing — exact implementation

        Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

        Class-level constants and option maps
        MOVIE_SHORT_DESCRIPTION = 0
        MOVIE_META_DESCRIPTION = 1
        MOVIE_REC_SERVICE_NAME = 2
        MOVIE_REC_SERVICE_REF = 3
        MOVIE_REC_FILESIZE = 4
        MOVIE_NAME = 5
        MOVIE_FULL_DESCRIPTION = 6
        MovieInfo.__init__(self, tokens)

        Implementation, line 19 ↗

        def __init__(self, tokens):
        	self.type = {
        		"FileSize": self.MOVIE_REC_FILESIZE,
        		"FullDescription": self.MOVIE_FULL_DESCRIPTION,
        		"MetaDescription": self.MOVIE_META_DESCRIPTION,
        		"Name": self.MOVIE_NAME,
        		"RecordServiceName": self.MOVIE_REC_SERVICE_NAME,
        		"RecordServiceRef": self.MOVIE_REC_SERVICE_REF,
        		"Reference": self.MOVIE_REC_SERVICE_REF,
        		"ShortDescription": self.MOVIE_SHORT_DESCRIPTION
        	}.get(tokens)
        	if self.type is None:
        		raise ElementError(f"'{tokens}' is not <ShortDescription|MetaDescription|FullDescription|RecordServiceName|FileSize> for MovieInfo converter")
        	Converter.__init__(self, tokens)
        
        Converter.__init__(self, tokens)

        Implementation, line 5 ↗

        def __init__(self, tokens):
        	Element.__init__(self)
        	self.converter_arguments = tokens
        
        Element.__init__(self)

        Implementation, line 18 ↗

        def __init__(self):
        	self.downstream_elements = CList()
        	self.master = None
        	self.sources = []
        	self.source = None
        	self.__suspended = True
        	self.cache = None
        	self.onChanged = []
        
        Declared methods (2) and inherited methods (11)

        Inherited methods

        MovieReference

        lib/python/Components/Converter/MovieReference.py, line 16 ↗

        Class: Components.Converter.MovieReference.MovieReference. Bases: Converter.

        Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

        Direct upstream accesses declared here: info, service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

        Upstream accesses in base classes
        • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
        Effective Python properties (2) and value/range constants

        These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

        Arguments, defaults and skin parsing — exact implementation

        Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

        MovieReference.__init__(self, tokens)

        Implementation, line 17 ↗

        def __init__(self, tokens):
        	Converter.__init__(self, tokens)
        
        Converter.__init__(self, tokens)

        Implementation, line 5 ↗

        def __init__(self, tokens):
        	Element.__init__(self)
        	self.converter_arguments = tokens
        
        Element.__init__(self)

        Implementation, line 18 ↗

        def __init__(self):
        	self.downstream_elements = CList()
        	self.master = None
        	self.sources = []
        	self.source = None
        	self.__suspended = True
        	self.cache = None
        	self.onChanged = []
        
        Declared methods (2) and inherited methods (11)

        Inherited methods

        PliExtraInfo

        lib/python/Components/Converter/PliExtraInfo.py, line 39 ↗

        Class: Components.Converter.PliExtraInfo.PliExtraInfo. Bases: Converter, Poll.

        Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

        Direct upstream accesses declared here: service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

        Upstream accesses in base classes
        • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
        Effective Python properties (5) and value/range constants

        These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

        Arguments, defaults and skin parsing — exact implementation

        Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

        Class-level constants and option maps
        satelliteNames = {30: 'Rascom/Eutelsat 3E', 48: 'SES 5', 70: 'Eutelsat 7E', 90: 'Eutelsat 9E', 100: 'Eutelsat 10E', 130: 'Hot Bird', 160: 'Eutelsat 16E', 192: 'Astra 1KR/1LMNP', 200: 'Arabsat 20E', 216: 'Eutelsat 21.5E', 235: 'Astra 3', 255: 'Eutelsat 25.5E', 260: 'Badr 4/5/6', 282: 'Astra 2E/2F/2G', 305: 'Arabsat 30.5E', 315: 'Astra 5', 330: 'Eutelsat 33E', 360: 'Eutelsat 36E', 380: 'Paksat', 390: 'Hellas Sat', 400: 'Express 40E', 420: 'Turksat', 450: 'Intelsat 45E', 480: 'Afghansat', 490: 'Yamal 49E', 530: 'Express 53E', 570: 'NSS 57E', 600: 'Intelsat 60E', 620: 'Intelsat 62E', 685: 'Intelsat 68.5E', 705: 'Eutelsat 70.5E', 720: 'Intelsat 72E', 750: 'ABS', 765: 'Apstar', 785: 'ThaiCom', 800: 'Express 80E', 830: 'Insat', 851: 'Intelsat/Horizons', 880: 'ST2', 900: 'Yamal 90E', 915: 'Mesat', 950: 'NSS/SES 95E', 1005: 'AsiaSat 100E', 1030: 'Express 103E', 1055: 'Asiasat 105E', 1082: 'NSS/SES 108E', 1100: 'BSat/NSAT', 1105: 'ChinaSat', 1130: 'KoreaSat', 1222: 'AsiaSat 122E', 1380: 'Telstar 18', 1440: 'SuperBird', 2310: 'Ciel', 2390: 'Echostar/Galaxy 121W', 2410: 'Echostar/DirectTV 119W', 2500: 'Echostar/DirectTV 110W', 2630: 'Galaxy 97W', 2690: 'NIMIQ 91W', 2780: 'NIMIQ 82W', 2830: 'Echostar/QuetzSat', 2880: 'AMC 72W', 2900: 'Star One', 2985: 'Echostar 61.5W', 2990: 'Amazonas', 3020: 'Intelsat 58W', 3045: 'Intelsat 55.5W', 3070: 'Intelsat 53W', 3100: 'Intelsat 50W', 3150: 'Intelsat 45W', 3169: 'Intelsat 43.1W', 3195: 'SES 40.5W', 3225: 'NSS/Telstar 37W', 3255: 'Intelsat 34.5W', 3285: 'Intelsat 31.5W', 3300: 'Hispasat', 3325: 'Intelsat 27.5W', 3355: 'Intelsat 24.5W', 3380: 'SES 22W', 3400: 'NSS 20W', 3420: 'Intelsat 18W', 3450: 'Telstar 15W', 3460: 'Express 14W', 3475: 'Eutelsat 12.5W', 3490: 'Express 11W', 3520: 'Eutelsat 8W', 3530: 'Nilesat/Eutelsat 7W', 3550: 'Eutelsat 5W', 3560: 'Amos', 3592: 'Thor/Intelsat'}
        caTable = (('CryptoCaidSecaAvailable', 'S', False), ('CryptoCaidViaAvailable', 'V', False), ('CryptoCaidIrdetoAvailable', 'I', False), ('CryptoCaidNDSAvailable', 'Nd', False), ('CryptoCaidConaxAvailable', 'Co', False), ('CryptoCaidCryptoWAvailable', 'Cw', False), ('CryptoCaidPowerVUAvailable', 'P', False), ('CryptoCaidBetaAvailable', 'B', False), ('CryptoCaidNagraAvailable', 'N', False), ('CryptoCaidBissAvailable', 'Bi', False), ('CryptoCaidDre3Available', 'D3', False), ('CryptoCaidDreAvailable', 'D', False), ('CryptoCaidBulCrypt1Available', 'B1', False), ('CryptoCaidBulCrypt2Available', 'B2', False), ('CryptoCaidTandbergAvailable', 'T', False), ('CryptoCaidSecaSelected', 'S', True), ('CryptoCaidViaSelected', 'V', True), ('CryptoCaidIrdetoSelected', 'I', True), ('CryptoCaidNDSSelected', 'Nd', True), ('CryptoCaidConaxSelected', 'Co', True), ('CryptoCaidCryptoWSelected', 'Cw', True), ('CryptoCaidPowerVUSelected', 'P', True), ('CryptoCaidBetaSelected', 'B', True), ('CryptoCaidNagraSelected', 'N', True), ('CryptoCaidBissSelected', 'Bi', True), ('CryptoCaidDre3Selected', 'D3', True), ('CryptoCaidDreSelected', 'D', True), ('CryptoCaidBulCrypt1Selected', 'B1', True), ('CryptoCaidBulCrypt2Selected', 'B2', True), ('CryptoCaidTandbergSelected', 'T', True))
        cryptoData = {'CryptoSeca': ('0x100', '0x1ff', 'S'), 'CryptoVia': ('0x500', '0x5ff', 'V'), 'CryptoIrdeto': ('0x600', '0x6ff', 'I'), 'CryptoNDS': ('0x900', '0x9ff', 'NDS'), 'CryptoConax': ('0xb00', '0xbff', 'CO'), 'CryptoCryptoW': ('0xd00', '0xdff', 'CW'), 'CryptoBeta': ('0x1700', '0x17ff', 'B'), 'CryptoNagra': ('0x1800', '0x18ff', 'N'), 'CryptoBiss': ('0x2600', '0x26ff', 'BI'), 'CryptoDre': ('0x4ae0', '0x4ae1', 'DC'), 'CryptoTandberg': ('0x1010', '0x1010', 'T'), 'CryptoPowerVU': ('0xe00', '0xeff', 'P')}
        PliExtraInfo.__init__(self, tokens)

        Implementation, line 178 ↗

        def __init__(self, tokens):
        	Converter.__init__(self, tokens)
        	Poll.__init__(self)
        	self.type = tokens
        	self.cryptoColors = parameters.get("PliExtraInfoCryptoColors", ("#004C7D3F", "#009F9F9F", "#00EEEE00", "#00FFFFFF"))
        	self.cryptoColors = [rf"\c{parseColor(x).argb():08X}" for x in self.cryptoColors]
        	self.infoColors = parameters.get("PliExtraInfoColors", ("#0000FF00", "#00FFFF00", "#007F7F7F", "#00FFFFFF"))  # "Found", "Not found", "Available", "Default" colors.
        	self.infoColors = [rf"\c{parseColor(x).argb():08X}" for x in self.infoColors]
        	self.poll_interval = 1000  # This is a shared variable!
        	self.poll_enabled = True  # This is a shared variable!
        	self.ecmData = GetEcmInfo()
        	self.feRaw = None
        	self.feData = None
        	self.feDataUpdate = None
        
        Converter.__init__(self, tokens)

        Implementation, line 5 ↗

        def __init__(self, tokens):
        	Element.__init__(self)
        	self.converter_arguments = tokens
        
        Element.__init__(self)

        Implementation, line 18 ↗

        def __init__(self):
        	self.downstream_elements = CList()
        	self.master = None
        	self.sources = []
        	self.source = None
        	self.__suspended = True
        	self.cache = None
        	self.onChanged = []
        
        Poll.__init__(self)

        Implementation, line 5 ↗

        def __init__(self):
        	self.__poll_timer = eTimer()
        	self.__poll_timer.callback.append(self.poll)
        	self.__interval = 1000
        	self.__enabled = False
        
        Declared methods (27) and inherited methods (11)

        Inherited methods

        Poll

        Polling helper mixed into converters. Poll does not inherit Converter and is not a standalone XML converter.

        lib/python/Components/Converter/Poll.py, line 4 ↗

        Class: Components.Converter.Poll.Poll. Bases: none.

        Helper: does not inherit Converter. Use a concrete implementation for a skin chain.

        Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

        Effective Python properties (2) and value/range constants

        These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

        Arguments, defaults and skin parsing — exact implementation

        Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

        Poll.__init__(self)

        Implementation, line 5 ↗

        def __init__(self):
        	self.__poll_timer = eTimer()
        	self.__poll_timer.callback.append(self.poll)
        	self.__interval = 1000
        	self.__enabled = False
        
        Declared methods (6) and inherited methods (0)

        Inherited methods

          ProgressToText

          lib/python/Components/Converter/ProgressToText.py, line 5 ↗

          Class: Components.Converter.ProgressToText.ProgressToText. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: range, value. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          ProgressToText.__init__(self, tokens)

          Implementation, line 6 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.in_percent = "InPercent" in tokens.split(",")
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (2) and inherited methods (11)

          Inherited methods

          pstrCnvrt

          lib/python/Components/Converter/pstrCnvrt.py, line 13 ↗

          Class: Components.Converter.pstrCnvrt.pstrCnvrt. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: event. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          pstrCnvrt.__init__(self, tokens)

          Implementation, line 14 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.type = tokens
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (4) and inherited methods (11)

          Inherited methods

          RdsInfo

          lib/python/Components/Converter/RdsInfo.py, line 7 ↗

          Class: Components.Converter.RdsInfo.RdsInfo. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: decoder, navcore. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (3) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          RASS_INTERACTIVE_AVAILABLE = 0
          RTP_TEXT_CHANGED = 1
          RADIO_TEXT_CHANGED = 2
          RTP_TEXT_WITHOUT_EVENT = 3
          RADIO_TEXT_WITHOUT_CURRENT_EVENT = 4
          RdsInfo.__init__(self, tokens)

          Implementation, line 14 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.type, self.interesting_events = {
          		"RadioText": (self.RADIO_TEXT_CHANGED, (iPlayableService.evUpdatedRadioText,)),
          		"RadioTextIfNoEvent": (self.RADIO_TEXT_WITHOUT_CURRENT_EVENT, (iPlayableService.evUpdatedRadioText, iPlayableService.evUpdatedEventInfo)),
          		"RasInteractiveAvailable": (self.RASS_INTERACTIVE_AVAILABLE, (iPlayableService.evUpdatedRassInteractivePicMask,)),
          		"RtpText": (self.RTP_TEXT_CHANGED, (iPlayableService.evUpdatedRtpText,)),
          		"RtpTextIfNoEvent": (self.RTP_TEXT_WITHOUT_EVENT, (iPlayableService.evUpdatedRtpText, iPlayableService.evUpdatedEventInfo))
          	}[tokens]
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (5) and inherited methods (10)

          Inherited methods

          RemainingToText

          lib/python/Components/Converter/RemainingToText.py, line 8 ↗

          Class: Components.Converter.RemainingToText.RemainingToText. Bases: Converter, Poll.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: time. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (4) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          DEFAULT = 0
          IN_SECONDS = 1
          IN_SECONDS_VFD = 7
          NO_SECONDS = 2
          NO_SECONDS_VFD = 8
          ONLY_MINUTE = 3
          ONLY_MINUTE2 = 4
          PERCENTAGE = 5
          PERCENTAGE_VFD = 9
          VFD = 6
          WITH_SECONDS = 11
          WITH_SECONDS_VFD = 10
          RemainingToText.__init__(self, tokens)

          Implementation, line 22 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	Poll.__init__(self)
          	self.token, self.poll_interval = {
          		"Default": (self.DEFAULT, 0),
          		"InSeconds": (self.IN_SECONDS, 1000),
          		"NoSeconds": (self.NO_SECONDS, 1000),
          		"OnlyMinute": (self.ONLY_MINUTE, 0),
          		"OnlyMinute2": (self.ONLY_MINUTE2, 0),
          		"Percentage": (self.PERCENTAGE, 60000),
          		"VFD": (self.VFD, 0),
          		"VFDInSeconds": (self.IN_SECONDS_VFD, 1000),
          		"VFDNoSeconds": (self.NO_SECONDS_VFD, 60000),
          		"VFDPercentage": (self.PERCENTAGE_VFD, 60000),
          		"VFDWithSeconds": (self.WITH_SECONDS_VFD, 1000),
          		"WithSeconds": (self.WITH_SECONDS, 1000)
          	}.get(tokens, (None, 0))
          	if tokens and self.token is None:
          		print(f"[RemainingToText] Error: Converter argument '{tokens}' is invalid!")
          	if self.token is None:
          		self.token = self.DEFAULT
          	if config.usage.swap_time_display_on_osd.value in ("1", "3", "5") or config.usage.swap_time_display_on_vfd.value in ("1", "3", "5"):
          		self.poll_interval = 60000
          	elif config.usage.swap_time_display_on_osd.value in ("2", "4") or config.usage.swap_time_display_on_vfd.value in ("2", "4"):
          		self.poll_interval = 1000
          	if self.poll_interval:
          		self.poll_enabled = True
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Poll.__init__(self)

          Implementation, line 5 ↗

          def __init__(self):
          	self.__poll_timer = eTimer()
          	self.__poll_timer.callback.append(self.poll)
          	self.__interval = 1000
          	self.__enabled = False
          
          Declared methods (2) and inherited methods (12)

          Inherited methods

          RemoteControlInfo

          lib/python/Components/Converter/RemoteControlInfo.py, line 19 ↗

          Class: Components.Converter.RemoteControlInfo.RemoteControlInfo. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (4) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          range = 100 — Components.Converter.RemoteControlInfo.RemoteControlInfo

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          BATTERY = 0
          BATTERY_LOW = 1
          SIGNAL = 2
          NAME = 3
          CONNECTED = 4
          range = 100
          RemoteControlInfo.__init__(self, type)

          Implementation, line 26 ↗

          def __init__(self, type):
          	Converter.__init__(self, type)
          	self.type = {
          		"Battery": self.BATTERY,
          		"BatteryLow": self.BATTERY_LOW,
          		"Signal": self.SIGNAL,
          		"Name": self.NAME,
          		"Connected": self.CONNECTED
          	}.get(type, self.BATTERY)
          	self.manager = eInputDeviceManager.getInstance()
          	if self.manager:
          		self.manager.getDeviceListChanged().append(self.deviceListChanged)
          		self.manager.getDeviceStateChanged().append(self.deviceStateChanged)
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (8) and inherited methods (10)

          Inherited methods

          SCServicePosition

          lib/python/Components/Converter/SCServicePosition.py, line 10 ↗

          Class: Components.Converter.SCServicePosition.SCServicePosition. Bases: Poll, Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (8) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          range = 10000 — Components.Converter.SCServicePosition.SCServicePosition

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          TYPE_LENGTH = 0
          TYPE_POSITION = 1
          TYPE_REMAINING = 2
          TYPE_GAUGE = 3
          TYPE_ENDTIME = 4
          range = 10000
          SCServicePosition.__init__(self, tokens)

          Implementation, line 17 ↗

          def __init__(self, tokens):
          	Poll.__init__(self)
          	Converter.__init__(self, tokens)
          	args = tokens.split(",")
          	self.type = {
          		"EndTime": self.TYPE_ENDTIME,
          		"Gauge": self.TYPE_GAUGE,
          		"Length": self.TYPE_LENGTH,
          		"Position": self.TYPE_POSITION,
          		"Remaining": self.TYPE_REMAINING
          	}.get(args.pop(0))
          	if self.type is None:
          		raise ElementError("type must be {Length|Position|Remaining|Gauge|EndTime} with optional arguments {Negate|Detailed|ShowHours|ShowNoSeconds} for SCServicePosition converter")
          	self.negate = "Negate" in args
          	self.detailed = "Detailed" in args
          	self.showHours = "ShowHours" in args
          	self.showNoSeconds = "ShowNoSeconds" in args
          	# FIXME: The original code checked "elif self.TYPE_ENDTIME:" which is always true, so every type
          	# that is not detailed polls with 1000. The intended values were 1000 for EndTime, 2000 for Length and 500 for all others.
          	self.poll_interval = 100 if self.detailed else 1000
          	self.poll_enabled = True
          
          Poll.__init__(self)

          Implementation, line 5 ↗

          def __init__(self):
          	self.__poll_timer = eTimer()
          	self.__poll_timer.callback.append(self.poll)
          	self.__interval = 1000
          	self.__enabled = False
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (8) and inherited methods (11)

          Inherited methods

          SensorToText

          lib/python/Components/Converter/SensorToText.py, line 4 ↗

          Class: Components.Converter.SensorToText.SensorToText. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: getUnit, getValue. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          SensorToText.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (2) and inherited methods (11)

          Inherited methods

          ServiceInfo

          Provides selected service information as text, booleans or numeric properties. Match the chosen mode to the renderer's expected input.

          lib/python/Components/Converter/ServiceInfo.py, line 13 ↗

          Class: Components.Converter.ServiceInfo.ServiceInfo. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: editmode, service. Attribute probes: editmode, isDVBI. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (4) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          APID = 0
          AUDIOTRACKS_AVAILABLE = 1
          EDITMODE = 2
          FRAMERATE = 3
          FREQUENCY_INFORMATION = 4
          HAS_HBBTV = 5
          HAS_TELETEXT = 6
          IS_1080 = 7
          IS_480 = 8
          IS_4K = 9
          IS_576 = 10
          IS_720 = 11
          IS_CRYPTED = 12
          IS_HD = 13
          IS_HDHDR = 14
          IS_HDR = 15
          IS_HDR10 = 16
          IS_HLG = 17
          IS_MULTICHANNEL = 18
          IS_NOT_WIDESCREEN = 19
          IS_SD = 20
          IS_SDR = 21
          IS_SD_AND_NOT_WIDESCREEN = 22
          IS_SD_AND_WIDESCREEN = 23
          IS_STEREO = 24
          IS_STREAM = 25
          IS_VIDEO_AVC = 26
          IS_VIDEO_HEVC = 27
          IS_VIDEO_MPEG2 = 28
          IS_WIDESCREEN = 29
          ONID = 30
          PCRPID = 31
          PMTPID = 32
          PROGRESSIVE = 33
          PROVIDER = 34
          REFERENCE = 35
          SID = 36
          SUBSERVICES_AVAILABLE = 37
          SUBTITLES_AVAILABLE = 38
          TRANSFERBPS = 39
          TSID = 40
          TXTPID = 41
          VIDEO_INFORMATION = 42
          VIDEO_SIZE = 43
          VPID = 44
          XRES = 45
          YRES = 46
          IS_SOFTCSA = 47
          IS_DAB = 48
          IS_DVBI = 49
          VIDEO_INFO_WIDTH = 0
          VIDEO_INFO_HEIGHT = 1
          VIDEO_INFO_FRAME_RATE = 2
          VIDEO_INFO_PROGRESSIVE = 3
          VIDEO_INFO_ASPECT = 4
          VIDEO_INFO_GAMMA = 5
          ServiceInfo.__init__(self, tokens)

          Implementation, line 72 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	# Poll.__init__(self)
          	# self.poll_interval = 10000
          	# self.poll_enabled = True
          	self.argument = tokens
          	self.token, self.interestingEvents = {
          		"AudioPid": (self.APID, (iPlayableService.evUpdatedInfo,)),
          		"AudioTracksAvailable": (self.AUDIOTRACKS_AVAILABLE, (iPlayableService.evUpdatedInfo,)),
          		"EditMode": (self.EDITMODE, (iPlayableService.evUpdatedInfo,)),
          		"Editmode": (self.EDITMODE, (iPlayableService.evUpdatedInfo,)),
          		"FrameRate": (self.FRAMERATE, (iPlayableService.evVideoSizeChanged, iPlayableService.evUpdatedInfo)),
          		"Framerate": (self.FRAMERATE, (iPlayableService.evVideoSizeChanged, iPlayableService.evUpdatedInfo)),
          		"FrequencyInfo": (self.FREQUENCY_INFORMATION, (iPlayableService.evUpdatedInfo,)),
          		"Freq_Info": (self.FREQUENCY_INFORMATION, (iPlayableService.evUpdatedInfo,)),
          		"HasHBBTV": (self.HAS_HBBTV, (iPlayableService.evUpdatedInfo, iPlayableService.evHBBTVInfo,)),
          		"HasTeletext": (self.HAS_TELETEXT, (iPlayableService.evUpdatedInfo,)),
          		"HasTelext": (self.HAS_TELETEXT, (iPlayableService.evUpdatedInfo,)),
          		"Is1080": (self.IS_1080, (iPlayableService.evVideoSizeChanged, iPlayableService.evUpdatedInfo)),
          		"Is480": (self.IS_480, (iPlayableService.evVideoSizeChanged, iPlayableService.evUpdatedInfo)),
          		"Is4K": (self.IS_4K, (iPlayableService.evVideoSizeChanged, iPlayableService.evVideoGammaChanged, iPlayableService.evUpdatedInfo)),
          		"Is576": (self.IS_576, (iPlayableService.evVideoSizeChanged, iPlayableService.evUpdatedInfo)),
          		"Is720": (self.IS_720, (iPlayableService.evVideoSizeChanged, iPlayableService.evUpdatedInfo)),
          		"IsCrypted": (self.IS_CRYPTED, (iPlayableService.evUpdatedInfo,)),
          		"IsDAB": (self.IS_DAB, (iPlayableService.evStart, iPlayableService.evUpdatedInfo)),
          		"IsDVBI": (self.IS_DVBI, (iPlayableService.evStart, iPlayableService.evEnd, iPlayableService.evUpdatedInfo)),
          		"IsHD": (self.IS_HD, (iPlayableService.evVideoSizeChanged, iPlayableService.evVideoGammaChanged, iPlayableService.evUpdatedInfo)),
          		"IsHDHDR": (self.IS_HDHDR, (iPlayableService.evVideoSizeChanged, iPlayableService.evVideoGammaChanged, iPlayableService.evUpdatedInfo)),
          		"IsHDR": (self.IS_HDR, (iPlayableService.evVideoSizeChanged, iPlayableService.evVideoGammaChanged, iPlayableService.evUpdatedInfo)),
          		"IsHDR10": (self.IS_HDR10, (iPlayableService.evVideoSizeChanged, iPlayableService.evVideoGammaChanged, iPlayableService.evUpdatedInfo)),
          		"IsHLG": (self.IS_HLG, (iPlayableService.evVideoSizeChanged, iPlayableService.evVideoGammaChanged, iPlayableService.evUpdatedInfo)),
          		"IsIPStream": (self.IS_STREAM, (iPlayableService.evUpdatedInfo,)),
          		"IsMultichannel": (self.IS_MULTICHANNEL, (iPlayableService.evUpdatedInfo,)),
          		"IsNotWidescreen": (self.IS_NOT_WIDESCREEN, (iPlayableService.evVideoSizeChanged,)),
          		"IsSD": (self.IS_SD, (iPlayableService.evVideoSizeChanged, iPlayableService.evUpdatedInfo)),
          		# "IsSDAndNotWidescreen": (self.IS_SD_AND_NOT_WIDESCREEN, (iPlayableService.evVideoSizeChanged, iPlayableService.evUpdatedInfo)),
          		# "IsSDAndWidescreen": (self.IS_SD_AND_WIDESCREEN, (iPlayableService.evVideoSizeChanged, iPlayableService.evUpdatedInfo)),
          		"IsSDR": (self.IS_SDR, (iPlayableService.evVideoSizeChanged, iPlayableService.evVideoGammaChanged, iPlayableService.evUpdatedInfo)),
          		"IsSoftCSA": (self.IS_SOFTCSA, (iPlayableService.evUpdatedInfo,)),
          		"IsStereo": (self.IS_STEREO, (iPlayableService.evUpdatedInfo,)),
          		"IsStream": (self.IS_STREAM, (iPlayableService.evUpdatedInfo,)),
          		# "IsVideoAVC": (self.IS_VIDEO_AVC, (iPlayableService.evUpdatedInfo,)),
          		# "IsVideoHEVC": (self.IS_VIDEO_HEVC, (iPlayableService.evUpdatedInfo,)),
          		# "IsVideoMPEG2": (self.IS_VIDEO_MPEG2, (iPlayableService.evUpdatedInfo,)),
          		"IsWidescreen": (self.IS_WIDESCREEN, (iPlayableService.evVideoSizeChanged,)),
          		"OnId": (self.ONID, (iPlayableService.evUpdatedInfo,)),
          		"PcrPid": (self.PCRPID, (iPlayableService.evUpdatedInfo,)),
          		"PmtPid": (self.PMTPID, (iPlayableService.evUpdatedInfo,)),
          		"Progressive": (self.PROGRESSIVE, (iPlayableService.evVideoProgressiveChanged, iPlayableService.evUpdatedInfo)),
          		# "Provider": (self.PROVIDER, self.getTextItem, (iPlayableService.evStart,)),
          		# "Reference": (self.REFERENCE, self.getTextItem, (iPlayableService.evStart,)),
          		"Sid": (self.SID, (iPlayableService.evUpdatedInfo,)),
          		"SubservicesAvailable": (self.SUBSERVICES_AVAILABLE, (iPlayableService.evUpdatedEventInfo,)),
          		"SubtitlesAvailable": (self.SUBTITLES_AVAILABLE, (iPlayableService.evUpdatedInfo,)),
          		"TransferBPS": (self.TRANSFERBPS, (iPlayableService.evUpdatedInfo,)),
          		"TsId": (self.TSID, (iPlayableService.evUpdatedInfo,)),
          		"TxtPid": (self.TXTPID, (iPlayableService.evUpdatedInfo,)),
          		"VideoHeight": (self.YRES, (iPlayableService.evVideoSizeChanged,)),
          		"VideoInfo": (self.VIDEO_INFORMATION, (iPlayableService.evVideoSizeChanged, iPlayableService.evVideoFramerateChanged, iPlayableService.evVideoProgressiveChanged, iPlayableService.evVideoGammaChanged, iPlayableService.evUpdatedInfo)),
          		"VideoPid": (self.VPID, (iPlayableService.evUpdatedInfo,)),
          		# "VideoSize": (self.VIDEO_SIZE, (iPlayableService.evVideoSizeChanged,)),
          		"VideoWidth": (self.XRES, (iPlayableService.evVideoSizeChanged,)),
          	}.get(tokens)
          	self.instanceInfoBarSubserviceSelection = None
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (5) and inherited methods (10)

          Inherited methods

          ServiceName

          Formats service name/reference/provider information according to its constructor mode.

          lib/python/Components/Converter/ServiceName.py, line 13 ↗

          Class: Components.Converter.ServiceName.ServiceName. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: info, service, serviceref. Attribute probes: editmode, serviceref. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          NAME = 0
          NAME_ONLY = 1
          NAME_EVENT = 2
          PROVIDER = 3
          REFERENCE = 4
          EDITREFERENCE = 5
          TRANSPONDER = 6
          TUNERSYSTEM = 7
          ORB_POS = 8
          NUMBER = 9
          ServiceName.__init__(self, tokens)

          Implementation, line 25 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.epgQuery = eEPGCache.getInstance().lookupEventTime
          	self.mode = ""
          	if ";" in tokens:
          		tokens, self.mode = tokens.split(";")
          	self.type = {
          		"EditReference": self.EDITREFERENCE,
          		"NameAndEvent": self.NAME_EVENT,
          		"NameOnly": self.NAME_ONLY,
          		"Number": self.NUMBER,
          		"OrbitalPosition": self.ORB_POS,
          		"Provider": self.PROVIDER,
          		"Reference": self.REFERENCE,
          		"TransponderInfo": self.TRANSPONDER,
          		"TunerSystem": self.TUNERSYSTEM
          	}.get(tokens, self.NAME)
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (3) and inherited methods (10)

          Inherited methods

          ServiceName2

          lib/python/Components/Converter/ServiceName2.py, line 33 ↗

          Class: Components.Converter.ServiceName2.ServiceName2. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: __class__, info, service, serviceref. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          NAME = 0
          NUMBER = 1
          BOUQUET = 2
          PROVIDER = 3
          REFERENCE = 4
          ORBPOS = 5
          TPRDATA = 6
          SATELLITE = 7
          ALLREF = 8
          FORMAT = 9
          ServiceName2.__init__(self, tokens)

          Implementation, line 45 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.type = {
          		"AllRef": self.ALLREF,
          		"Bouquet": self.BOUQUET,
          		"Name": self.NAME,
          		"Number": self.NUMBER,
          		"OrbitalPos": self.ORBPOS,
          		"Provider": self.PROVIDER,
          		"Reference": self.REFERENCE,
          		"Satellite": self.SATELLITE,
          		"TpansponderInfo": self.TPRDATA
          	}.get(tokens, self.FORMAT if tokens else self.NAME)
          	if self.type == self.FORMAT:
          		self.sfmt = tokens[:]
          	try:
          		if (self.type == self.NUMBER or (self.type == self.FORMAT and "%n" in self.sfmt)) and correctChannelNumber:
          			ChannelNumberClasses.append(self.forceChanged)
          	except Exception:
          		pass
          	self.refstr = self.isStream = self.ref = self.info = self.what = self.tpdata = None
          	self.Timer = eTimer()
          	self.Timer.callback.append(self.neededChange)
          	self.IPTVcontrol = self.isAdditionalService(group=False)
          	self.AlternativeControl = self.isAdditionalService(group=True)
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (14) and inherited methods (10)

          Inherited methods

          ServiceOrbitalPosition

          lib/python/Components/Converter/ServiceOrbitalPosition.py, line 8 ↗

          Class: Components.Converter.ServiceOrbitalPosition.ServiceOrbitalPosition. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: info, service. Attribute probes: isDVBI. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          FULL = 0
          SHORT = 1
          ServiceOrbitalPosition.__init__(self, tokens)

          Implementation, line 12 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.type = self.SHORT if tokens == "Short" else self.FULL
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (3) and inherited methods (10)

          Inherited methods

          ServicePosition

          Converts the current playable service's seek interface to time text or gauge values. First argument selects the mode; subsequent comma-separated flags modify formatting.

          lib/python/Components/Converter/ServicePosition.py, line 11 ↗

          Class: Components.Converter.ServicePosition.ServicePosition. Bases: Poll, Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (8) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          range = 10000 — Components.Converter.ServicePosition.ServicePosition

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          TYPE_LENGTH = 0
          TYPE_POSITION = 1
          TYPE_REMAINING = 2
          TYPE_GAUGE = 3
          TYPE_SUMMARY = 4
          TYPE_ENDTIME = 5
          TYPE_VFD_LENGTH = 6
          TYPE_VFD_POSITION = 7
          TYPE_VFD_REMAINING = 8
          TYPE_VFD_GAUGE = 9
          TYPE_VFD_SUMMARY = 10
          range = 10000
          ServicePosition.__init__(self, tokens)

          Implementation, line 24 ↗

          def __init__(self, tokens):
          	Poll.__init__(self)
          	Converter.__init__(self, tokens)
          	args = tokens.split(",")
          	self.type = {
          		"EndTime": self.TYPE_ENDTIME,
          		"Gauge": self.TYPE_GAUGE,
          		"Length": self.TYPE_LENGTH,
          		"Position": self.TYPE_POSITION,
          		"Remaining": self.TYPE_REMAINING,
          		"Summary": self.TYPE_SUMMARY,
          		"VFDGauge": self.TYPE_VFD_GAUGE,
          		"VFDLength": self.TYPE_VFD_LENGTH,
          		"VFDPosition": self.TYPE_VFD_POSITION,
          		"VFDRemaining": self.TYPE_VFD_REMAINING,
          		"VFDSummary": self.TYPE_VFD_SUMMARY
          	}.get(args.pop(0))
          	if self.type is None:
          		raise ElementError("type must be {Length|Position|Remaining|Gauge|Summary} with optional arguments {Negate|Detailed|ShowHours|ShowNoSeconds|ShowNoSeconds2} for ServicePosition converter")
          	self.negate = "Negate" in args
          	self.detailed = "Detailed" in args
          	self.showHours = "ShowHours" in args
          	self.showNoSeconds = "ShowNoSeconds" in args
          	self.showNoSeconds2 = "ShowNoSeconds2" in args
          	self.OnlyMinute = "OnlyMinute" in args
          	self.vfd = "7segment" in args
          	if self.detailed:
          		self.poll_interval = 100
          	else:
          		self.poll_interval = {
          			self.TYPE_ENDTIME: 1000,
          			self.TYPE_LENGTH: 2000,
          			self.TYPE_VFD_LENGTH: 2000
          		}.get(self.type, 500)
          	self.poll_enabled = True
          
          Poll.__init__(self)

          Implementation, line 5 ↗

          def __init__(self):
          	self.__poll_timer = eTimer()
          	self.__poll_timer.callback.append(self.poll)
          	self.__interval = 1000
          	self.__enabled = False
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (8) and inherited methods (11)

          Inherited methods

          ServiceTime

          lib/python/Components/Converter/ServiceTime.py, line 7 ↗

          Class: Components.Converter.ServiceTime.ServiceTime. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: info, service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          STARTTIME = 0
          ENDTIME = 1
          DURATION = 2
          ServiceTime.__init__(self, tokens)

          Implementation, line 12 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.type = {
          		"Duration": self.DURATION,
          		"EndTime": self.ENDTIME,
          		"StartTime": self.STARTTIME
          	}.get(tokens)
          	if self.type is None:
          		raise ElementError(f"'{tokens}' is not <StartTime|EndTime|Duration> for ServiceTime converter")
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (2) and inherited methods (11)

          Inherited methods

          SmartInfo

          lib/python/Components/Converter/SmartInfo.py, line 10 ↗

          Class: Components.Converter.SmartInfo.SmartInfo. Bases: Poll, Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (4) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          EXPERTINFO = 0
          SmartInfo.__init__(self, tokens)

          Implementation, line 13 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	Poll.__init__(self)
          	self.type = self.EXPERTINFO
          	self.poll_interval = 30000
          	self.poll_enabled = True
          	self.ar_fec = ("Auto", "1/2", "2/3", "3/4", "5/6", "7/8", "3/5", "4/5", "8/9", "9/10", "None", "None", "None", "None", "None")
          	self.ar_pol = ("H", "V", "CL", "CR", "na", "na", "na", "na", "na", "na", "na", "na")
          	self.satNames = {}
          	self.readSatXml()
          
          Poll.__init__(self)

          Implementation, line 5 ↗

          def __init__(self):
          	self.__poll_timer = eTimer()
          	self.__poll_timer.callback.append(self.poll)
          	self.__interval = 1000
          	self.__enabled = False
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (5) and inherited methods (11)

          Inherited methods

          StaticMultiList

          Turns a python list in 'multi list format' into a list which can be used in a listbox.

          lib/python/Components/Converter/StaticMultiList.py, line 6 ↗

          Class: Components.Converter.StaticMultiList.StaticMultiList. Bases: StringList.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: fonts, item_height, list. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.StringList.StringList: accesses list, selectionChanged; probes none.
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (3) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          StringList.__init__(self, tokens)

          Implementation, line 10 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.content = None
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (1) and inherited methods (15)

          Inherited methods

          StaticText

          lib/python/Components/Converter/StaticText.py, line 4 ↗

          Class: Components.Converter.StaticText.StaticText. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (1) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          StaticText.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.text = str(tokens)
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (1) and inherited methods (11)

          Inherited methods

          Streaming

          lib/python/Components/Converter/Streaming.py, line 11 ↗

          Class: Components.Converter.Streaming.Streaming. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (1) and inherited methods (11)

          Inherited methods

          Streaming2

          lib/python/Components/Converter/Streaming2.py, line 11 ↗

          Class: Components.Converter.Streaming2.Streaming2. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (1) and inherited methods (11)

          Inherited methods

          StringList

          Turns a simple python list into a list which can be used in a listbox.

          lib/python/Components/Converter/StringList.py, line 7 ↗

          Class: Components.Converter.StringList.StringList. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: list, selectionChanged. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (3) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          StringList.__init__(self, tokens)

          Implementation, line 10 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.content = None
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (7) and inherited methods (10)

          Inherited methods

          StringListSelection

          Extracts the first element of the current string list element for displaying it on LCD.

          lib/python/Components/Converter/StringListSelection.py, line 5 ↗

          Class: Components.Converter.StringListSelection.StringListSelection. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: current, onSelectionChanged. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          StringListSelection.__init__(self, tokens)

          Implementation, line 8 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (4) and inherited methods (10)

          Inherited methods

          TemplatedMultiContent

          Builds native list content from Python-expression templates. This is executable skin configuration; use templates from trusted sources.

          lib/python/Components/Converter/TemplatedMultiContent.py, line 6 ↗

          Class: Components.Converter.TemplatedMultiContent.TemplatedMultiContent. Bases: StringList.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: list, style. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.StringList.StringList: accesses list, selectionChanged; probes none.
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (3) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          TemplatedMultiContent.__init__(self, tokens)

          Implementation, line 9 ↗

          def __init__(self, tokens):
          	StringList.__init__(self, tokens)
          	# These imports are needed as locals for the template eval.
          	from enigma import BT_HALIGN_CENTER, BT_HALIGN_LEFT, BT_HALIGN_RIGHT, BT_KEEP_ASPECT_RATIO, BT_SCALE, BT_VALIGN_BOTTOM, BT_VALIGN_CENTER, BT_VALIGN_TOP, RADIUS_ALL, RADIUS_BOTTOM, RADIUS_BOTTOM_LEFT, RADIUS_BOTTOM_RIGHT, RADIUS_LEFT, RADIUS_RIGHT, RADIUS_TOP, RADIUS_TOP_LEFT, RADIUS_TOP_RIGHT, RT_BLEND, RT_ELLIPSIS, RT_HALIGN_CENTER, RT_HALIGN_LEFT, RT_HALIGN_RIGHT, RT_VALIGN_BOTTOM, RT_VALIGN_CENTER, RT_VALIGN_TOP, RT_WRAP, gFont  # noqa: F401
          	from skin import getSkinFactor, parseFont  # noqa: F401
          	from Components.MultiContent import MultiContentEntryLinearGradient, MultiContentEntryLinearGradientAlphaBlend, MultiContentEntryPixmap, MultiContentEntryPixmapAlphaBlend, MultiContentEntryPixmapAlphaTest, MultiContentEntryProgress, MultiContentEntryProgressPixmap, MultiContentEntryRectangle, MultiContentEntryText, MultiContentTemplateColor  # noqa: F401
          	f = getSkinFactor()  # This is needed for special OpenViX skins using f in the template.
          	loc = locals()
          	del loc["self"]  # Cleanup locals a bit.
          	del loc["tokens"]
          	self.activeStyle = None
          	self.template = eval(tokens, {}, loc)
          	self.scale = None
          	if "template" in self.template or "templates" in self.template:
          		if "template" in self.template or "default" in self.template["templates"]:
          			if "template" not in self.template:  # Default template can be ["template"] or ["templates"]["default"].
          				self.template["itemSize"] = self.template["templates"]["default"][0]
          				self.template["template"] = self.template["templates"]["default"][1]
          			if "fonts" not in self.template:
          				print("[TemplatedMultiContent] Error: All templates must include a 'fonts' entry!")
          			if "itemHeight" not in self.template and "itemSize" not in self.template:
          				print("[TemplatedMultiContent] Error: All 'template' entries must include an 'itemHeight' or 'itemSize' entry!")
          		else:
          			print("[TemplatedMultiContent] Error: All 'templates' must include a 'default' template!")
          	else:
          		print("[TemplatedMultiContent] Error: All TemplatedMultiContent converters must include either a 'template' or 'templates' entry!")
          
          StringList.__init__(self, tokens)

          Implementation, line 10 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.content = None
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (2) and inherited methods (15)

          Inherited methods

          TextCase

          Changes the case of upstream text using its selected mode.

          lib/python/Components/Converter/TextCase.py, line 5 ↗

          Class: Components.Converter.TextCase.TextCase. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: getText. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          UPPER = 0
          LOWER = 1
          TextCase.__init__(self, tokens)

          Implementation, line 10 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.type = self.LOWER if tokens == "ToLower" else self.UPPER
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (2) and inherited methods (11)

          Inherited methods

          TrackInfo

          lib/python/Components/Converter/TrackInfo.py, line 8 ↗

          Class: Components.Converter.TrackInfo.TrackInfo. Bases: Poll, Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (4) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          AUDIO = 0
          SUBTITLE = 1
          AUDIO_CODEC = 2
          AUDIO_LANG = 3
          SUBTITLE_TYPE = 4
          SUBTITLE_LANG = 5
          TrackInfo.__init__(self, tokens)

          Implementation, line 16 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	Poll.__init__(self)
          	self.poll_interval = 1500
          	self.poll_enabled = True
          	self.type = {
          		"Audio": self.AUDIO,
          		"AudioCodec": self.AUDIO_CODEC,
          		"AudioLang": self.AUDIO_LANG,
          		"Subtitle": self.SUBTITLE,
          		"SubtitleLang": self.SUBTITLE_LANG,
          		"SubtitleType": self.SUBTITLE_TYPE
          	}.get(tokens, self.AUDIO)
          
          Poll.__init__(self)

          Implementation, line 5 ↗

          def __init__(self):
          	self.__poll_timer = eTimer()
          	self.__poll_timer.callback.append(self.poll)
          	self.__interval = 1000
          	self.__enabled = False
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (3) and inherited methods (11)

          Inherited methods

          TransponderInfo

          lib/python/Components/Converter/TransponderInfo.py, line 9 ↗

          Class: Components.Converter.TransponderInfo.TransponderInfo. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: info, service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (3) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          TransponderInfo.__init__(self, tokens)

          Implementation, line 10 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.type = tokens.split(";")
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (4) and inherited methods (10)

          Inherited methods

          TunerInfo

          lib/python/Components/Converter/TunerInfo.py, line 6 ↗

          Class: Components.Converter.TunerInfo.TunerInfo. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: getTunerAmount, getTunerUseMask. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (4) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          TunerInfo.__init__(self, tokens)

          Implementation, line 7 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.type = {
          		"TunerAvailable": TunerInfoSource.TUNER_AVAILABLE,
          		"TunerUseMask": TunerInfoSource.FE_USE_MASK
          	}[tokens]
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (5) and inherited methods (10)

          Inherited methods

          ValueBitTest

          Tests a bitmask against upstream value and exposes a boolean.

          lib/python/Components/Converter/ValueBitTest.py, line 5 ↗

          Class: Components.Converter.ValueBitTest.ValueBitTest. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: value. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          ValueBitTest.__init__(self, tokens)

          Implementation, line 6 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.value = int(tokens)
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (2) and inherited methods (11)

          Inherited methods

          ValueRange

          Tests an upstream value against constructor-supplied numeric limits and exposes a boolean.

          lib/python/Components/Converter/ValueRange.py, line 5 ↗

          Class: Components.Converter.ValueRange.ValueRange. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: value. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          ValueRange.__init__(self, tokens)

          Implementation, line 6 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	(self.lower, self.upper) = (int(x) for x in tokens.split(","))
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (2) and inherited methods (11)

          Inherited methods

          ValueToPixmap

          Maps upstream data to a pixmap according to its constructor mode, for an image renderer.

          lib/python/Components/Converter/ValueToPixmap.py, line 8 ↗

          Class: Components.Converter.ValueToPixmap.ValueToPixmap. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: text. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          LANGUAGE_CODE = 0
          PATH = 1
          ValueToPixmap.__init__(self, tokens)

          Implementation, line 12 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.type = {
          		"LanguageCode": self.LANGUAGE_CODE,
          		"Path": self.PATH
          	}.get(tokens)
          	if self.type is None:
          		raise ElementError(f"'{tokens}' is not <LanguageCode|Path> for ValueToPixmap converter")
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (3) and inherited methods (10)

          Inherited methods

          VAudioInfo

          lib/python/Components/Converter/VAudioInfo.py, line 8 ↗

          Class: Components.Converter.VAudioInfo.VAudioInfo. Bases: Poll, Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (4) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          GET_AUDIO_ICON = 0
          GET_AUDIO_CODEC = 1
          VAudioInfo.__init__(self, tokens)

          Implementation, line 12 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	Poll.__init__(self)
          	self.poll_interval = 1000
          	self.poll_enabled = True
          	self.lang_strings = ("ger", "german", "deu")
          	self.codecs = {
          		"01_dolbydigitalplus": ("ac3+", "digital+", "digitalplus",),
          		"02_dolbydigital": ("ac3", "dolbydigital",),
          		"03_mp3": ("mp3",),
          		"04_wma": ("wma",),
          		"05_flac": ("flac",),
          		"06_mpeg": ("mpeg",),
          		"07_lpcm": ("lpcm",),
          		"08_dts-hd": ("dts-hd",),
          		"09_dts": ("dts",),
          		"10_pcm": ("pcm",),
          		"11_aac": ("aac",),
          		"12_he-aac": ("he-aac",),
          		"13_truehd": ("truehd",),
          		"14_aacplus": ("aac+",),
          		"15_ipcm": ("ipcm",),
          		"16_wma-pro": ("wma pro",),
          		"17_vorbis": ("vorbis",),
          		"18_opus": ("opus",),
          		"19_amr": ("amr",),
          		"20_mp2": ("mp2",),
          	}
          	self.codec_info = {
          		"dolbydigitalplus": ("51", "20", "71"),
          		"dolbydigital": ("51", "20", "71"),
          		"wma": ("8", "9"),
          	}
          	self.type, self.interesting_events = {
          		"AudioCodec": (self.GET_AUDIO_CODEC, (iPlayableService.evUpdatedInfo,)),
          		"AudioIcon": (self.GET_AUDIO_ICON, (iPlayableService.evUpdatedInfo,)),
          	}[tokens]
          
          Poll.__init__(self)

          Implementation, line 5 ↗

          def __init__(self):
          	self.__poll_timer = eTimer()
          	self.__poll_timer.callback.append(self.poll)
          	self.__interval = 1000
          	self.__enabled = False
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (8) and inherited methods (11)

          Inherited methods

          VExtraNumText

          lib/python/Components/Converter/VExtraNumText.py, line 23 ↗

          Class: Components.Converter.VExtraNumText.VExtraNumText. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: agc, ber, snr, time. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (3) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          SNRNUM = 0
          AGCNUM = 1
          BERNUM = 2
          STEP = 3
          SNRTEXT = 4
          AGCTEXT = 5
          LOCK = 6
          SLOT_NUMBER = 7
          SECHAND = 8
          MINHAND = 9
          HOURHAND = 10
          VExtraNumText.__init__(self, tokens)

          Implementation, line 36 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.type = {
          		"AgcNum": self.AGCNUM,
          		"AgcText": self.AGCTEXT,
          		"BerNum": self.BERNUM,
          		"NUMBER": self.SLOT_NUMBER,
          		"SnrNum": self.SNRNUM,
          		"SnrText": self.SNRTEXT,
          		"Step": self.STEP,
          		"hourHand": self.HOURHAND,
          		"minHand": self.MINHAND,
          		"secHand": self.SECHAND
          	}.get(tokens, self.LOCK)
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (3) and inherited methods (11)

          Inherited methods

          VfdDisplay

          lib/python/Components/Converter/VfdDisplay.py, line 11 ↗

          Class: Components.Converter.VfdDisplay.VfdDisplay. Bases: Poll, Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: serviceref, text. Attribute probes: text. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (4) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          VfdDisplay.__init__(self, tokens)

          Implementation, line 12 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	Poll.__init__(self)
          	self.num = None
          	self.showclock = 0
          	self.delay = 5000
          	self.loop = -1
          	self.type = tokens.lower().split(";")
          	configValue = None
          	for value in self.type:
          		if value.startswith("config."):
          			configValue = configfile.getResolvedKey(value, silent=True)  # Invalid/non-existent keys will return None.
          			break
          	if configValue == "nothing":
          		self.delay = 0
          		self.type = ["nothing"]
          	else:
          		match configValue:
          			case "number":
          				self.type = ["number"]
          			case "time":
          				self.type = []
          		if "number" in self.type and "clock" not in self.type:  # Only channel number.
          			self.delay = 0
          			self.poll_enabled = False
          		else:
          			self.poll_enabled = True
          			if "clock" in self.type and "number" not in self.type:  # Only clock.
          				self.showclock = 1
          				self.delay = -1
          			else:
          				for value in self.type:
          					if value.isdigit():
          						self.delay = int(value) * 1000
          						break
          				if "loop" in self.type and self.delay:
          					self.loop = self.delay
          			self.hour = {
          				(False, False): "%H",
          				(False, True): "%k",
          				(True, False): "%I",
          				(True, True): "%l"
          			}[("12h" in self.type, "nozero" in self.type)]
          
          Poll.__init__(self)

          Implementation, line 5 ↗

          def __init__(self):
          	self.__poll_timer = eTimer()
          	self.__poll_timer.callback.append(self.poll)
          	self.__interval = 1000
          	self.__enabled = False
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (3) and inherited methods (11)

          Inherited methods

          VNetSpeedInfo

          lib/python/Components/Converter/VNetSpeedInfo.py, line 22 ↗

          Class: Components.Converter.VNetSpeedInfo.VNetSpeedInfo. Bases: Poll, Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (4) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          RCL = 0
          TML = 1
          RCW = 2
          TMW = 3
          RCLT = 4
          TMLT = 5
          RCWT = 6
          TMWT = 7
          RCL_MB = 8
          TML_MB = 9
          RCW_MB = 10
          TMW_MB = 11
          RC = 12
          TM = 13
          RCT = 14
          TMT = 15
          RC_MB = 16
          TM_MB = 17
          NET_TYP = 18
          ERR_RCL = 19
          ERR_TML = 20
          DRO_RCL = 21
          DRO_TML = 22
          ERR_RCW = 23
          ERR_TMW = 24
          DRO_RCW = 25
          DRO_TMW = 26
          VNetSpeedInfo.__init__(self, tokens, update_interval=1000)

          Implementation, line 51 ↗

          def __init__(self, tokens, update_interval=1000):
          	Poll.__init__(self)
          	self.poll_interval = 1000
          	self.poll_enabled = True
          	self.lanreceivetotal = 0
          	self.lanreceivetotalout = 0
          	self.lanreceive = 0
          	self.lanreceivemb = 0
          	self.wlanreceivetotal = 0
          	self.wlanreceivetotalout = 0
          	self.wlanreceive = 0
          	self.wlanreceivemb = 0
          	self.lantransmittotal = 0
          	self.lantransmittotalout = 0
          	self.lantransmit = 0
          	self.lantransmitmb = 0
          	self.wlantransmittotal = 0
          	self.wlantransmittotalout = 0
          	self.wlantransmit = 0
          	self.wlantransmitmb = 0
          	self.receivetotal = 0
          	self.receivetotalout = 0
          	self.receive = 0
          	self.transmittotal = 0
          	self.transmittotalout = 0
          	self.transmit = 0
          	self.receivemb = 0
          	self.transmitmb = 0
          	self.nettyp = "NONE"
          	self.error_lanreceive = 0
          	self.drop_lanreceive = 0
          	self.error_lantransmite = 0
          	self.drop_lantransmite = 0
          	self.error_wlanreceive = 0
          	self.drop_wlanreceive = 0
          	self.error_wlantransmite = 0
          	self.drop_wlantransmite = 0
          	Converter.__init__(self, tokens)
          	self.type = {
          		"DRO_RCL": self.DRO_RCL,
          		"DRO_RCW": self.DRO_RCW,
          		"DRO_TML": self.DRO_TML,
          		"DRO_TMW": self.DRO_TMW,
          		"ERR_RCL": self.ERR_RCL,
          		"ERR_RCW": self.ERR_RCW,
          		"ERR_TML": self.ERR_TML,
          		"ERR_TMW": self.ERR_TMW,
          		"NET_TYP": self.NET_TYP,
          		"RC": self.RC,
          		"RCL": self.RCL,
          		"RCLT": self.RCLT,
          		"RCL_MB": self.RCL_MB,
          		"RCT": self.RCT,
          		"RCW": self.RCW,
          		"RCWT": self.RCWT,
          		"RCW_MB": self.RCW_MB,
          		"RC_MB": self.RC_MB,
          		"TM": self.TM,
          		"TML": self.TML,
          		"TMLT": self.TMLT,
          		"TML_MB": self.TML_MB,
          		"TMT": self.TMT,
          		"TMW": self.TMW,
          		"TMWT": self.TMWT,
          		"TMW_MB": self.TMW_MB,
          		"TM_MB": self.TM_MB
          	}.get(tokens, tokens)
          
          Poll.__init__(self)

          Implementation, line 5 ↗

          def __init__(self):
          	self.__poll_timer = eTimer()
          	self.__poll_timer.callback.append(self.poll)
          	self.__interval = 1000
          	self.__enabled = False
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (4) and inherited methods (11)

          Inherited methods

          VServiceInfo

          lib/python/Components/Converter/VServiceInfo.py, line 7 ↗

          Class: Components.Converter.VServiceInfo.VServiceInfo. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (4) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          AUDIOTRACKS_AVAILABLE = 1
          SUBTITLES_AVAILABLE = 2
          VServiceInfo.__init__(self, tokens)

          Implementation, line 11 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.type, self.interesting_events = {
          		"AudioTracksAvailable": (self.AUDIOTRACKS_AVAILABLE, (iPlayableService.evUpdatedInfo,)),
          		"SubtitlesAvailable": (self.SUBTITLES_AVAILABLE, (iPlayableService.evUpdatedInfo,)),
          	}[tokens]
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (6) and inherited methods (10)

          Inherited methods

          VServiceOrbitalPosition

          lib/python/Components/Converter/VServiceOrbitalPosition.py, line 7 ↗

          Class: Components.Converter.VServiceOrbitalPosition.VServiceOrbitalPosition. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: info, service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          FULL = 0
          SHORT = 1
          VServiceOrbitalPosition.__init__(self, tokens)

          Implementation, line 11 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.type = self.SHORT if tokens == "Short" else self.FULL
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (3) and inherited methods (10)

          Inherited methods

          VtiInfo

          lib/python/Components/Converter/VtiInfo.py, line 9 ↗

          Class: Components.Converter.VtiInfo.VtiInfo. Bases: Poll, Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (5) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          ECMINFO = 1
          ONLINETEST = 21
          TEMPINFO = 22
          FANINFO = 23
          ALL = 24
          VtiInfo.__init__(self, tokens)

          Implementation, line 16 ↗

          def __init__(self, tokens):
          	Poll.__init__(self)
          	Converter.__init__(self, tokens)
          	self.poll_interval = 2000
          	self.poll_enabled = True
          	self.type = {
          		"EcmInfo": self.ECMINFO,
          		"FanInfo": self.FANINFO,
          		"OnlineTest": self.ONLINETEST,
          		"TempInfo": self.TEMPINFO
          	}.get(tokens, self.ALL)
          
          Poll.__init__(self)

          Implementation, line 5 ↗

          def __init__(self):
          	self.__poll_timer = eTimer()
          	self.__poll_timer.callback.append(self.poll)
          	self.__interval = 1000
          	self.__enabled = False
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (8) and inherited methods (11)

          Inherited methods

          VtiTempFan

          lib/python/Components/Converter/VtiTempFan.py, line 6 ↗

          Class: Components.Converter.VtiTempFan.VtiTempFan. Bases: Poll, Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (4) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          Class-level constants and option maps
          TEMPINFO = 1
          FANINFO = 2
          ALL = 5
          VtiTempFan.__init__(self, tokens)

          Implementation, line 11 ↗

          def __init__(self, tokens):
          	Poll.__init__(self)
          	Converter.__init__(self, tokens)
          	self.poll_interval = 30000
          	self.poll_enabled = True
          	self.type = {
          		"FanInfo": self.FANINFO,
          		"TempInfo": self.TEMPINFO
          	}.get(tokens, self.ALL)
          
          Poll.__init__(self)

          Implementation, line 5 ↗

          def __init__(self):
          	self.__poll_timer = eTimer()
          	self.__poll_timer.callback.append(self.poll)
          	self.__interval = 1000
          	self.__enabled = False
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (5) and inherited methods (11)

          Inherited methods

          VWeather

          lib/python/Components/Converter/VWeather.py, line 32 ↗

          Class: Components.Converter.VWeather.VWeather. Bases: Converter.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (2) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          VWeather.__init__(self, tokens)

          Implementation, line 33 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	global weather_data
          	if weather_data is None:
          		weather_data = WeatherData()
          	self.type = tokens
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          Declared methods (3) and inherited methods (11)

          Inherited methods

          XmlMultiContent

          Builds native list content from XML templates, styles and row field indexes. Read the list-template chapter for row contracts and matching source data.

          lib/python/Components/Converter/XmlMultiContent.py, line 205 ↗

          Class: Components.Converter.XmlMultiContent.XmlMultiContent. Bases: StringList, MultiContentTemplateParser.

          Inherits Converter. Constructor arguments belong inside <convert>; they are not widget attributes.

          Direct upstream accesses declared here: additionalTemplateAttributes, indexNames, list, style, template, templateDataFormats. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.

          Upstream accesses in base classes
          • Components.Converter.StringList.StringList: accesses list, selectionChanged; probes none.
          • Components.Converter.Converter.Converter: accesses handleCommand; probes none.
          Effective Python properties (3) and value/range constants

          These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.

          Arguments, defaults and skin parsing — exact implementation

          Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.

          XmlMultiContent.__init__(self, tokens)

          Implementation, line 208 ↗

          def __init__(self, tokens):
          	StringList.__init__(self, tokens)
          	MultiContentTemplateParser.__init__(self)
          	self.activeStyle = None
          	self.activeTemplate = None  # Not "Default", so that the first changed() call always reads the template.
          	self.dom = tokens.get("dom")
          	if self.dom is not None:
          		self.scale = tokens.get("scale")
          		self.itemWidth = tokens.get("itemWidth", 0)
          		self.itemHeight = tokens.get("itemHeight", 0)
          	else:
          		print("[XmlMultiContent] Error: This is for internal usage and not an argument for a 'converter' tag!")
          
          StringList.__init__(self, tokens)

          Implementation, line 10 ↗

          def __init__(self, tokens):
          	Converter.__init__(self, tokens)
          	self.content = None
          
          Converter.__init__(self, tokens)

          Implementation, line 5 ↗

          def __init__(self, tokens):
          	Element.__init__(self)
          	self.converter_arguments = tokens
          
          Element.__init__(self)

          Implementation, line 18 ↗

          def __init__(self):
          	self.downstream_elements = CList()
          	self.master = None
          	self.sources = []
          	self.source = None
          	self.__suspended = True
          	self.cache = None
          	self.onChanged = []
          
          MultiContentTemplateParser.__init__(self, debug=False)

          Implementation, line 10 ↗

          def __init__(self, debug=False):
          	TemplateParser.__init__(self, debug=debug)
          	self.template = {}
          	self.indexNames = {}
          	self.additionalTemplateAttributes = {}
          	self.templateDataFormats = {}
          
          Declared methods (3) and inherited methods (17)

          Inherited methods

          text, boolean, value, range, pixmap, time, content and list are common data contracts. A given converter may expose only some of them. Properties such as suspended belong to the Element lifecycle and should not be selected as displayed values merely because they appear in the API list.

          ConditionalShowHide illustrates another case: it reads a boolean, changes downstream visibility and forwards other requests upstream. It is useful between a boolean-producing converter and a fixed-label/rectangle renderer. It does not manufacture a useful text label for every boolean source.

          Poll supplies scheduled updates as a mixin. Its presence in the Converter directory does not make <convert type="Poll">…</convert> a valid standalone conversion. Likewise, a source module named StaticText and a converter named StaticText live in different namespaces; select the intended class.

          Inherited implementations matter: EventTime delegates to EventInfo; inspect that constructor and its properties. The catalogue includes base contracts so a small compatibility subclass does not appear to have an empty API.