From 1cd8250a9e8f1d9236ec0101480872cf0802cfb3 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Fri, 22 May 2009 00:20:35 +0200 Subject: Patch by nix-nix: Factor out getPixmapForEntry for easier override with custom pixmaps --- lib/python/Components/EpgList.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'lib/python/Components') diff --git a/lib/python/Components/EpgList.py b/lib/python/Components/EpgList.py index fa60400f..3b07412e 100644 --- a/lib/python/Components/EpgList.py +++ b/lib/python/Components/EpgList.py @@ -163,9 +163,17 @@ class EPGList(HTMLComponent, GUIComponent): return self.clock_post_pixmap else: return self.clock_prepost_pixmap + + def getPixmapForEntry(self, service, eventId, beginTime, duration): + rec=beginTime and (self.timer.isInTimer(eventId, beginTime, duration, service)) + if rec: + clock_pic = self.getClockPixmap(service, beginTime, duration, eventId) + else: + clock_pic = None + return (clock_pic, rec) def buildSingleEntry(self, service, eventId, beginTime, duration, EventName): - rec=beginTime and (self.timer.isInTimer(eventId, beginTime, duration, service)) + (clock_pic, rec) = self.getPixmapForEntry(service, eventId, beginTime, duration) r1=self.weekday_rect r2=self.datetime_rect r3=self.descr_rect @@ -176,7 +184,6 @@ class EPGList(HTMLComponent, GUIComponent): (eListboxPythonMultiContent.TYPE_TEXT, r2.left(), r2.top(), r2.width(), r1.height(), 0, RT_HALIGN_RIGHT, "%02d.%02d, %02d:%02d"%(t[2],t[1],t[3],t[4])) ] if rec: - clock_pic = self.getClockPixmap(service, beginTime, duration, eventId) res.extend(( (eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, r3.left(), r3.top(), 21, 21, clock_pic), (eListboxPythonMultiContent.TYPE_TEXT, r3.left() + 25, r3.top(), r3.width(), r3.height(), 0, RT_HALIGN_LEFT, EventName) @@ -186,7 +193,7 @@ class EPGList(HTMLComponent, GUIComponent): return res def buildSimilarEntry(self, service, eventId, beginTime, service_name, duration): - rec=beginTime and (self.timer.isInTimer(eventId, beginTime, duration, service)) + (clock_pic, rec) = self.getPixmapForEntry(service, eventId, beginTime, duration) r1=self.weekday_rect r2=self.datetime_rect r3=self.service_rect @@ -197,7 +204,6 @@ class EPGList(HTMLComponent, GUIComponent): (eListboxPythonMultiContent.TYPE_TEXT, r2.left(), r2.top(), r2.width(), r1.height(), 0, RT_HALIGN_RIGHT, "%02d.%02d, %02d:%02d"%(t[2],t[1],t[3],t[4])) ] if rec: - clock_pic = self.getClockPixmap(service, beginTime, duration, eventId) res.extend(( (eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, r3.left(), r3.top(), 21, 21, clock_pic), (eListboxPythonMultiContent.TYPE_TEXT, r3.left() + 25, r3.top(), r3.width(), r3.height(), 0, RT_HALIGN_LEFT, service_name) @@ -207,14 +213,13 @@ class EPGList(HTMLComponent, GUIComponent): return res def buildMultiEntry(self, changecount, service, eventId, begTime, duration, EventName, nowTime, service_name): - rec=begTime and (self.timer.isInTimer(eventId, begTime, duration, service)) + (clock_pic, rec) = self.getPixmapForEntry(service, eventId, beginTime, duration) r1=self.service_rect r2=self.progress_rect r3=self.descr_rect r4=self.start_end_rect res = [ None ] # no private data needed if rec: - clock_pic = self.getClockPixmap(service, begTime, duration, eventId) res.extend(( (eListboxPythonMultiContent.TYPE_TEXT, r1.left(), r1.top(), r1.width()-21, r1.height(), 0, RT_HALIGN_LEFT, service_name), (eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, r1.left()+r1.width()-16, r1.top(), 21, 21, clock_pic) -- cgit v1.2.3 From 7c2806b5333b22eb2859c14879991319456cacc6 Mon Sep 17 00:00:00 2001 From: ghost Date: Sun, 24 May 2009 09:28:45 +0200 Subject: EpgList.py: fix typo (replace begTime with beginTime).. --- lib/python/Components/EpgList.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'lib/python/Components') diff --git a/lib/python/Components/EpgList.py b/lib/python/Components/EpgList.py index 3b07412e..59f92621 100644 --- a/lib/python/Components/EpgList.py +++ b/lib/python/Components/EpgList.py @@ -212,7 +212,7 @@ class EPGList(HTMLComponent, GUIComponent): res.append((eListboxPythonMultiContent.TYPE_TEXT, r3.left(), r3.top(), r3.width(), r3.height(), 0, RT_HALIGN_LEFT, service_name)) return res - def buildMultiEntry(self, changecount, service, eventId, begTime, duration, EventName, nowTime, service_name): + def buildMultiEntry(self, changecount, service, eventId, beginTime, duration, EventName, nowTime, service_name): (clock_pic, rec) = self.getPixmapForEntry(service, eventId, beginTime, duration) r1=self.service_rect r2=self.progress_rect @@ -226,10 +226,10 @@ class EPGList(HTMLComponent, GUIComponent): )) else: res.append((eListboxPythonMultiContent.TYPE_TEXT, r1.left(), r1.top(), r1.width(), r1.height(), 0, RT_HALIGN_LEFT, service_name)) - if begTime is not None: - if nowTime < begTime: - begin = localtime(begTime) - end = localtime(begTime+duration) + if beginTime is not None: + if nowTime < beginTime: + begin = localtime(beginTime) + end = localtime(beginTime+duration) # print "begin", begin # print "end", end res.extend(( @@ -237,7 +237,7 @@ class EPGList(HTMLComponent, GUIComponent): (eListboxPythonMultiContent.TYPE_TEXT, r3.left(), r3.top(), r3.width(), r3.height(), 0, RT_HALIGN_LEFT, EventName) )) else: - percent = (nowTime - begTime) * 100 / duration + percent = (nowTime - beginTime) * 100 / duration res.extend(( (eListboxPythonMultiContent.TYPE_PROGRESS, r2.left(), r2.top(), r2.width(), r2.height(), percent), (eListboxPythonMultiContent.TYPE_TEXT, r3.left(), r3.top(), r3.width(), r3.height(), 0, RT_HALIGN_LEFT, EventName) -- cgit v1.2.3 From 28a0e997d1d28a6d057ede5e8de70f26ceed0e8e Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Mon, 25 May 2009 01:37:44 +0200 Subject: Fix frontpanel support for DM8000, modified behaviour on hardware with single frontpanel led (disabled in standby) --- lib/python/Components/Renderer/FrontpanelLed.py | 3 ++- lib/python/Components/SystemInfo.py | 17 ++++++++++++++++- lib/python/Screens/SessionGlobals.py | 16 ++++++++++++---- 3 files changed, 30 insertions(+), 6 deletions(-) (limited to 'lib/python/Components') diff --git a/lib/python/Components/Renderer/FrontpanelLed.py b/lib/python/Components/Renderer/FrontpanelLed.py index 3021a853..f896ecde 100644 --- a/lib/python/Components/Renderer/FrontpanelLed.py +++ b/lib/python/Components/Renderer/FrontpanelLed.py @@ -22,7 +22,8 @@ class FrontpanelLed(Element): pass if self.which == 0: try: - open("/proc/stb/fp/led_pattern", "w").write("%08x" % pattern_4bit) + open("/proc/stb/fp/led_set_pattern", "w").write("%08x" % pattern_4bit) + open("/proc/stb/fp/led_set_speed", "w").write("%d" % speed) except IOError: pass try: diff --git a/lib/python/Components/SystemInfo.py b/lib/python/Components/SystemInfo.py index d074c414..d2b405a2 100644 --- a/lib/python/Components/SystemInfo.py +++ b/lib/python/Components/SystemInfo.py @@ -1,10 +1,10 @@ from enigma import eDVBResourceManager +from Tools.Directories import fileExists SystemInfo = { } #FIXMEE... def getNumVideoDecoders(): - from Tools.Directories import fileExists idx = 0 while fileExists("/dev/dvb/adapter0/video%d"%(idx), 'f'): idx += 1 @@ -12,3 +12,18 @@ def getNumVideoDecoders(): SystemInfo["NumVideoDecoders"] = getNumVideoDecoders() SystemInfo["CanMeasureFrontendInputPower"] = eDVBResourceManager.getInstance().canMeasureFrontendInputPower() + + +def countFrontpanelLEDs(): + leds = 0 + if fileExists("/proc/stb/fp/led_set_pattern"): + leds += 1 + + while fileExists("/proc/stb/fp/led%d_pattern" % leds): + leds += 1 + + return leds + +SystemInfo["NumFrontpanelLEDs"] = countFrontpanelLEDs() +SystemInfo["FrontpanelDisplay"] = fileExists("/dev/dbox/oled0") or fileExists("/dev/dbox/lcd0") +SystemInfo["FrontpanelDisplayGrayscale"] = fileExists("/dev/dbox/oled0") diff --git a/lib/python/Screens/SessionGlobals.py b/lib/python/Screens/SessionGlobals.py index f2d56154..18d71d39 100644 --- a/lib/python/Screens/SessionGlobals.py +++ b/lib/python/Screens/SessionGlobals.py @@ -22,6 +22,9 @@ class SessionGlobals(Screen): self["TunerInfo"] = TunerInfo() self["RecordState"] = RecordState(session) self["Standby"] = Boolean(fixed = False) + + from Components.SystemInfo import SystemInfo + combine = Combine(func = lambda s: {(False, False): 0, (False, True): 1, (True, False): 2, (True, True): 3}[(s[0].boolean, s[1].boolean)]) combine.connect(self["Standby"]) combine.connect(self["RecordState"]) @@ -33,9 +36,14 @@ class SessionGlobals(Screen): # false true on off off # true true blnk off blnk - PATTERN_ON = (20, 0xffffffff, 0) - PATTERN_OFF = (20, 0, 0xffffffff) + PATTERN_ON = (20, 0xffffffff, 0xffffffff) + PATTERN_OFF = (20, 0, 0) PATTERN_BLINK = (20, 0x55555555, 0x84fc8c04) - FrontpanelLed(which = 0, boolean = False, patterns = [PATTERN_OFF, PATTERN_BLINK, PATTERN_ON, PATTERN_BLINK]).connect(combine) - FrontpanelLed(which = 1, boolean = False, patterns = [PATTERN_ON, PATTERN_ON, PATTERN_OFF, PATTERN_OFF]).connect(combine) + nr_leds = SystemInfo.get("NumFrontpanelLEDs", 0) + + if nr_leds == 1: + FrontpanelLed(which = 0, boolean = False, patterns = [PATTERN_OFF, PATTERN_BLINK, PATTERN_OFF, PATTERN_BLINK]).connect(combine) + elif nr_leds == 2: + FrontpanelLed(which = 0, boolean = False, patterns = [PATTERN_OFF, PATTERN_BLINK, PATTERN_ON, PATTERN_BLINK]).connect(combine) + FrontpanelLed(which = 1, boolean = False, patterns = [PATTERN_ON, PATTERN_ON, PATTERN_OFF, PATTERN_OFF]).connect(combine) -- cgit v1.2.3