Contribute
Register

New VoodooPS2Controller, Keyboard, Trackpad

Status
Not open for further replies.
Is there a way to adjust sensitivity acceleration on the x axis compared to the y??
I have a 8460p and am finding the trackpad unusable compared to my 2008 macbook.
It is far too sensitive along the y axis, and slower moving along the x axis? Overshooting when moving vertically, and slow along x axis so having to make multiple movements.

Any ideas of how to tune this? Modify acceleration table?

I'm not really sure how acceleration tables work or whether there is separate acceleration for x & y. They are undocumented. I suspect not. It is strange that your trackpad has different DPI on x vs. y. I wonder if something else isn't going on.

For now the code has the concept of divisors, to effectively reduce the resolution of the input. We don't use it in the Probook, we have the divisor at one (1). Certainly you could make changes to the code to allow a different divisor for x vs. y. But I would first look at the input that you're getting and try to make sense of it (use the debug version).
 
There are multiple divisors. Do you know which should be modified in the case of normal tracking?
 
There are multiple divisors. Do you know which should be modified in the case of normal tracking?

What divisor are you having trouble with? I think they are pretty self-explanatory.
 
There are multiple divisors. Do you know which should be modified in the case of normal tracking?

By the way, I separated Divisor for you. Now you can separately set DivisorX and DivisorY.
You will have to build it with Xcode (latest version 4.5.2), of course.
 
Hey man, you are really magic! This kext even works on my Sony laptop with synaptics touchpad. Although I have removed some customized keyboard hotkey in your VoodooPS2Keyboard.kext, but all "tap-to-click" "two-finger" "three-finger gestures" features work like a charm. Thanks !!!:thumbup:

The only issue I experienced is that the "physical click" doesn't work. This is strange to me, because tap-to-click works fine, how can the "real" clicking on my touchpad not be recognized?! (neither clicking on the bottom left/right nor on the central of touchpad; btw, with the primary ApplePS2Controller.kext, I have those physical clicks.)
I have not clue for that... Do you have an idea plz?
 
Hey man, you are really magic! This kext even works on my Sony laptop with synaptics touchpad. Although I have removed some customized keyboard hotkey in your VoodooPS2Keyboard.kext, but all "tap-to-click" "two-finger" "three-finger gestures" features work like a charm. Thanks !!!:thumbup:

The only issue I experienced is that the "physical click" doesn't work. This is strange to me, because tap-to-click works fine, how can the "real" clicking on my touchpad not be recognized?! (neither clicking on the bottom left/right nor on the central of touchpad; btw, with the primary ApplePS2Controller.kext, I have those physical clicks.)
I have not clue for that... Do you have an idea plz?

Don't know. Since I don't have your hardware and don't have documentation for that kind of trackpad, the only way would be for you to run the debug version, perhaps add some code to inspect the packets as they arrive and figure out where the click information is placed in the packet.

Probably the other ApplePS2Controller.kext is running in mouse emulation mode where the trackpad itself translates into mouse clicks.
 
My case is the same as the previous lenovo guy. when I push touchpad without exciting the touch sensor
, there is nothing. I only got: dx=0, dy=0 (0,0) z=0 w=0 mode=(0,0,0) buttons=0 wasdouble=0

I almost have no coding experience but still have taken a look into your code. I think you mean adding the "packet[0]" - "packet[5]" into the debug output and play around with the "dispatchRelativePointerEventWithPacket" function, right?

I don't quite understand from those comments which packet format are you actually using. It will be nice if you can clarify this and maybe point out some important variables to play with. thx
 
My case is the same as the previous lenovo guy. when I push touchpad without exciting the touch sensor
, there is nothing. I only got: dx=0, dy=0 (0,0) z=0 w=0 mode=(0,0,0) buttons=0 wasdouble=0

I almost have no coding experience but still have taken a look into your code. I think you mean adding the "packet[0]" - "packet[5]" into the debug output and play around with the "dispatchRelativePointerEventWithPacket" function, right?

Yes.

I don't quite understand from those comments which packet format are you actually using. It will be nice if you can clarify this and maybe point out some important variables to play with. thx

Re-read the comments. It is pretty obvious which packet format is being used, by reading the comments and reading the code. In particular, "This is with wmode on, which is pretty much what this driver assumes."
 
Finally, I made it works.
The first thing I notice is that my trackpad doesn't have the real L/R buttons as your HP ProBook. So the signals at Packet[0]&0x3 don't really exist, that is also what I saw from the system log. When I push on my pad, the signal popup was located at Packet[3]&0x1, it shows a clicking information on my pad, independent of push position. I made a small modification on "buttons" here, from:
Code:
UInt32 buttons = packet[0] & 0x03;
to:
Code:
UInt32 buttons = packet[3] & 0x01;
Then add a small function to filter the bottom right part as right click. Now everything works!!!


Just one question about your code here. In the "deal with pass through packet" section, I don't see why "passbuttons" has sth to do with "packet[1] & 0x3" Which means "X9, X8" according to the format applied.

Another thing is that I'm not able to a build a release version with "archive" in Xcode. here is the error info:
Code:
symbols referenced by relocation entries that can't be stripped in: /Users/xxx/Library/Developer/Xcode/DerivedData/VoodooPS2Controller-aaybooypapvzkwdbryxkbzoqrvsd/Build/Intermediates/ArchiveIntermediates/VoodooPS2Trackpad/
Sorry for this naive question, I'm really fresh to Xcode.
 
Finally, I made it works.
The first thing I notice is that my trackpad doesn't have the real L/R buttons as your HP ProBook. So the signals at Packet[0]&0x3 don't really exist, that is also what I saw from the system log. When I push on my pad, the signal popup was located at Packet[3]&0x1, it shows a clicking information on my pad, independent of push position. I made a small modification on "buttons" here, from:
Code:
UInt32 buttons = packet[0] & 0x03;
to:
Code:
UInt32 buttons = packet[3] & 0x01;
Then add a small function to filter the bottom right part as right click. Now everything works!!!

Cool. When you publish the code, I can take a look at it to see if there is a way to integrate the changes in a safe way that doesn't break other laptops (those w/o click pad).

Just one question about your code here. In the "deal with pass through packet" section, I don't see why "passbuttons" has sth to do with "packet[1] & 0x3" Which means "X9, X8" according to the format applied.

When a passthru packet is sent it is really a 3-byte "mouse packet" encapsulated in a 6-byte w=3 packet. So the bits there refer to the button information for the passthru device. In the case that w=3 in the 6-byte wmode packet, the packet is actually the 3rd format (in the comments).

The passthru code was put in just as an experiment, I'm not sure we have found somebody with the hardware that is willing/able to completely debug that code. It only activates when the passthru hardware is present and active.

Another thing is that I'm not able to a build a release version with "archive" in Xcode. here is the error info:
Code:
symbols referenced by relocation entries that can't be stripped in: /Users/xxx/Library/Developer/Xcode/DerivedData/VoodooPS2Controller-aaybooypapvzkwdbryxkbzoqrvsd/Build/Intermediates/ArchiveIntermediates/VoodooPS2Trackpad/
Sorry for this naive question, I'm really fresh to Xcode.

Did you try a "clean" (Product -> Clean) first? And you might want to set your defaults to put Derived Data relative to the project. That's what I do and it makes it easier to find the build products. Xcode -> Preferences -> Locations -> Advanced -> Custom : Relative to Workspace, Products: Build/Products, Intermediates: Build/Intermediates.
 
Status
Not open for further replies.
Back
Top