This is the bug/patch tracker for Rockbox. Click here for more information.
Quick links: Bugs · Patches · Rockbox frontpage
FS#7451 - Alternative method of list acceleration for scrollwheel-based devices
Attached to Project:
Rockbox
Opened by Michael Sevakis (MikeS) - Wednesday, 18 July 2007, 23:28 GMT+2
Last edited by Jonathan Gordon (jdgordon) - Monday, 23 July 2007, 13:27 GMT+2
Opened by Michael Sevakis (MikeS) - Wednesday, 18 July 2007, 23:28 GMT+2
Last edited by Jonathan Gordon (jdgordon) - Monday, 23 July 2007, 13:27 GMT+2
|
DetailsThis is _potentially_ applicable to any scrollwheel-based device. This first patch will only work on the e200 series however. It's not SVN ready but since the availablity of event data is sort of hacked in to make it just work.
List acceleration is based upon velocity-squared time a constant times number of missed wheel interrupts. The perceived velocity in the list should remain rather constant regardless of CPU load for any given wheel speed. Fine control remains fine and yet you can move very far with a single wheel flick. It should be easy to aim for a particular range in the list (looking at the scroll bar). A small amount of time with it should make aiming pretty much a reflex action. |
This task depends upon
I know that "the OF does it" is not, in itself, a good reason for doing anything, but Apple must be doing some things right to have their market dominance - style, certainly, but also the feel of the UI.
Just a random thought there, from early in the morning. Apologies if it's not relevant!
Anyone should keep in mind that until decoding is done on the COP, alot of movement in the list will always trigger the boost in the codec thread which causes that sticky movement because the frequent drawing causes the PCM buffer to run low. This patch keeps the scrolling moving along in the list regardless of that.
yeah, it feels very nice on the sansa, ill see if I can try it on my sisters nano a bit later. It completly breaks the list movement on joystick targets (tested on h300).
did you want to use this or the svn code depending on the target? or was the plan for one code which worked better on the wheel targets?
The bit format for the message data is:
[31:24] = skip count + 1
[23:0] = clicks/uS in fixed 0.24: v = 0xffffffu/dt
Driver is requires a high speed mode where skips will be allowed and v computed.
Slow speed mode never skips since that's fine control...v = 0, even if messages are skipped. Skip count still sent.
...if you were inclined to mess with any iPod scrollwheel driver.