aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2009-05-25 01:37:44 +0200
committerFelix Domke <tmbinc@elitedvb.net>2009-05-25 01:37:44 +0200
commit28a0e997d1d28a6d057ede5e8de70f26ceed0e8e (patch)
tree6a0a85ea0d2b8251a38f06da1c39217eaa16d055
parentc5bb99fa2019da12a8fbaa1766189af520b9e79a (diff)
downloadenigma2-28a0e997d1d28a6d057ede5e8de70f26ceed0e8e.tar.gz
enigma2-28a0e997d1d28a6d057ede5e8de70f26ceed0e8e.zip
Fix frontpanel support for DM8000,
modified behaviour on hardware with single frontpanel led (disabled in standby)
-rw-r--r--lib/python/Components/Renderer/FrontpanelLed.py3
-rw-r--r--lib/python/Components/SystemInfo.py17
-rw-r--r--lib/python/Screens/SessionGlobals.py16
3 files changed, 30 insertions, 6 deletions
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)