Fix RC key position on help menu.
authorkdh <kdh@dev3>
Wed, 23 Dec 2015 06:43:42 +0000 (15:43 +0900)
committerhschang <chang@dev3>
Wed, 23 Dec 2015 07:34:28 +0000 (16:34 +0900)
data/keymap.xml
data/rcpositions.xml
keymapparser.py
lib/python/Screens/InfoBarGenerics.py
lib/python/Tools/KeyBindings.py

index 8395222..b478f57 100755 (executable)
                        <key id="KEY_PLAY" mapto="playpauseService" flags="m" />
                </device>
                <device name="dreambox advanced remote control (native)">
                        <key id="KEY_PLAY" mapto="playpauseService" flags="m" />
                </device>
                <device name="dreambox advanced remote control (native)">
-                       <key id="KEY_PLAY" mapto="playpauseService" flags="m" />
                        <key id="KEY_PLAYPAUSE" mapto="playpauseService" flags="m" />
                        <key id="KEY_PLAYPAUSE" mapto="playpauseService" flags="m" />
+                       <key id="KEY_PLAY" mapto="playpauseService" flags="m" />
                        <key id="KEY_PREVIOUSSONG" mapto="seekBack" flags="b" />
                        <key id="KEY_NEXTSONG" mapto="seekFwd" flags="b" />
                        <key id="KEY_PREVIOUSSONG" mapto="seekBackManual" flags="l" />
                        <key id="KEY_PREVIOUSSONG" mapto="seekBack" flags="b" />
                        <key id="KEY_NEXTSONG" mapto="seekFwd" flags="b" />
                        <key id="KEY_PREVIOUSSONG" mapto="seekBackManual" flags="l" />
                        <key id="KEY_STOP" mapto="timeshiftStop" flags="m" />
                </device>
                <device name="dreambox advanced remote control (native)">
                        <key id="KEY_STOP" mapto="timeshiftStop" flags="m" />
                </device>
                <device name="dreambox advanced remote control (native)">
-                       <key id="KEY_PLAY" mapto="timeshiftStart" flags="m" />
                        <key id="KEY_PLAYPAUSE" mapto="timeshiftStart" flags="m" />
                        <key id="KEY_PLAYPAUSE" mapto="timeshiftStart" flags="m" />
-                       <key id="KEY_TV" mapto="timeshiftStop" flags="m" />
+                       <key id="KEY_PLAY" mapto="timeshiftStart" flags="m" />
                        <key id="KEY_STOP" mapto="timeshiftStop" flags="m" />
                        <key id="KEY_STOP" mapto="timeshiftStop" flags="m" />
+                       <key id="KEY_TV" mapto="timeshiftStop" flags="m" />
                </device>
                <device name="dreambox ir keyboard">
                        <key id="KEY_YELLOW" mapto="timeshiftStart" flags="m" />
                </device>
                <device name="dreambox ir keyboard">
                        <key id="KEY_YELLOW" mapto="timeshiftStart" flags="m" />
                </device>
                <device name="dreambox advanced remote control (native)">
                        <key id="KEY_PREVIOUSSONG" mapto="timeshiftActivateEnd" flags="m" />
                </device>
                <device name="dreambox advanced remote control (native)">
                        <key id="KEY_PREVIOUSSONG" mapto="timeshiftActivateEnd" flags="m" />
-                       <key id="KEY_PLAY" mapto="timeshiftActivateEndAndPause" flags="m" />
                        <key id="KEY_PLAYPAUSE" mapto="timeshiftActivateEndAndPause" flags="m" />
                        <key id="KEY_PLAYPAUSE" mapto="timeshiftActivateEndAndPause" flags="m" />
+                       <key id="KEY_PLAY" mapto="timeshiftActivateEndAndPause" flags="m" />
                </device>
                <device name="dreambox ir keyboard">
                        <key id="KEY_REWIND" mapto="timeshiftActivateEnd" flags="m" />
                </device>
                <device name="dreambox ir keyboard">
                        <key id="KEY_REWIND" mapto="timeshiftActivateEnd" flags="m" />
index c21a506..f5daeac 100755 (executable)
@@ -37,6 +37,7 @@
                <button name="YELLOW" pos="87,206" />
                <button name="BLUE" pos="110,206" />
                <button name="REWIND" pos="41,392" />
                <button name="YELLOW" pos="87,206" />
                <button name="BLUE" pos="110,206" />
                <button name="REWIND" pos="41,392" />
