From: Felix Domke Date: Sun, 24 May 2009 23:37:44 +0000 (+0200) Subject: Fix frontpanel support for DM8000, X-Git-Tag: 2.6.0~292^2~5 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/28a0e997d1d28a6d057ede5e8de70f26ceed0e8e Fix frontpanel support for DM8000, modified behaviour on hardware with single frontpanel led (disabled in standby) --- 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)