FS#4811 - RFC: Basic wheel acceleration

Attached to Project: Rockbox
Opened by Brandon Low (lostlogic) - Friday, 10 March 2006, 02:59 GMT
Task Type Patches
Category Drivers
Status Closed
Assigned To No-one
Operating System iPod 5G
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


This is a _very_ quick whack at offering acceleration on the iPod 5g button click wheel.

* Does this feel better to people?
* What improvements should be made before we adopt something like this?
* I also move the queue empty check out a bit to save some interrupt time when we're just going to throw away the calculations any way.
This task depends upon

Closed by  Brandon Low (lostlogic)
Saturday, 18 March 2006, 21:18 GMT
Reason for closing:  Rejected
Additional comments about closing:  Ferget this patch for now, the wheel\'s fine as it is now in CVS pending real acceleration.
Comment by Brandon Low (lostlogic) - Friday, 10 March 2006, 05:06 GMT
Updated patch, much less sucking occurs.
Comment by Paul Louden (darkkone) - Friday, 10 March 2006, 09:24 GMT
After trying the "much less sucking" version, I have to say I like it. Overall the UI feels *much* more responsive. Since the queue empty check was added, sometimes I'd have problems getting the volume to change (specifically when the CPU was at 30mhz, I'm also using the cpu-boost enabling patch. The backlight just wouldn't come on.)

So, simply put, "I like it." The UI feels much more responsive to me, in general, with it.
Comment by Brandon Low (lostlogic) - Friday, 10 March 2006, 13:00 GMT
Updated to apply against my recent code policing
Comment by Ralf Herz (herz42) - Sunday, 12 March 2006, 15:45 GMT
I also like the patch.
Although turning the wheel (I think also without the patch) seems to consume much processing power and prevents the pcm buffer filling to keep up.

Here is a patch for the patch to further slow it down :)
It implements the BUTTON_REPEAT feature that will prevent wrapping at the beginning/end of a list while in a fast scroll action.

Therefore it sets the BUTTON_REPEAT flag if the scroll wheel was active in the last HZ/5.
It doesn't care about scroll directions. But I think that is no problem in this case.