On Thu, 20 May 2010, Sverre Froyen wrote: > I probably should have been clearer. Take the x-coordinate as an example. The > mouse input is scaled by s_mx/WSCONS_MOUSE_RES. The s_mx parameter can be set > by the user. I need the WSCONS_MOUSE_RES constant for two reasons, one to be > able to specify scaling fractions and two in order to correctly accumulate > mouse input where the mouse delta-x times s_mx/WSCONS_MOUSE_RES is not equal > to an integer. > > I have not tested the patch with an absolute positioning device (If I can get > my hands on one I will). As far as scaling being useful, if your device is too > sensitive (like the 1000dpi resolution mouse that I purchased), it seems like > it could be useful. In any case, you can always leave the scaling set as one- > to-one.
I came across this issue recently writing the Magic Mouse (1300dpi) support. Although I implemented scaling directly in the driver, I think ideally it should be handled further upstream. In fact, perhaps even further upstream than the wsmouse.. does X have any way to do mouse scaling, how does GNOME manage it, for example? I think that the mouse driver (or the user) should be able to specify the wsmouse resolution (USB/Bluetooth HID descriptor can contain that information at least), or else a 'reasonable default' should apply (what is standard generic mouse res, about 400dpi?). The speed option that the end-user wants to see is 'slow ... fast' with a reasonable number of increments, and designing a generic system should allow for the fast-mouse with small-screen as well as the slow-mouse with large-screen scenarios (with the same speed setting imo). So, the mouse driver should provide the mouse resolution and the display driver provide the display pitch and both of these should be combined with the speed factor that the user selected to give an overall scaling for that mouse/display combo. But, I haven't thought too much about it and that may be unworkable.. I don't know about absolute positioning, but that does need some kind of scaling also (if the device produces -100..100x-100..100 and your display is 1024x768 then) iain