PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [spark7162] BUG: OpenWebIF Remote



fun7
01.07.2014, 20:28
Hi,

im OpenWebIF ist ein Bug, die "Exit" Taste funktioniert nicht.

Die Vollständige Fernbedienung lädt nicht (Image Fehlt).


Gruß

SpaceRat
02.07.2014, 21:09
Das mit der Exit-Taste ist ein HDMU-spezifischer Fehler.
Da ist irgendwas faul im Staate Dänemark, aber ich weiß noch nicht was.

Auf dem Topf gibt es das selbe Problem, auf der Ultimo nicht.

Das fehlende Bild der Fernbedienung könnte ein Fehler mit der Build-Umgebung sein.

santa
02.07.2014, 21:45
weiß nicht wie das genau funktioniert im webif, alle mips haben eine KEY_EXIT in der normalen keymap, alle SH4 nur KEY_HOME!

SpaceRat
02.07.2014, 22:42
Kriegt man es hin, daß die schon in der normalen Keymap KEY_EXIT heißt?

Zumindest auf der Topf-FB finde ich keinen Button, den ich mit "Home" assoziieren würde.

Ansonsten würde nur search & replace über die OpenWebif-Remotes (also deren XML) helfen.

santa
02.07.2014, 22:47
ja kann man machen, aber da machst du dir keine freunde.

Als irgendwann mal die Treiber also, evremote2, erstellt wurden, hat man die exit taste immer home genannt.
Das hat sich dann bei allen SH4 Boxen so durchgezogen, ich war einmal schon kurz davor die alle umzubenennen,
aber das macht mehr probleme als man sich vorher vorstellen kann.
Da wir ja nicht nur e2 bauen mit dem git, sondern auch neutrino usw.

Das Problem ist aber schon immer auch bei der integration von plugins, weil die eben auch exit statt home erwarten

SpaceRat
03.07.2014, 13:29
Dann wäre ich aber dafür, das Problem sauber zu lösen.

Wie Du schon sagtest wäre es am saubersten, die Exit-Taste auch so bzw. KEY_EXIT zu nennen.
Ist die Frage, ob solch ein Ende mit Schrecken statt einem Schrecken ohne Ende wirklich so unmöglich zu realisieren wäre.
Wenn ich das richtig sehe müßte man dann ja "nur" den entsprechenden Workaround aus allen speziell für sh4 angepaßten Plugins wieder rausnehmen ...

Vorteil wäre, daß man zukünftig weniger Aufwand beim Anpassen von Plugins hätte.
Nachteilig wäre, daß man bei Plugins die auch noch andere Anpassungen für sh4 erfordern, eine zusätzliche Variante pflegen müßte (Ohne Keymap-Workaround, aber mit den anderen Workarounds bzw. mit sh4-binaries).

Eine Alternative wäre es, den Workaround einmalig in E2 selber zu plazieren, so daß pluginseitig sowohl KEY_HOME als auch KEY_EXIT bzw. deren Werte aus eActionMap funktionieren.
Damit könnte man den Workaround in den Plugins langsam auslaufen lassen, denn Plugins mit Workaround liefen erst einmal weiter aber eben auch solche ohne Workaround.
Wenn man mag, kann man's auch gleich andersherum machen, also in den Keymaps KEY_EXIT statt KEY_HOME nutzen und einfach dafür zu sorgen, daß KEY_HOME korrekt auf KEY_EXIT umgemappt wird.
Da OpenPLi wohl auch grad an den Keymaps hantiert und dabei mit Sicherheit KEY_EXIT nutzt, kann dieser Weg sogar unterm Strich das Leben leichter machen.

Der dritte Ansatz wäre es, denselben Workaround wie in den anderen sh4-Plugins auch in OpenWebif zu implementieren.
Da klappen sich mir allerdings die Fußnägel hoch. Portablen Code in nicht-portablen zu verwandeln, nur um einen Fehler aus der Vergangenheit nicht ausmerzen zu müssen war schon immer schlechter Stil.

Noch ein Tip für einen temporären user-seitigen Workaround:
Meistens kommt man mit der "Menü"-Taste oder der roten Taste auch irgendwie an das gewünschte Ziel.

