Index: apps/bookmark.c
===================================================================
RCS file: /cvsroot/rockbox/apps/bookmark.c,v
retrieving revision 1.47
diff -u -r1.47 bookmark.c
--- apps/bookmark.c	21 Jan 2006 23:43:56 -0000	1.47
+++ apps/bookmark.c	4 Jul 2006 20:27:00 -0000
@@ -401,6 +401,7 @@
 {
     int  key;
     int  fd;
+    int i;
     bool done = false;
 
     if(global_settings.autoloadbookmark == BOOKMARK_NO)
@@ -427,19 +428,25 @@
     else
     {
         /* Prompting user to confirm bookmark load */
-        lcd_clear_display();
+        FOR_NB_SCREENS(i)
+            screens[i].clear_display();
+        
         gui_syncstatusbar_draw(&statusbars, false);
+        
+        FOR_NB_SCREENS(i)
+        {
 #ifdef HAVE_LCD_BITMAP
-        lcd_setmargins(0, STATUSBAR_HEIGHT);
-        lcd_puts_scroll(0,0, str(LANG_BOOKMARK_AUTOLOAD_QUERY));
-        lcd_puts(0,1, str(LANG_CONFIRM_WITH_PLAY_RECORDER));
-        lcd_puts(0,2, str(LANG_BOOKMARK_SELECT_LIST_BOOKMARKS));
-        lcd_puts(0,3, str(LANG_CANCEL_WITH_ANY_RECORDER));
+            screens[i].setmargins(0, STATUSBAR_HEIGHT);
+            screens[i].puts_scroll(0,0, str(LANG_BOOKMARK_AUTOLOAD_QUERY));
+            screens[i].puts(0,1, str(LANG_CONFIRM_WITH_PLAY_RECORDER));
+            screens[i].puts(0,2, str(LANG_BOOKMARK_SELECT_LIST_BOOKMARKS));
+            screens[i].puts(0,3, str(LANG_CANCEL_WITH_ANY_RECORDER));
+            screens[i].update();
 #else
-        lcd_puts_scroll(0,0, str(LANG_BOOKMARK_AUTOLOAD_QUERY));
-        lcd_puts(0,1,str(LANG_RESUME_CONFIRM_PLAYER));
+            screens[i].puts_scroll(0,0, str(LANG_BOOKMARK_AUTOLOAD_QUERY));
+            screens[i].puts(0,1,str(LANG_RESUME_CONFIRM_PLAYER));
 #endif
-        lcd_update();
+        }
 
         while(!done)
         {
@@ -448,9 +455,15 @@
             switch(key)
             {
 #ifdef HAVE_LCD_BITMAP
+#ifdef BOOKMARK_RC_DOWN
+                case BOOKMARK_RC_DOWN:
+#endif
                 case BOOKMARK_DOWN:
                     return bookmark_load(global_bookmark_file_name, false);
 #endif
+#ifdef SETTINGS_RC_OK
+                case SETTINGS_RC_OK:
+#endif
                 case SETTINGS_OK:
                     return bookmark_load(global_bookmark_file_name, true);
 
@@ -556,9 +569,11 @@
     int bookmark_count = 0;
 
 #ifdef HAVE_LCD_BITMAP
+    int i;
     int x = lcd_getxmargin();
     int y = lcd_getymargin();
-    lcd_setmargins(0, 0);
+    FOR_NB_SCREENS(i)
+        screens[i].setmargins(0, 0);
 #endif
 
     bookmark_count = get_bookmark_count(bookmark_file_name);
@@ -602,6 +617,9 @@
         key = button_get(true);
         switch(key)
         {
+#ifdef BOOKMARK_RC_SELECT
+            case BOOKMARK_RC_SELECT:
+#endif
             case BOOKMARK_SELECT:
 #ifdef BOOKMARK_SELECT_PRE
                 if (lastkey != BOOKMARK_SELECT_PRE)
@@ -610,12 +628,20 @@
                 /* User wants to use this bookmark */
 #ifdef HAVE_LCD_BITMAP
                 if (global_settings.statusbar)
-                    lcd_setmargins(0, STATUSBAR_HEIGHT);
+                {
+                    FOR_NB_SCREENS(i)
+                        screens[i].setmargins(0, STATUSBAR_HEIGHT);
+                }
                 else
-                    lcd_setmargins(0, 0);
+                {
+                   FOR_NB_SCREENS(i)
+                        screens[i].setmargins(0, 0);
+                }
 #endif
                 return bookmark;
-
+#ifdef BOOKMARK_RC_DELETE
+            case BOOKMARK_RC_DELETE:
+#endif
             case BOOKMARK_DELETE:
                 /* User wants to delete this bookmark */
                 delete_bookmark(bookmark_file_name, bookmark_id);
@@ -625,25 +651,43 @@
                     bookmark_id = bookmark_count -1;
                 break;
 
+#ifdef SETTINGS_RC_DEC
+            case SETTINGS_RC_DEC:
+            case SETTINGS_RC_DEC | BUTTON_REPEAT:
+#endif
             case SETTINGS_DEC:
             case SETTINGS_DEC | BUTTON_REPEAT:
                 bookmark_id--;
                 break;
 
+#ifdef SETTINGS_RC_DEC
+            case SETTINGS_RC_INC:
+            case SETTINGS_RC_INC | BUTTON_REPEAT:
+#endif
             case SETTINGS_INC:
             case SETTINGS_INC | BUTTON_REPEAT:
                 bookmark_id++;
                 break;
 
+#ifdef SETTINGS_RC_CANCEL
+            case SETTINGS_RC_CANCEL:
+#endif
+#ifdef SETTINGS_RC_CANCEL2
+            case SETTINGS_RC_CANCEL2:
+#endif
             case SETTINGS_CANCEL:
 #ifdef SETTINGS_CANCEL2
             case SETTINGS_CANCEL2:
 #endif
+#ifdef SETTINGS_RC_OK2
+            case SETTINGS_RC_OK2:
+#endif
 #ifdef SETTINGS_OK2
             case SETTINGS_OK2:
 #endif
 #ifdef HAVE_LCD_BITMAP
-                lcd_setmargins(x, y);
+                FOR_NB_SCREENS(i)
+                    screens[i].setmargins(x, y);
 #endif
                 return NULL;
 
@@ -725,6 +769,7 @@
     bool playlist_shuffle = false;
     int  len;
     char *dot;
+    int i;
 
     /* getting the index and the time into the file */
     parse_bookmark(bookmark,
@@ -732,8 +777,11 @@
                    &ms, &repeat_mode, &playlist_shuffle,
                    global_filename);
 
-    lcd_clear_display();
-    lcd_stop_scroll();
+    FOR_NB_SCREENS(i)
+    {
+        screens[i].clear_display();
+        screens[i].stop_scroll();
+    }
 
 #ifdef HAVE_LCD_BITMAP
     /* bookmark shuffle and repeat states*/
@@ -764,7 +812,8 @@
       dot=NULL;
     if (dot)
         *dot='\0';
-    lcd_puts_scroll(0, 0, (unsigned char *)global_filename);
+    FOR_NB_SCREENS(i)
+        screens[i].puts_scroll(0, 0, (unsigned char *)global_filename);
     if (dot)
         *dot='.';
 
@@ -772,12 +821,14 @@
     snprintf(global_temp_buffer, sizeof(global_temp_buffer), "%s: %2d/%2d",
              str(LANG_BOOKMARK_SELECT_BOOKMARK_TEXT),
              bookmark_id + 1, bookmark_count);
-    lcd_puts_scroll(0, 1, (unsigned char *)global_temp_buffer);
+    FOR_NB_SCREENS(i)
+        screens[i].puts_scroll(0, 1, (unsigned char *)global_temp_buffer);
 
     /* bookmark resume index */
     snprintf(global_temp_buffer, sizeof(global_temp_buffer), "%s: %2d",
              str(LANG_BOOKMARK_SELECT_INDEX_TEXT), resume_index+1);
-    lcd_puts_scroll(0, 2, (unsigned char *)global_temp_buffer);
+    FOR_NB_SCREENS(i)
+        screens[i].puts_scroll(0, 2, (unsigned char *)global_temp_buffer);
 
     /* elapsed time*/
     if ( ms < 3600000 )
@@ -797,12 +848,16 @@
                  ms % 3600000 / 60000,
                  (unsigned int)(ms % 60000) / 1000);
     }
-    lcd_puts_scroll(0, 3, (unsigned char *)global_temp_buffer);
+    FOR_NB_SCREENS(i)
+        screens[i].puts_scroll(0, 3, (unsigned char *)global_temp_buffer);
 
     /* commands */
-    lcd_puts_scroll(0, 4, str(LANG_BOOKMARK_SELECT_PLAY));
-    lcd_puts_scroll(0, 5, str(LANG_BOOKMARK_SELECT_EXIT));
-    lcd_puts_scroll(0, 6, str(LANG_BOOKMARK_SELECT_DELETE));
+    FOR_NB_SCREENS(i)
+    {
+        screens[i].puts_scroll(0, 4, str(LANG_BOOKMARK_SELECT_PLAY));
+        screens[i].puts_scroll(0, 5, str(LANG_BOOKMARK_SELECT_EXIT));
+        screens[i].puts_scroll(0, 6, str(LANG_BOOKMARK_SELECT_DELETE));
+    }
 #else
     (void)bookmark_id;
     len=strlen(global_filename);
@@ -833,12 +888,20 @@
     }
 
     gui_syncstatusbar_draw(&statusbars, false);
-    lcd_puts_scroll(0,0,global_temp_buffer);
-    lcd_puts(0,1,str(LANG_RESUME_CONFIRM_PLAYER));
+    
+    FOR_NB_SCREENS(i)
+    {
+        screens[i].puts_scroll(0,0,global_temp_buffer);
+        screens[i].puts(0,1,str(LANG_RESUME_CONFIRM_PLAYER));
+    }
     if (dot)
         *dot='.';
 #endif
-    lcd_update();
+
+#ifdef HAVE_LCD_BITMAP
+    FOR_NB_SCREENS(i)
+        screens[i].update();
+#endif
 }
 
 
Index: apps/bookmark.h
===================================================================
RCS file: /cvsroot/rockbox/apps/bookmark.h,v
retrieving revision 1.11
diff -u -r1.11 bookmark.h
--- apps/bookmark.h	24 Feb 2006 15:42:50 -0000	1.11
+++ apps/bookmark.h	4 Jul 2006 20:27:01 -0000
@@ -32,6 +32,10 @@
 #define BOOKMARK_SELECT BUTTON_SELECT
 #define BOOKMARK_DELETE (BUTTON_ON | BUTTON_SELECT)
 #define BOOKMARK_DOWN BUTTON_DOWN
+#define BOOKMARK_RC_SELECT BUTTON_RC_MENU
+#define BOOKMARK_RC_DELETE (BUTTON_RC_ON | BUTTON_RC_MENU)
+#define BOOKMARK_RC_DOWN BUTTON_RC_FF
+#define BOOKMARK_RC_EXIT BUTTON_RC_STOP
 
 #elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
 #define BOOKMARK_SELECT BUTTON_SELECT