+               <button name="PLAY" pos="63,392" />
                <button name="PLAYPAUSE" pos="86,392" />
                <button name="STOP" pos="86,412" />
                <button name="FORWARD" pos="109,392" />
                <button name="PLAYPAUSE" pos="86,392" />
                <button name="STOP" pos="86,412" />
                <button name="FORWARD" pos="109,392" />
@@ -87,5 +88,6 @@
                <button name="RADIO" pos="110,414" />
                <button name="TEXT" pos="40,72" />
                <button name="HELP" pos="108,370" />
                <button name="RADIO" pos="110,414" />
                <button name="TEXT" pos="40,72" />
                <button name="HELP" pos="108,370" />
+               <button name="PLAY" pos="64,394" />
        </rc>
 </rcs>
        </rc>
 </rcs>
index 0e544e9..fd5e1b1 100644 (file)
@@ -44,7 +44,7 @@ def parseKeys(context, filename, actionmap, device, keys):
                                raise KeymapError("key id '" + str(id) + "' is illegal")
 #                              print context + "::" + mapto + " -> " + device + "." + hex(keyid)
                actionmap.bindKey(filename, device, keyid, flags, context, mapto)
                                raise KeymapError("key id '" + str(id) + "' is illegal")
 #                              print context + "::" + mapto + " -> " + device + "." + hex(keyid)
                actionmap.bindKey(filename, device, keyid, flags, context, mapto)
-               addKeyBinding(filename, keyid, context, mapto, flags)
+               addKeyBinding(filename, keyid, context, mapto, flags, device)
 
 def readKeymap(filename):
        p = enigma.eActionMap.getInstance()
 
 def readKeymap(filename):
        p = enigma.eActionMap.getInstance()
