FS#5377 - Speed up iPod list scrolling when wheel accelerates

Attached to Project: Rockbox
Opened by Chris Russell (02DropTopM3) - Wednesday, 17 May 2006, 18:41 GMT
Last edited by Jonathan Gordon (jdgordon) - Thursday, 02 August 2007, 12:41 GMT
Task Type Patches
Category User Interface
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


One of the issues I've had a hard time dealing with after puting RockBox on my iPod is the slow scrolling speed when manipulating long lists, especially when using the id3tag database.

This patch speeds up the scrolling of all lists in RockBox by simply monitoring how fast you are spinning the wheel. If the wheel accelerates I switch from selecting the next / previous item to doing a page-down / page-up. It is a little jumpy when it starts paging up and down, but I found that using the already implemented page-up / page-down logic made the patch very simple to implement.

The patch is fairly clean, only modifying button.c, button.h and list.h.

Based on what I saw in the code I would think this patch will work with both iPod 4g and 5g players.
This task depends upon

Closed by  Jonathan Gordon (jdgordon)
Thursday, 02 August 2007, 12:41 GMT
Reason for closing:  Out of Date
Comment by Chris Russell (02DropTopM3) - Wednesday, 17 May 2006, 20:34 GMT
Switching to a single page-up or page-down works pretty good for shorter lists, but extremely long lists (i.e. 'All Tracks') still take way to long to navigate. The following patch uses the same logic but adds 4 steps of acceleration depending on the speed of the wheel as follows:

Step 1 = Page Down
Step 2 = Page Down * 4
Step 3 = Page Down * 10
Step 4 = Page Down * 20

While not nearly as smooth as the iPod firmware's scrolling, at least this makes those massive lists a little more manageable on the RockBox.

Before applying this patch be sure to remove the previous patch (ipod_accel_scroll_20060517.patch).
Comment by Chris (decayed.cell) - Saturday, 27 January 2007, 22:48 GMT
Requires updating for latest SVN