santa
03.07.2014, 13:51
Man ich werde alt, mir ist so als hätte ich vor Jahren schon mal was darüber gelesen.
Ich glaube die key_xxx Bezeichnungen sind im webif irrelevant, nur die Zahl interessiert.
Und im webif ist die dezimale Version zur hex im Treiber.

Die hex zahlen kann man aber nicht ändern da die so vom fp kommen.

SpaceRat
03.07.2014, 14:42
menno, diese Board-Software nervt.
Kostet Geld und ist schlechter als phpBB3 ... schon wieder eine aufwendig recherchierte Antwort weg, weil der gut sichtbare Antwort-Button eine neue leere Antwort startet, statt die Antwort zu senden ...

Nein, das ist kein Scancode, was da in der Remote steht.

Der Wert der dort steht, wird von enigma in enigma.eActionMap ausgewertet.
Man müßte also E2 für sh4 so anpassen, daß es 174 statt wie KEY_EXIT (Die es in den Keymaps nicht gibt) wie KEY_HOME behandelt oder aber man müßte KEY_EXIT (mit derselben Funktion wie KEY_HOME) in die Keymaps einbauen.

- - - Aktualisiert - - -

So, weitere Recherche fördert zutage:

Die verwendeten Werte kommen aus dem Linux-Kernel!
http://lxr.free-electrons.com/source/include/uapi/linux/input.h

Dort findet man:
#define KEY_HOME 102
#define KEY_EXIT 174

Die 174 ist also für jedes mit Linux laufende Gerät identisch.

- - - Aktualisiert - - -

Man kann also theoretisch die Fernbedienungen unter OpenWebif ans Laufen kriegen, indem man in der Definition der Fernbedienung 174 jeweils durch 102 ersetzt, damit ein Druck auf die (eigentlich ja nicht vorhandene) Home-Taste statt eines auf die Exit-Taste simuliert wird.

Damit würde man aber einen Fehler weiter manifestieren:
Jede Fernbedienung hat eine Exit-Taste und die hat unter E2 auch eine Bedeutung. Das Senden von Tastendrücken über das Webif ist eine API-Funktion, die möglicherweise auch von Drittanwendungen (Dreamdroid u.ä.) genutzt wird. Diese werden immer 174 für Exit senden, das Anpassen der Remote ist also ein absolut häßlicher Workaround, der lediglich die Funktion der in OpenWebif eingebauten FB ermöglicht, externen Apps aber nicht weiterhilft.

Die einzig saubere Lösung ist es, das fehlerhafte Mapping der Exit-Taste auf KEY_HOME zu beseitigen.

Als Workaround könnte man in den Keymaps auch die KEY_EXIT-Taste mit jeweils derselben Funktion wie KEY_HOME einbauen.

santa
03.07.2014, 15:22
Habe die exits mit Absicht aus keymap geworfen, bei sh4 ist nun mal alles anders, das hat eben historische Gründe.
Das Problem ist aber das wir nur ein sh4 git unter vielen haben und man kann dann nix mehr unterander mergen.

SpaceRat
03.07.2014, 19:21
Nun, was schlägst Du vor?

Die seltsame Konfiguration beizubehalten heißt auch, das auch in Zukunft jedes Plugin einzeln angepaßt werden muß.
Die sh4-Fernbedienungen im OpenWebif anzupassen verschiebt das Problem dabei nur:
Geräte ohne eigens definierte FB nutzen die "Dreambox"-Standardfernbedienung und die enthält natürlich auch KEY_EXIT bzw. 174 für Exit.
Externe Apps, die die API zum Senden von Keycodes nutzen, senden natürlich auch 174 für Exit und nicht 102 für Home, wenn sie Exit wollen.

Bleibt ein sh4-spezifisches Ummappen von allen durch das Webif zu sendenden 174 auf 102, das umgeht das Problem, aber auch nur im Webif, andere Plugins müssen weiterhin getrennt angepaßt werden.

Und last but not least könnte man natürlich dieses Ummappen im sh4-E2 selber durchführen, also in eActionMap, dann würde das gesamte sh4-Enigma fortan jeden über eActionMap empfangenen Keycode 174 als Keycode 102 für KEY_HOME weiterverarbeiten ...

Schön ist keine der Lösungen, aber am ehesten noch die letzte.
Wenn es im E2 "seltsam" bleiben soll, dann soll sich auch das sh4-E2 darum kümmern, die Konsequenzen auszubaden.