The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.
Problems? See this thread at archive.org.

    Envy 2XXX Touchpad

    Discussion in 'HP' started by Auxilio_ab_alto, Sep 7, 2011.

  1. Auxilio_ab_alto

    Auxilio_ab_alto Notebook Consultant

    Reputations:
    0
    Messages:
    162
    Likes Received:
    0
    Trophy Points:
    30
    I did some searching on here, and couldn't find any info. Are there better drivers available for the Sandy Bridge Envy's? Mine are working fine, but the four finger swipe brings up Aero Switcher, which sucks. I'd rather be able to dedicate it to running a certain program and therefore behave more like a Mac.
     
  2. eafd

    eafd Notebook Deity

    Reputations:
    113
    Messages:
    755
    Likes Received:
    0
    Trophy Points:
    30
    AFAIK no.

    Although I may be able to alter reil's so that a four finger swipe brings up switcher.

    Can you see if reil's is able to detect 4 fingers? Start it up and click on the asterisk button, then start observing the packets and see if it can detect 4 fingers.
     
  3. Auxilio_ab_alto

    Auxilio_ab_alto Notebook Consultant

    Reputations:
    0
    Messages:
    162
    Likes Received:
    0
    Trophy Points:
    30
    Just tested it. Didn't work with 4 fingers. As soon as I put the fourth finger down, it will say that it detects 0 fingers.

    Is the source code open? I might be interested in it.
     
  4. eafd

    eafd Notebook Deity

    Reputations:
    113
    Messages:
    755
    Likes Received:
    0
    Trophy Points:
    30
  5. Auxilio_ab_alto

    Auxilio_ab_alto Notebook Consultant

    Reputations:
    0
    Messages:
    162
    Likes Received:
    0
    Trophy Points:
    30
    Finally got it compiled, took an hour. There's a couple of absolute links to what looks like the original programmer's directories that I had to manually change. And it took me a bit to realize I needed to download Synaptic's SDK. I'll see what I can do now.
     
  6. Auxilio_ab_alto

    Auxilio_ab_alto Notebook Consultant

    Reputations:
    0
    Messages:
    162
    Likes Received:
    0
    Trophy Points:
    30
    Hopefully I'm not moving in the complete wrong direction. Most of my experience has been with C#, Java, and Python. I've had a little exposure to C, but none at all with C++. And usually I'm looking at my own code, not other people's.

    After a while of looking through the code, I modified Packet.cpp in the SynapticSDK so that the getCurrentNumberOfFingers() function looks like this:
    Code:
    long Packet::getCurrentNumberOfFingers()
    {
        long currentNumberOfFingers = getExtraFingerState();
    	
    	if (currentNumberOfFingers > 300)
    		{currentNumberOfFingers=4;}
    	else
    		{currentNumberOfFingers &= 3;}
        return currentNumberOfFingers;
    }
    So now the Packet Observer will show the correct amount of fingers on the Touchpad, whether I use 1, 2, 3 or 4. But I don't know where to start to do the rest of the things I'd like.

    When I do a four finger swipe up, I want it to hide all the open windows, and show the desktop. When I do a four finger swipe down, I want it to zoom out and show all the windows, like OS X's Expose feature.

    The program Switcher that I linked to in the first post can handle the window stuff. Right now, I have the Expose type action set to fire when I hit the "Application" button on my keyboard, which is the key between the right alt and right control keys. So if Reil's driver could virtually press that key on a four finger swipe down, I think we'd have a winner.

    Even better, if you could modify the driver so that on the Action tab, there is a new section called "Four Finger Scroll", and you could individually configure the action so that it will either run a command (like from the command prompt) or virtually press a specified button, that would be awesome.

    I would literally pay you money if we could get this functionality in there.
     
  7. reil

    reil Notebook Guru

    Reputations:
    45
    Messages:
    62
    Likes Received:
    0
    Trophy Points:
    15
    that code you modified looks like a giant hack. extra finger state was never documented anywhere but i can't imagine a value > 300 means 4 fingers are present especially when 1-3 means up to 3 fingers.

    so i don't really remember this code, its been a while since i touched it and especially since i don't have an envy, anything i say next may be wrong. i'm just skimming some of the source code, which i don't have myself. so a warning to anyone, if that mediafire stuff ever disappears, its gone forever.

    if you're really lazy and want to change it to four fingers, update the ScrollEventHandler's instantiation of ExecutingScrollEvent from 3 to 4.

    if you want to do this properly, i think you need to update the ActionConfiguration to support setting/storing 3/4 finger actions, either by creating a class that ActionConfiguration is composed of with a map<# of fingers, whatever this new class is> or you create n versions of ActionConfiguration under Configurations, one for each number of finger set you want to support (3/4/5). Then you need to rework the ExecutingScrollEvent to support whatever you just wrote.

    to add a new key combination, you would start at the Actions class and add a section to the giant branching code that i never got around to writing in a nice way. probably under the individual action section.

    the fact that you don't know c++ shouldn't matter, i am (or was) a java dev and wrote envyTouchPad using managed c++ to learn. i've used c#, java, and some minor c++ but nothing extensive. c++ and java are very similar, basically if you make every variable a smart pointer, it'll be like java. also, if you ever work as a software engineer, you rarely ever work in code you wrote.

    looking around, i don't think anyone has modified my app so i'm curious if your bounty will get someone to try. more than likely, i expect my code to become a hacked up mess which will make me a sad panda but whatever, i have nothing to lose or gain from it becoming a mess.

    so i'm going to disappear again (i think this was my first post since i left/got rid of my envy), hopefully my advice will let you do what you wanted. the code is fairly well organized so it should be easier to learn than two-finger-scroll was. that was a mess.

    good luck!
     
  8. Auxilio_ab_alto

    Auxilio_ab_alto Notebook Consultant

    Reputations:
    0
    Messages:
    162
    Likes Received:
    0
    Trophy Points:
    30
    It definitely was a hack, it was the quickest way I could get it to recognize four fingers before I had to go to bed, since I had class and work the next morning. For some reason, before the hack, if I put down more than three fingers, that variable would shoot up to several thousand. Probably that bit shift did it. I didn't spend too much time on it.

    I'm more of an IT major. It's unlikely that I'll ever become a software engineer. I just write code to help me accomplish the things our business needs from an IT perspective. I've never done anything really low level. So jumping into your code was a bit of a stretch for my skills. It's definitely good stuff, I love useful utilities like it. Just too complex for me to spend the time wrapping my head around.

    I managed to get a setup that I'm comfortable with. The stock drivers can fire a program with a three finger press. I wrote an AutoIT script to virtually press the Application key, which accomplishes the Expose type feature. Then Switcher can make the desktop appear as one of the windows. Not quite as fluid as having a four finger solution, but it will work. But if anybody does manage to get what I want working, my offer still stands.

    Thanks for your help. It seemed your code was pretty popular in the other thread it's posted in. Perhaps you should upload the source to some place like SourceForge and then maybe others who are more capable than me would be able to contribute?
     
  9. trucha

    trucha Notebook Consultant

    Reputations:
    20
    Messages:
    115
    Likes Received:
    1
    Trophy Points:
    31
    Is there any way of getting two finger swipe to go back/forward on webpages? I would love you forever if there's a way to do that. :D
     
  10. TheAtreidesHawk

    TheAtreidesHawk Notebook Deity

    Reputations:
    101
    Messages:
    1,951
    Likes Received:
    1
    Trophy Points:
    56
    This is just crazy. I don't understand how Apple can get something like this so buttery smooth and make it feel practically effortless...yet the Envy has to be HACKED in order to even get functional....
     
  11. jaman1020

    jaman1020 Notebook Enthusiast

    Reputations:
    0
    Messages:
    17
    Likes Received:
    0
    Trophy Points:
    5
    Did you guys ever get this working? I was able to disable aero switcher in the registry and by setting switcher to launch at the same time, it did bring it up, sometimes. There were a lot of glitches though, and the mouse would freeze, and you had to click first to get it moving.