Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Patch to allow wrapping around in directories

Patch to allow wrapping around in directories

From: Bill Napier <napier_at_pobox.com>
Date: 27 Jun 2002 08:57:54 -0400

I got tired of numerous button presses to get to my "Various Artists"
folder (at the end of the alphabet) and missed being able to wrap
around to the end by pressing "-" at the top of the list. Hence this
patch. Feel free to include it in CVS if you like it.

Bill
napier_at_pobox.com

Index: apps/tree.c
===================================================================
RCS file: /cvsroot/rockbox/apps/tree.c,v
retrieving revision 1.51
diff -u -b -r1.51 tree.c
--- apps/tree.c 27 Jun 2002 09:12:29 -0000 1.51
+++ apps/tree.c 27 Jun 2002 12:52:22 -0000
_at__at_ -168,15 +168,17 _at__at_
 
     for ( i=start; i < start+TREE_MAX_ON_SCREEN; i++ ) {
         int len;
+ int offset=i;
 
- if ( i >= filesindir )
- break;
+ if ( offset >= filesindir ) {
+ offset-=filesindir;
+ }
 
- len = strlen(dircacheptr[i]->name);
+ len = strlen(dircacheptr[offset]->name);
 
 #ifdef HAVE_LCD_BITMAP
- if ( dircacheptr[i]->file ) {
- if(!strcasecmp(&dircacheptr[i]->name[len-4], ".m3u"))
+ if ( dircacheptr[offset]->file ) {
+ if(!strcasecmp(&dircacheptr[offset]->name[len-4], ".m3u"))
                 icon_type = Playlist;
             else
                 icon_type=File;
_at__at_ -186,7 +188,7 _at__at_
                    6, MARGIN_Y+(i-start)*LINE_HEIGTH, 6, 8, true);
 #endif
 
- lcd_puts(LINE_X, LINE_Y+i-start, dircacheptr[i]->name);
+ lcd_puts(LINE_X, LINE_Y+i-start, dircacheptr[offset]->name);
     }
 
     return filesindir;
_at__at_ -354,24 +356,26 _at__at_
                 else {
                     if (start) {
                         start--;
+ } else {
+ start=numentries-1;
+ }
                         numentries = showdir(currdir, start);
                         put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true);
                     }
- }
                 break;
 
             case TREE_NEXT:
- if (dircursor + start + 1 < numentries ) {
                     if(dircursor+1 < TREE_MAX_ON_SCREEN) {
                         put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false);
                         dircursor++;
                         put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true);
- }
- else {
+ } else {
                         start++;
+ if (start>=numentries) {
+ start=0;
+ }
                         numentries = showdir(currdir, start);
                         put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true);
- }
                 }
                 break;
 


-- 
space for rent
Received on 2002-06-27

Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy