Barf hat geschrieben:
Man könnte auch untersuchen, falls/wie rcsim und rcem lange Tasten emulieren könnte. Frage ist dann welche Syntax man benutzt um lange Tasten zu bezeichen; spontan fällt mir irgendwelche "modifier"-Syntax ein.
Ich persönlich würde ja eher einen direkten socket anbieten, über den simulierte Tastendrücke ins neutrino geschleust werden können, anstelle die wir rcsim ins input-Device "hineinzukippen" (was auf der dream, die kein standard-inputdevice benutzt, zumindest nicht in neutrino, schon mal nicht funktioniert). Das aber später

mrvica hat geschrieben:
nur mal als Beispiel, Enigma benutzt dafür flags in rcdbox_inputdev.xml (dbox2), es gibt 4 verschiede Tastendrücke in Enigma:
1. einfacher Tastendruck z.B. um Menü aufzurufen:
<action name="showMainMenu" key="d-box" flags="m" />
2. Tastendruck mit repeat (Wiederholung), Taste drücken und festhalten, sinvoll bei Volume und Navigationstasten, sonst müsste man bei Lautstärke ändern zig mal auf Volume -, + drücken:
<action name="volumeUp" key="+" flags="mr" />
3. kurzer Tastendruck, z.B. um Videotext auf der blauen Taste aufzurufen, flag "b", ich nehme an, b steht für "a little bit"
<action name="pluginVTXT" key="blue" flags="b" />
4. langer Tastendruck, z.B. um Plugins auf der blauen Taste aufzurufen, Taste drücken und festhalten, flag "r", ich nehme an, r steht für release, loslassen
<action name="pluginExt" key="blue" flags="r" />
Ja, ich kenne das von enigma. Ich denke aber die Buchstaben sind anders:
m - make, Taste wird gedrückt
b - break, Taste wird losgelassen
r - repeat
b macht einen kurzen Tastendruck, weil man ja erst beim loslassen der Taste entscheiden kann, ob er lang oder kurz war

, ansonsten bekommt man immer erst einen "kurz"-Event, dann einen "lang"-Event.
Wenn die Taste losgelassen wird, bevor es für "Lang" reicht, dann war es kurz. Alles klar?

Zitat:
vielleicht noch einer, ist aber nicht dokumentiert, von mir zufällig entdeckt, ohne flag, z.B.
<actionmap name="numbers">
<action name="1" key="1" /> normallerweise <action name="1" key="1" flags="m" />
es wird zu Kanal 1 umgeschaltet erst wenn man die Taste 1 loslässt, dabei kann man zick Minuten die Taste 1 gedrückt halten, bis dato tut sich nichts, in meiner rcdbox_inputdev.xml ich benutze das für Nummerntasten, weil Sagems und Philips zickig drauf reagieren
Dann schau ich halt doch mal in den Code.....
..... kein flag ist dasselbe wie "flag=b":
Code:
const char *flags=xaction->GetAttributeValue("flags");
if (!flags || !*flags)
flags="b";
if (strchr(flags, 'm'))
action->insertKey( style, eRCKey(device, icode, 0, picture) );
if (strchr(flags, 'b'))
action->insertKey( style, eRCKey(device, icode, eRCKey::flagBreak, picture) );
if (strchr(flags, 'r'))
action->insertKey( style, eRCKey(device, icode, eRCKey::flagRepeat, picture) );