Re: Logitech MediaPlay

From: Christian Holzberger <molle(at)idontgivemynametoamachine.net>
Date: Fri, 03 Feb 2006 16:08:54 +0100

On Fri, 2006-02-03 at 15:28 +0100, Oliver Fromme wrote:
> Christian Holzberger <molle(at)idontgivemynametoamachine.net> wrote:
> > Oliver Fromme wrote:
> > > Christian Holzberger <molle(at)idontgivemynametoamachine.net> wrote:
> > > > 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.
> >
> > aber int waehr auch nicht richtig, da es ja bei 64 bit maschinen auch 64
> > bit entspricht bei 32 bit maschinen 32 bit (oder so aehnlich :) usw.
> > gibt es da nicht einen fixen 32 bit typen?
>
> Bitte nicht komplizierter machen als es ist. :-)
hehe warum neige ich dazu? :)
>
> Der Treiber speichert in der Variablen eine Bitmaske (pro
> Button ein Bit). Das oberste Bit bleibt ungenutzt, somit
> ist im ursprünglichen u_char Platz für den Status von
> sieben Buttons.
>
> Ein int ist auf _allen_ Architekturen, auf denen FreeBSD
> läuft, 32 Bits groß, somit würden 15 Buttons bequem rein-
> passen. Du kannst das Limit sogar auf 31 erhöhen, wenn
> Du magst.
jap
>
> Selbst _wenn_ ein int auf einer bestimmten Plattform 64
> Bits umfassen würde, wäre das nicht tragisch. Die oberen
> Bits blieben dann halt ungenutzt. Übrigens, wenn Du mal
> in /usr/include/sys/mouse.h reinguckst, wirst Du fest-
> stellen, daß dort im struct mousestatus die Buttons eben-
> falls in einem int festgehalten werden.
naja ein u_char wird ja auch nur gewaehlt seien worden um speicher zu
sparen... hmmm

mal schaun ich denke ich habe heute abend etwas zeit...
>
> Gruß
> Olli
>

-- 
Gruß,
Christian Holzberger
<molle(at)idontgivemynametoamachine.net>
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 03 Feb 2006 - 16:09:03 CET

search this site