Was meinst du mit "KLS 1.6 Profil"?
Das hier: http://vdr-wiki.de/wiki/index.…#Ger.C3.A4t_.22VDR_1.6.22 bzw. meine angepasste Variante mit den für yaVDR ausgelegten Tastennamen: https://github.com/yavdr/yavdr…d-conf/kls-1.6-lircd.conf
Hauptgrund hierfür dürfte die deutliche Verkürzung des REPEATTIMEOUT sein.
Ja, das hatte ich ja oben vermutet - mir ist klar, dass man da in ein gewisses Dilemma kommt, weil das Loslassen in dem Bedienungsfall eine wichtige Funktion hat.
REPEATFREQ sollte relativ unproblematisch sein. Damit soll eigentlich nur verhindert werden, daß wiederholte Tastendrücke zu schnell reinkommen. Wenn deine FB schneller als mit 100ms wiederholt, dann wird halt u.U. die erste Wiederholung ignoriert, was eigentlich nichts ausmachen sollte.
Beim continue wegen
springt er doch an den Anfang des while-Loops und er lässt eine Taste los, wenn er von lircd seit dem letzten gültigen Tastendruck innerhalb des Timeouts keine neuen Daten gelesen hat.
Szenario wäre jetzt also:
1. Tastendruck -> warte REPEATDELAY = 300 ms bis zum nächsten gültigen Tastendruck -> gültiger Tastendruck mit Aufruf von LastTime.Set(), repeat = true -> ist der nächste Tastendruck in weniger als REPEATFREQ = 100 ms wird er verworfen -> kommt der nächste Tastendruck nicht innerhalb von REPEATTIMEOUT = 150 ms nach LastTime wird die Taste losgelassen, was bei einem Abstand von 100 ms der Tastendrücke IMHO doch dauern passieren müsste - oder habe ich da einen Denkfehler drin?
D.h. bräuchte man zusätzlich zur LastTime nicht noch so etwas wie einen LastActivity Zeitpunkt, damit man genauer weiß wann die Taste zuletzt vom Nutzer gedrückt wurde und auf den dann auch bei den Loslassbedingung prüft?