Contribute
Register

New VoodooPS2Controller, Keyboard, Trackpad (ClickPad support)

Status
Not open for further replies.
Hi RehabMan,

I have a dell latitude e4310 with ML.
I'm using your voodoops2controler.

This laptop has a synaptics trackpad but its one that returns

Feb 22 11:10:21 localhost kernel[0]: VoodooPS2SynapticsTouchPad Version 1.7.15 loaded...
Feb 22 11:10:21 localhost kernel[0]: ApplePS2SynapticsTouchPad::probe entered...
Feb 22 11:10:21 localhost kernel[0]: VoodooPS2Trackpad: Identify bytes = { 0x0, 0x0, 0x64 }
Feb 22 11:10:21 localhost kernel[0]: VoodooPS2Trackpad: Identify TouchPad command returned incorrect byte 2 (of 3): 0x00
Feb 22 11:10:21 localhost kernel[0]: ApplePS2SynapticsTouchPad::probe leaving.

I'm using VoodooPS2Mouse with ActLikeTrackpad.
Does this simulate scrolling?
If not is there some way to activate scrolling like pressing button 3 and moving up and down?

Besides this its the best driver so far, almost like a real trackpad :D

Beste regards,
voidRunner

You could try building your own from sources, disabling the test for valid Synaptics response. According to Synaptics spec that is not a valid response from a Synaptics trackpad. I would guess that the response is actually from the "blue nub" at the center of your keyboard. But forcing it may result in a fully usable trackpad (look at the ::probe function in VoodooPS2SynapticsTrackpad.cpp -- it should be fairly obvious if you have any programming experience at all).

And usually Synaptics trackpads provide scrolling (simulating a "wheel" mouse) by dragging on the right edge of the trackpad. This works on my Synaptics when I use VoodooPS2Mouse.kext. Currently there is no support in either driver for scrolling with the trackpad middle button and touching the pad (no support for a 3-button synaptics trackpad at all, actually).
 
Hello again,

I got some weird behavior when clicking trackpoint buttons. There are basically two cases, mostly the first, the second one only sporadic:
* a normal click is handled like holding the button down, i.e. clicking a dock icon doesn't immediately switch to the application but opens up the context menu
* on click nothing happens until I take another action like trackpoint or trackpad movement

I'm currently testing the following patch to fix problem one, maybe it also fixes problem two but will have to see.

