robspr1 hat geschrieben:
Bei Windows werden Tastendrücke als Window-Messages (WM_KEYDOWN, WM_CHAR, WM_KEYUP) an das aktive Window geschickt. Wir haben bei der dBox keine Windows, und schon gar keine Window-Messages
Klar ;-)
Aber bei Windows braucht ein Programm ja auch kein "Fernster" um die Messages zu Empfangen. Es muß ja nur einmal nach dem Start bei Windows seine Prozeur anmelden die die Messages empfängt und abarbeitet.
Wie gesagt habe ich von Linux herzlich wenig ahnung. aber ich vermute jetzt einfach mal das es dort ähnliche Systeme gibt. Weil wie sollte es sonst anderst gehen.
robspr1 hat geschrieben:
sondern hauptsächlich darum, das auf der Fernbedienung Tasten sind die auf der dBox Tastatur nicht sind und umgekehrt.
Kommt das auf der Box nicht alles über die selbe Schnittstelle rein? Soll heißen: Die Tasten der FB (z.B. "Rot") sind ja auch nur Sondertasten der Tastatur.
Beim PC hat man ja auch Tastaturen mit haufenweise Multimediatasten.
Wenn ich jezt auch meiner PC Tastatur die Sondertaste "Lauter" drücke wird ein ganz normaler Tastendruck (aus dem Reserved) Bereich erzeugt und von Windows per Message an die Programme geschickt.
Der "Treiber" des Tastaturherstellers (wo man den Sondertasten Funktionen zuweist) fängt aber alle Tasten per hook ab um z.B. im Fall des Tastencodes für die "Lauter" Taste die Lautstärke des Mixers zu erhöhen und den Tastencode aus dem Buffer zu nehmen.
Startet man das Programm nicht geht dieser Tastendrück auch den ganz normalen Weg aller anderen Tastendrücke un jedes andere Programm könnte ihn auswerten wie jeden anderen Tastendruck.
AFAIK Funktioniert das ja unter Linux auch. Denn auch dort kann man die Sondertasten (z.B. die Standby Taste) nutzen.
Würde dein Daemon auf diese Weise arbeiten (wie die Sondertastenzuweisprogramme der Tastaturhersteller) gäbe ja div. Probleme nicht.
robspr1 hat geschrieben:Wenn du jetzt auf der Fernbedienung auf "ROT" drückst, dann wird der entsprechende Code erzeugt. Wenn Neutrino "das aktive Fenster
" ist, dann wertet Neutrino diesen Code aus, wenn Neutrino die Kontrolle an ein Plugin abgegeben hat, dann wertet das Plugin diesen Code aus. Ein Sonderfall ist hier sicher die Art wie die Console integriert wurde, da werten dann die Console und Neutrino zugleich die Tasten aus.
Ich vermute weil Neutrino garnicht weiß das die Console offen ist (wird ja vom System bereitgestellt) und so das Abfragen der Tastatur nicht unterbindet.
Das meinte ich mit Merkwürdig (irgendwie läuft die Sache bei Tuxbox anderst als normal).
Wenn ich unter meinem Linux am PC auf einer Console ein Programm offen habe und eine zweite öffne dann gehen alle Tastendrücke automatisch an das Programm in der zweiten Console ohne das das Programm in der ersten extra irgendwas abfragen (oh eine zweite Console aktiv. Da darf ich die Tastendrücke nicht annehmen) müsste.
robspr1 hat geschrieben:
Zurück zum Problem Tastatur - Fernbedienung: Man könnte jetzt auf Treiberebene die 10 Funktionstasten, eventuell auch mit ihren zweit und dritt-Funktionen, auf Fernbedienungscodes legen, d.h. F1 ergibt z.B. immer ROT, das einzige Plugin das damit Probleme hätte wäre VNC, da damit die Funktionstasten nicht mehr für den VNC Client funktionieren würden.
Oder Neutrino Reagiert für die einzelnen Funktion auf meheren Tastendrücken. So das man einstellen kann das beim Tastencode "Rot" und beim Tastendruck "F1" die Funktion Rot ausgeführt wird.
robspr1 hat geschrieben:Gelöst ist damit noch nicht das Problem, das wenn ich bei einer Texteingabe auf zweimal auf "2" drücke ich mit der Tastatur "22" haben möchte und mit der Fernbedienung "B". Dazu muss ich jedem Programm sagen wie er den "2"er jetzt auswerten soll.
Leider erzeugen die Ziffern der FB und der Tastatur wohl den selben Code. Da kann man dann wohl leider nichts tun.
IMHO das beste wäre man könnte bein Neutrino den SMS Eingabe Modus abschalten (oder umschalten. Z.b. "Gelb" wechselt zwischen normaler und SMS Eingabe).
robspr1 hat geschrieben:
Ein weiterer Vorteil der Tastatur ist natürlich, das durch die grosse Anzahl der Tasten wir auch eigene Funktionen definieren könnte, z.B. F10 öffnet den Teletext. Der Befehl "Teletext öffnen" ist jetzt aber kein Tastaturcode, ein Plugin könnte damit auch nichts anfangen, um das mit MS_Windows zu erreichen brauchst du auch ein eigenes Programm bzw. einen eigenen Treiber.
Jup so sehe ich deinen Daemon eigentlich. Quasi als das Programm was unter Windows den Tastaturen beiliegt und dafür sorgt das beim druck auf die "E-Mail" Taste das E-Mail Programm startet. Nur das man bei der D-Box Tastur keine "E-Mail" Taste hat sondern statdessen "ALT+F1" verwendet wird.
Und sowas hatte bissher wirklich gefehlt.
Das wofür due das Programm eigentlich geschrieben hast (F1 = schick "Rot" an Neutrino) sollte lieber Neutrino selber übernehmen indem es "F1" als alternative zu "Rot" akzeptiert. Aber IIRC hattest du das ja auch schon mal so gesagt.
robspr1 hat geschrieben:Und nochmals zum empfangen der "normalen" Tastendrücke: Vergleich einmal was bei einem Windows-Programm passieren kann wenn du auch SPACE drückst: Es kann ein Leerzeichen eingefügt werden oder es wird eine Taste gedrückt oder eine Checkbox selektiert oder wieder deselektiert ... Die Auswertung wie das SPACE zu interpretieren ist liegt immer bei den einzelnen Programmen, und genau das machen die Programmteile, seien es jetzt Enigma, Neutrino oder Plugins auch. Das, wenn ich auf "1" drücke meist eine 1 geschrieben wird, oder der Kanal 1 gewählt wird oder wie in Tuxmail auf das Konto 1 gewechselt wird ist also immer Sache der Programme selbst.
Natürlich. Wobei das ja einwenig komplexer ist.
Wenn ich die Leertaste drücke dann bekommt die ja als erstes Windows zu sehen. Ist dann eine Checkbox im aktieven Fenster selektiert dann schaltet Windows diese um und das Programm sieht dieses Tastendruck für die Leertaste garnicht (Bekommt aber statdessen die Checkbox Nummer X hat umgeschaltet Nachricht).
Ist das aktive Element des aktiven Fernsters ein Edit Control sieht das Programm die ganzen normalen Tastendrücke nicht denn sie landen im Edit control und das hat Windows selber unter Kontrolle.
Also geht jeder Tastendruck seinen ganz normalen Weg durch das System und jede Stelle lässt ihn passieren oder tut irgendetwas damit. Wie die einzelnen Programme dann Tatsächlich auf Tastendrücke Reagieren hängt selbstverständlich von den einzelnen Programmen ab.
Und irgendwie habe ich halt den Eindruck das das unter Tuxbox nicht so läuft sondern das das einiges durcheinander ist.
Halt das Neutrino Tastendrücke sieht auch wenn diese Console im hintergrund ist und eine andere läuft.
Aber evtl. liegt das auch daran das das ganze System für die FB entwickelt wurde und die Tastatur erst später reingebastelt wurde.
cu
usul