Is there interest in a customized mouse driver?

Discussion in 'hardware' started by Sully, Feb 24, 2011.

Thread Status:
Not open for further replies.
  1. Sully

    Sully Registered Member

    Joined:
    Dec 23, 2005
    Posts:
    3,719
    I have had a need recently to try out a home-brewed mouse driver. It is stable and nice so far in my testing on a few machines. It does not offer a GUI however.

    So, because I am getting paid to do so, I am creating a very basic GUI. The driver is configured via registry, and when you change a value in the registry, it instantly takes effect. Want to get rid of acceleration curves and smoothing forever, this is the ticket (it is why I am doing this).

    Anyhow, while what I am building is going to be quick and lean, I already have permission to take what I learn on the job, and create a much more sophisticated model that I can do with as I please, providing I also give it to the boss. The mouse driver is free of charge that I can tell and was distributed in many locations.

    Is there any interest in this from anyone here? I have had to learn how to use a floating point binary 32 bit conversion, or whatever it is called exactly. It is what the registry requests. Not a standard hex value, but a hex value based of a binary32 value. Quite the tricky beast to understand. Any math whiz here want to also help me write the code would be appreciated. Oh, there is an API call to convert the "float to hex", but I really would like to learn something more than just how to make another API call.

    Sul.
     
  2. Sully

    Sully Registered Member

    Joined:
    Dec 23, 2005
    Posts:
    3,719
    Don't know if there is any interest in this or not, but what the heck.

    There is a mouse driver floating around called "moudrv". It is free from what I can see. Anyway, this mouse driver is very low level, even before direct input. This means that how you set it, will remain throughout any program. If you use photoshop or cad, and set it for that, when you go into a game, it will also be the same. Game sensitivity for instance is turned to 0 and the mouse always stays the same.

    What I have done for my boss is to create a rough GUI for this. They have a couple programs they use that they wanted to have more control over the mouse without opening the driver interface but also one that allowed complete control of the acceleration.

    I have the rough shell working with simple buttons. You can choose to speed up or slow down the following

    mouse speed
    mouse acceleration
    smoothing maximum
    smoothing sensitivity

    These are X and Y independent, although I haven't made the GUI do that yet. You can also take control of button mappings (like swapping buttons) and scroll speeds/sensitivity. There is both x86 and x64 versions of the driver. I can also make an x64 version of the GUI.

    I have incorporated a recently learned mouse hook on event routine as well, so that if you hold a specific key down, the scroll becomes a trigger to speed up or slow down. I have provided a "stepping rate" so that as you button/scroll up or down the speed, it changes by one of the following values

    .01
    .10
    .25
    .50
    1

    In this manner one can really fine tune the speed and acceleration of the mouse driver, something that might be of use when needing pinpoint accuraccy because you are working at pixel level.

    When I am done with this for the boss, I plan on spending a little time on it at home while I am familiar with the code, and create something for all to use.

    Sul.
     
Loading...
Thread Status:
Not open for further replies.