Code:
--- a/VoodooPS2Trackpad/VoodooPS2SynapticsTouchPad.cpp
+++ b/VoodooPS2Trackpad/VoodooPS2SynapticsTouchPad.cpp
@@ -775,6 +775,7 @@ UInt32 ApplePS2SynapticsTouchPad::middleButton(UInt32 buttons, uint64_t now_abs,
     
     // if middle button is physically down (trackpoint/passthru) then just let it...
     if (buttons & 0x4)
+        cancelTimer(_buttonTimer);
         return buttons;
     
     // cancel timeout if we see input before timeout has fired, but after expired
 
Hello again,

I got some weird behavior when clicking trackpoint buttons. There are basically two cases, mostly the first, the second one only sporadic:
* a normal click is handled like holding the button down, i.e. clicking a dock icon doesn't immediately switch to the application but opens up the context menu
* on click nothing happens until I take another action like trackpoint or trackpad movement

I'm currently testing the following patch to fix problem one, maybe it also fixes problem two but will have to see.

Code:
--- a/VoodooPS2Trackpad/VoodooPS2SynapticsTouchPad.cpp
+++ b/VoodooPS2Trackpad/VoodooPS2SynapticsTouchPad.cpp
@@ -775,6 +775,7 @@ UInt32 ApplePS2SynapticsTouchPad::middleButton(UInt32 buttons, uint64_t now_abs,
     
     // if middle button is physically down (trackpoint/passthru) then just let it...
     if (buttons & 0x4)
+        cancelTimer(_buttonTimer);
         return buttons;
     
     // cancel timeout if we see input before timeout has fired, but after expired

You're on the right track, but probably correct fix would be:
Code:
    // if middle button is physically down (trackpoint/passthru) then just let it...
    if (buttons & 0x4)
    {
        cancelTimer(_buttonTimer);
        _pendingbuttons = 0;
        _mbuttonstate = STATE_NOOP;
        return buttons;
    }

Your missing brace there causes total disable of the middleButton functionality (because middleButton is always returning buttons and the rest of the code is never executed).

I'm not sure though, since in your description of the bug, you mention nothing about using the middle button, yet your change to the code here is all middle button related...
 
Yes you're right. But the interesting thing here is, that problem one is back with your more correct approach.

Sorry for my poor understanding of your code, I will try to understand it a little bit better.
But my thinking is that the key to this problem probably lies in the middleButton function. Because it worked correctly when disabling it altogether, like I accidentally did.
 
Yes you're right. But the interesting thing here is, that problem one is back with your more correct approach.

Sorry for my poor understanding of your code, I will try to understand it a little bit better.
But my thinking is that the key to this problem probably lies in the middleButton function. Because it worked correctly when disabling it altogether, like I accidentally did.

There's probably something I'm missing w/ a physical middle button conflicting with simulation... Probably some extra debug output would highlight the problem. Let me know what you come up with.
 
Yes you're right. But the interesting thing here is, that problem one is back with your more correct approach.

Sorry for my poor understanding of your code, I will try to understand it a little bit better.
But my thinking is that the key to this problem probably lies in the middleButton function. Because it worked correctly when disabling it altogether, like I accidentally did.

A useful tool for seeing the actual events that are being delivered (button up/down, etc) is the Event Viewer in KeyRemap4MacBook. I use it as a debug tool (and to remap my keyboard)...
 
A useful tool for seeing the actual events that are being delivered (button up/down, etc) is the Event Viewer in KeyRemap4MacBook. I use it as a debug tool (and to remap my keyboard)...

So I'm trying to remap my keys too and read through this thread but I'm sort of stuck. I'm not sure how to dump the scancodes for each key and when I try using KeyRemap4MacBook, some of the keys don't register (f2 and f3 and a few others). I understand the remapping process but I'm simply just not sure how to get the scancodes to map it properly.
 
So I'm trying to remap my keys too and read through this thread but I'm sort of stuck. I'm not sure how to dump the scancodes for each key and when I try using KeyRemap4MacBook, some of the keys don't register (f2 and f3 and a few others). I understand the remapping process but I'm simply just not sure how to get the scancodes to map it properly.

Install the debug version and look at Console system.log output. You will see lines like:

Code:
Feb 22 12:12:03 localhost kernel[0]: ApplePS2Keyboard: sending key 18=1f
Feb 22 12:12:03 localhost kernel[0]: ApplePS2Keyboard: sending key 1c=24
Feb 22 12:12:12 localhost kernel[0]: ApplePS2Keyboard: sending key 3c=78
Feb 22 12:12:14 localhost kernel[0]: ApplePS2Keyboard: sending key 3d=63
Feb 22 12:12:18 localhost kernel[0]: ApplePS2Keyboard: sending key e012=91
Feb 22 12:12:19 localhost kernel[0]: ApplePS2Keyboard: sending key e017=90

The first code on the left of the equal sign is the scan code that the key typed is generating.
 
Install the debug version and look at Console system.log output. You will see lines like:

Code:
Feb 22 12:12:03 localhost kernel[0]: ApplePS2Keyboard: sending key 18=1f
Feb 22 12:12:03 localhost kernel[0]: ApplePS2Keyboard: sending key 1c=24
Feb 22 12:12:12 localhost kernel[0]: ApplePS2Keyboard: sending key 3c=78
Feb 22 12:12:14 localhost kernel[0]: ApplePS2Keyboard: sending key 3d=63
Feb 22 12:12:18 localhost kernel[0]: ApplePS2Keyboard: sending key e012=91
Feb 22 12:12:19 localhost kernel[0]: ApplePS2Keyboard: sending key e017=90

The first code on the left of the equal sign is the scan code that the key typed is generating.

Thanks man, worked like a charm! Though my brightness keys don't seem to give any feedback, then again after the newer voodoops2 I installed my brightness modifiers didn't work. Makes sense!
 
One last thing though, it seems I have no idea how to get the ADB codes for apple functions (playpause, next song, last song, volume up, volume down) How do i get these codes? I only know a few from the logs.
 
Status
Not open for further replies.
Back
Top