index c5f72e2..c36eb9c 100755 (executable)
@@ -775,7 +775,7 @@ class InfoBarSeek:
 
                self["SeekActions"] = InfoBarSeekActionMap(self, actionmap,
                        {
 
                self["SeekActions"] = InfoBarSeekActionMap(self, actionmap,
                        {
-                               "playpauseService": self.playpauseService,
+                               "playpauseService": (self.playpauseService, _("Pause/Continue")),
                                "pauseService": (self.pauseService, _("pause")),
                                "unPauseService": (self.unPauseService, _("continue")),
 
                                "pauseService": (self.pauseService, _("pause")),
                                "unPauseService": (self.unPauseService, _("continue")),
 
index d51c21e..cfd177e 100755 (executable)
@@ -4,6 +4,8 @@ keyBindings = { }
 from keyids import KEYIDS
 from Components.config import config
 
 from keyids import KEYIDS
 from Components.config import config
 
+deviceName = None
+
 keyDescriptions = [{
                KEYIDS["BTN_0"]: ("UP", "fp"),
                KEYIDS["BTN_1"]: ("DOWN", "fp"),
 keyDescriptions = [{
                KEYIDS["BTN_0"]: ("UP", "fp"),
                KEYIDS["BTN_1"]: ("DOWN", "fp"),
@@ -26,10 +28,10 @@ keyDescriptions = [{
                KEYIDS["KEY_TEXT"]: ("TEXT",),
                KEYIDS["KEY_NEXT"]: ("ARROWRIGHT",),
                KEYIDS["KEY_PREVIOUS"]: ("ARROWLEFT",),
                KEYIDS["KEY_TEXT"]: ("TEXT",),
                KEYIDS["KEY_NEXT"]: ("ARROWRIGHT",),
                KEYIDS["KEY_PREVIOUS"]: ("ARROWLEFT",),
-               KEYIDS["KEY_PREVIOUSSONG"]: ("BLUE", "SHIFT"),
+               KEYIDS["KEY_PREVIOUSSONG"]: ("REWIND",),
                KEYIDS["KEY_PLAYPAUSE"]: ("PLAYPAUSE",),
                KEYIDS["KEY_PLAYPAUSE"]: ("PLAYPAUSE",),
-               KEYIDS["KEY_PLAY"]: ("PLAYPAUSE",),
-               KEYIDS["KEY_NEXTSONG"]: ("RED", "SHIFT"),
+               KEYIDS["KEY_PLAY"]: ("PLAY",),
+               KEYIDS["KEY_NEXTSONG"]: ("FORWARD",),
                KEYIDS["KEY_CHANNELUP"]: ("BOUQUET+",),
                KEYIDS["KEY_CHANNELDOWN"]: ("BOUQUET-",),
                KEYIDS["KEY_0"]: ("0",),
                KEYIDS["KEY_CHANNELUP"]: ("BOUQUET+",),
                KEYIDS["KEY_CHANNELDOWN"]: ("BOUQUET-",),
                KEYIDS["KEY_0"]: ("0",),
@@ -43,7 +45,7 @@ keyDescriptions = [{
                KEYIDS["KEY_8"]: ("8",),
                KEYIDS["KEY_9"]: ("9",),
                KEYIDS["KEY_EXIT"]: ("EXIT",),
                KEYIDS["KEY_8"]: ("8",),
                KEYIDS["KEY_9"]: ("9",),
                KEYIDS["KEY_EXIT"]: ("EXIT",),
-               KEYIDS["KEY_STOP"]: ("TV", "SHIFT"),
+               KEYIDS["KEY_STOP"]: ("STOP",),
                KEYIDS["KEY_RECORD"]: ("RECORD",),
                KEYIDS["KEY_SUBTITLE"]: ("SUBTITLE",)
        },
                KEYIDS["KEY_RECORD"]: ("RECORD",),
                KEYIDS["KEY_SUBTITLE"]: ("SUBTITLE",)
        },
@@ -71,7 +73,7 @@ keyDescriptions = [{
                KEYIDS["KEY_PREVIOUS"]: ("ARROWLEFT",),
                KEYIDS["KEY_PREVIOUSSONG"]: ("BLUE", "SHIFT"),
                KEYIDS["KEY_PLAYPAUSE"]: ("YELLOW", "SHIFT"),
                KEYIDS["KEY_PREVIOUS"]: ("ARROWLEFT",),
                KEYIDS["KEY_PREVIOUSSONG"]: ("BLUE", "SHIFT"),
                KEYIDS["KEY_PLAYPAUSE"]: ("YELLOW", "SHIFT"),
-               KEYIDS["KEY_PLAY"]: ("GREEN", "SHIFT"),
+               KEYIDS["KEY_PLAY"]: ("PLAY",),
                KEYIDS["KEY_NEXTSONG"]: ("RED", "SHIFT"),
                KEYIDS["KEY_CHANNELUP"]: ("BOUQUET+",),
                KEYIDS["KEY_CHANNELDOWN"]: ("BOUQUET-",),
                KEYIDS["KEY_NEXTSONG"]: ("RED", "SHIFT"),
                KEYIDS["KEY_CHANNELUP"]: ("BOUQUET+",),
                KEYIDS["KEY_CHANNELDOWN"]: ("BOUQUET-",),
@@ -91,14 +93,36 @@ keyDescriptions = [{
                KEYIDS["KEY_SUBTITLE"]: ("SUBTITLE",)
        }
 ]
                KEYIDS["KEY_SUBTITLE"]: ("SUBTITLE",)
        }
 ]
+def getRCUName():
+       rcu_name = None
+       f = open("/proc/bus/input/devices")
+       for line in f:
+               if line.startswith("N: Name="):
+                       try:
+                               line = line.strip()
+                               name = line.split("=")[1][1:-1]
+                               if name.find("remote control (native)"):
+                                       rcu_name = name
+                       except:
+                               rcu_name = None
+       return rcu_name
 
 
-def addKeyBinding(domain, key, context, action, flags):
-       keyBindings.setdefault((context, action), []).append((key, domain, flags))
+def addKeyBinding(domain, key, context, action, flags, device):
+       keyBindings.setdefault((context, action), []).append((key, domain, flags, device))
 
 # returns a list of (key, flags) for a specified action
 def queryKeyBinding(context, action):
 
 # returns a list of (key, flags) for a specified action
 def queryKeyBinding(context, action):
+       global deviceName
+
+       if deviceName == None:
+               deviceName = getRCUName()
+
+       buttons = []
        if (context, action) in keyBindings:
        if (context, action) in keyBindings:
-               return [(x[0], x[2]) for x in keyBindings[(context, action)]]
+               for x in keyBindings[(context, action)]:
+                       if x[3] == deviceName or x[3] == "generic":
+                               buttons.append((x[0],x[2]))
+               return buttons
        else:
                return [ ]
 
        else:
                return [ ]