from Components.HTMLComponent import *
from Components.GUIComponent import *
from Screen import Screen
from Components.ActionMap import ActionMap
from Components.Label import Label
from Components.MenuList import MenuList
from ServiceReference import ServiceReference
from enigma import eListboxPythonMultiContent, eListbox, gFont
RT_HALIGN_LEFT = 0
def ServiceInfoListEntry(a, b):
res = [ ]
#PyObject *px, *py, *pwidth, *pheight, *pfnt, *pstring, *pflags;
res.append((0, 0, 200, 30, 0, RT_HALIGN_LEFT, ""))
res.append((0, 0, 150, 25, 0, RT_HALIGN_LEFT, a))
res.append((170, 0, 150, 25, 0, RT_HALIGN_LEFT, b))
return res
class ServiceInfoList(HTMLComponent, GUIComponent):
def __init__(self, source):
GUIComponent.__init__(self)
self.l = eListboxPythonMultiContent()
self.list = source
self.l.setList(self.list)
self.l.setFont(0, gFont("Arial", 23))
def GUIcreate(self, parent):
self.instance = eListbox(parent)
self.instance.setContent(self.l)
self.instance.setItemHeight(25)
def GUIdelete(self):
self.instance.setContent(None)
self.instance = None
class ServiceInfo(Screen):
def __init__(self, session):
Screen.__init__(self, session)
self["actions"] = ActionMap(["OkCancelActions"],
{
"ok": self.close,
"cancel": self.close
}, -1)
Labels = ( ("Name", "ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference()).getServiceName()"),
("Provider", ),
("VideoPID",""),
("AudioPID",""),
("PCRPID",""),
("PMTPID",""),
("TXTPID",""),
("Videoformat",""),
("TSID",""),
("ONID",""),
("SID",""),
("Namespace",""))
tlist = [ ]
for item in Labels:
try:
value = str(eval(item[1]))
except:
value = "N/A"
tlist.append(ServiceInfoListEntry(item[0]+":", value))
self["infolist"] = ServiceInfoList(tlist)