Re: Logitech MediaPlay

From: Christian Holzberger <molle(at)idontgivemynametoamachine.net>
Date: Sun, 12 Feb 2006 15:14:54 +0100

So habe jetzt das ganze mal "gepatcht"

MAX_BUTTONS auf 31 und den type von button auf int
klappt er erkennt 16 buttons an der mouse...

Xev gibt auch events wieder nur komischerweise fehen die von Button_5 ->
bis button_7 und 15.

(also 3 buttons laufen noch nicht) alle andern werden auf /dev/sysmouse
auch wiedergespiegelt (komischerweise doch mehr als 10)

werde jetzt anfangen in den sources vom moused rumzulesen, vieleicht
finde ich ja die stelle wo raw input in logische buttons gewandelt wird.

On Fri, 2006-02-03 at 11:32 +0100, Oliver Fromme wrote:
> Christian Holzberger <molle(at)idontgivemynametoamachine.net> wrote:
> > Oliver Fromme wrote:
> > > Christian Holzberger <molle(at)idontgivemynametoamachine.net> wrote:
> > > > Das stimmt so nicht. Xev erkennt schon 7 der 12 Buttons,
> > >
> > > Xev »erkennt« gar nichts, sondern gibt nur Events aus.
> > > Daß die Buttons irgendwelche Events generieren, mag ja
> > > durchaus sein.
> >
> > hehe, das wollt ich doch sagen, Xev gibt für 7 buttons events aus:
>
> [aufs wesentliche gekürzt]
>
> > state 0x10, button 1, same_screen YES
> > state 0x10, button 4, same_screen YES
> > state 0x10, button 6, same_screen YES
>
> Das sind ja erstmal nur drei verschiedene Buttons. Die
> Button-Nummern können von 0 bis 255 gehen.
>
> Ich habe mir mal kurz die Mühe gemacht, den aktuellen
> Button-Support von X zu recherchieren. Leider ist das
> ganze ein wenig verwirrend. Das normale X-Protokoll
> unterstützt nach wie vor nur fünf verschiedene Buttons
> (die, wie gesagt, Codes von 0 bis 255 haben können,
> was man mit xmodmap(1) konfigurieren kann). Siehe z.B.
> die Ausgabe von:
>
> $ grep Button /usr/X11R6/include/X11/X.h
>
> Selbst die XInputExtension unterstützt nur fünf Buttons,
> siehe XOpenDevice(3X11).
>
> An einigen Stellen scheinen es aber die Entwickler von
> X.org aufgebohrt zu haben. Während auf einem Rechner,
> auf dem ich noch XFree86 4.4.0 laufen habe (aktuell ist
> 4.5.0), auch xmodmap und andere Tools maximal fünf
> Pointer-Buttons handhaben wollen, scheint das unter
> einem aktuellen X.org auf elf erhöht worden zu sein.
> Allerdings gehe ich davon aus, daß das inkompatibel
> mit anderen X-Server ist.
>
> Du kannst ja mal testweise »xmodmap -pp« eingeben und
> gucken, was das ausgibt.
>
> > > > Wie gesagt ich kann 7 nutzen also stimmt die Aussage so nicht.
> > >
> > > Was meinst Du mit »nutzen«? Wie nutzt Du diese sieben
> > > denn? Daß das X-Protokoll nur fünf Pointer-Buttons unter-
> > > scheiden kann, ist nunmal so und läßt sich nicht ohne wei-
> > > teres ändern.
> >
> > Warum kann mir Xev diese anderen Buttons dann anzeigen?
>
> Wir reden aneinander vorbei. :-)
>
> Es mag ja durchaus sein, daß xev bei jedem Knöpfchen ein
> Event anzeigt. Das heißt aber noch lange nicht, daß (a)
> alle Buttons im X-Protokoll und somit auf Applikations-
> ebene unterschieden werden können, und daß (b) irgendwel-
> chen Anwendungen die Buttons konkret nutzen können.
>
> Wenn ich von »nutzen« sprach, meinte ich nicht xev, denn
> xev ist nur ein Debugging-Tool, keine Anwendung. Mit
> »nutzen« meine ich, ob Du z.B. im Webbrowser oder Office-
> Programm (oder sonstwo) verschiedene Aktionen mit jedem
> der Buttons verknüpfen kannst.
>
> Und interessant wäre dann auch, ob das auch remote mit
> einem anderen X-Server funktioniert. Da tippe ich mal
> auf ein definitives »nein«. :-)
>
> In einer anderen Mail schriebst Du:
> > Kann man den UMS irgendwie ohne Codeänderungen zwingen mehr als 7
> > Buttons zu erkennen? Per sysctl finde ich da nichts... (habe aber mit
> > kerneloptionstuning in fbsd aber auch nicht so die Erfahrung)
> >
> > ums0: Logitech USB Receiver, rev 1.10/25.00, addr 2, iclass 3/1
> > ums0: 7 buttons and Z dir.
> > ^ hmmmmm.... (das stimmt so nicht)
>
> Aha, warum hast Du die Ausgabe nicht mal früher gezeigt?
> Das ist doch mal etwas handfestes.
>
> Ein oberflächlicher Blick in /usr/src/sys/dev/usb/ums.c
> liefert nach einer Sekunde folgende Zeile:
>
> #define MAX_BUTTONS 7 /* chosen because sc_buttons is u_char */
>
> Du könntest mal versuchen, das Limit auf 15 zu erhöhen.
> Du mußt dann allerdings auch an einigen Stellen die
> Typen anpassen, damit das funktioniert, z.B. in der
> Funktion ums_intr() in der Zeile »u_char buttons = 0;«
> einen int draus machen.
>
> Per moused sollten dann immerhin zehn Buttons nutzbar sein
> (mehr gibt das sysmouse-Protokoll nicht her). Bei direkter
> Verwendung des ums-Treibers sollten alle 12 Buttons gehen.
> Was X11 daraus macht, ist natürlich wieder ein andere
> Frage, siehe oben.
>
> Gruß
> Olli
>
> PS: Falls das mit dem Patch an ums.c funktioniert, kannst
> Du ja mal versuchen, das per send-pr einzureichen.
>
> --
> Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
> Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd
> Any opinions expressed in this message may be personal to the author
> and may not necessarily reflect the opinions of secnetix in any way.
>
> "I have stopped reading Stephen King novels.
> Now I just read C code instead."
> -- Richard A. O'Keefe
>
>
> To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
> with "unsubscribe de-bsd-questions" in the body of the message
>

-- 
Gruß,
Christian Holzberger 
EMail: <molle(at)idontgivemynametoamachine.net>
Web: http://www.idontgivemynametoamachine.net
"Wer auf dem Scheiterhaufen noch frohlockt, triumphiert nicht über den 
Schmerz, sondern darüber, keinen Schmerz zu fühlen, wo er ihn erwartete."
- Friedrich Nietzsche
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sun 12 Feb 2006 - 15:15:41 CET

search this site