Keymap.xml: Unterschied zwischen den Versionen
EgLe (Diskussion | Beiträge) |
|||
Zeile 1: | Zeile 1: | ||
[[Kategorie:Index]] | [[Kategorie:Index]] | ||
[[Kategorie:FAQ und Anleitungen]] | [[Kategorie:FAQ und Anleitungen]] | ||
− | + | Die ''keymap.xml'' ist die Datei, in welcher z.B. für Plugins festgelegt wird, welcher Actions-Name beim Druck auf eine bestimmte Taste ausgelöst wird.<br> | |
− | |||
− | |||
Beim Öffnen der keymap.xml sind Blöcke zu erkennen, welche sich immer in ähnlicher Form wiederholen:<br><br> | Beim Öffnen der keymap.xml sind Blöcke zu erkennen, welche sich immer in ähnlicher Form wiederholen:<br><br> | ||
<map context="MediaPlayerActions"> | <map context="MediaPlayerActions"> | ||
Zeile 16: | Zeile 14: | ||
</device> | </device> | ||
</map> | </map> | ||
− | Die erste Zeile bestimmt einen eigenen Namen, der sich nicht wiederholen darf | + | Die erste Zeile bestimmt einen eigenen Namen, der sich nicht wiederholen darf. |
<map context="meinPluginActions"> | <map context="meinPluginActions"> | ||
Zeile 25: | Zeile 23: | ||
<device name="dreambox ir keyboard"> | <device name="dreambox ir keyboard"> | ||
− | Danach werden die einzelnen Tasten definiert. Im | + | Danach werden die einzelnen Tasten definiert. Im obigen Beispiel also: |
<key id="KEY_YELLOW" mapto="pause" flags="m" /> | <key id="KEY_YELLOW" mapto="pause" flags="m" /> | ||
'''''key id="KEY_YELLOW"''''' entspricht der gelben Taste auf der Fernbedienung. Die Tastencodes sind in Enigma festgelegt.<br> | '''''key id="KEY_YELLOW"''''' entspricht der gelben Taste auf der Fernbedienung. Die Tastencodes sind in Enigma festgelegt.<br> |
Version vom 19. Juli 2009, 18:17 Uhr
Die keymap.xml ist die Datei, in welcher z.B. für Plugins festgelegt wird, welcher Actions-Name beim Druck auf eine bestimmte Taste ausgelöst wird.
Beim Öffnen der keymap.xml sind Blöcke zu erkennen, welche sich immer in ähnlicher Form wiederholen:
<map context="MediaPlayerActions"> <device name="dreambox remote control (native)"> <key id="KEY_YELLOW" mapto="pause" flags="m" /> <key id="KEY_GREEN" mapto="play" flags="m" /> <key id="KEY_TV" mapto="stop" flags="b" /> <key id="KEY_TV" mapto="shift_stop" flags="l" /> <key id="KEY_RADIO" mapto="shift_record" flags="l" /> <key id="KEY_PREVIOUS" mapto="previous" flags="m" /> <key id="KEY_NEXT" mapto="next" flags="m" /> </device> </map>
Die erste Zeile bestimmt einen eigenen Namen, der sich nicht wiederholen darf.
<map context="meinPluginActions">
In der zweiten Zeile wird das Gerät bestimmt, von welchem die Tasten-Aktion erwartet wird, das kann die Fernbedienung, erweiterte Fernbedienung, Tastatur sein. Hier mal die drei genannten:
<device name="dreambox remote control (native)"> <device name="dreambox advanced remote control (native)"> <device name="dreambox ir keyboard">
Danach werden die einzelnen Tasten definiert. Im obigen Beispiel also:
<key id="KEY_YELLOW" mapto="pause" flags="m" />
key id="KEY_YELLOW" entspricht der gelben Taste auf der Fernbedienung. Die Tastencodes sind in Enigma festgelegt.
mapto="pause" bestimmt, das die gelbe Taste die Funktion pause auslösen soll.
flags="m" bestimmt, welche Art von Tastenbetätigung der Auslöser ist,
dabei entspricht:
m = Taste normal drücken / l = Taste lange drücken / b = ???
Unser eigenes Beispiel sieht nun also so aus:
<map context="meinPluginActions"> <device name="dreambox remote control (native)"> <key id="KEY_YELLOW" mapto="action1" flags="m" /> <key id="KEY_YELLOW" mapto="action2" flags="l" /> </device> </map>
Um die Funktionen der Standard-Tastenbelegung und die hier festgelegte Tastenbelegung zu aktivieren, muss dann im Programm ein Import erfolgen, welcher etwa so aussieht:
from Components.ActionMap import NumberActionMap, ActionMap
Desweiteren werden dann die Tasten im Programm den einzelnen Funktionen zugeordnet:
self["actions"] = ActionMap(["meinPluginActions"], { "action1": self.erstes, "action2": self.zweites, }, -1)
Selbstverständlich muss auch der dazu passende Code-Abschnitt angelegt werden, damit etwas ausgeführt wird:
def erstes(self): mache dies und das def zweites(self): mache dies und das
jetzt ist also folgendes gemacht worden: Ein normales drücken auf die gelbe Taste startet den Programmabschnitt erstes, wird die gelbe Taste lange gedrückt startet zweites
Bildliche Anzeige von Tastencode / keycode findest du hier klicken
Zurück zur Übersicht:Gemini-Wiki:Portal oder Hauptseite