Index: apps/gui/gwps.c
===================================================================
RCS file: /cvsroot/rockbox/apps/gui/gwps.c,v
retrieving revision 1.44
diff -u -r1.44 gwps.c
--- apps/gui/gwps.c	21 May 2006 11:00:02 -0000	1.44
+++ apps/gui/gwps.c	19 Jun 2006 02:34:58 -0000
@@ -56,6 +56,9 @@
 #ifdef HAVE_LCD_COLOR
 #include "backdrop.h"
 #endif
+#include "playlist_viewer.h"
+#include "recording.h"
+#include "statusbar.h"
 
 #define WPS_DEFAULTCFG WPS_DIR "/rockbox_default.wps"
 #define RWPS_DEFAULTCFG WPS_DIR "/rockbox_default.rwps"
@@ -246,7 +249,72 @@
                 restore = true;
                 break;
 #endif
+                
+/* show current playlist */
+#ifdef WPS_PLAYLIST
+            case WPS_PLAYLIST:
+#ifdef WPS_PLAYLIST_PRE
+                if (lastbutton != WPS_PLAYLIST_PRE)
+                    break;
+#endif
+#ifdef WPS_RC_PLAYLIST
+            case WPS_RC_PLAYLIST:
+#ifdef WPS_RC_PLAYLIST_PRE
+                if ((button == WPS_RC_PLAYLIST) && (lastbutton != WPS_RC_PLAYLIST_PRE))
+                    break;
+#endif
+#endif
+                FOR_NB_SCREENS(i)
+                    gui_wps[i].display->stop_scroll();
+
+#ifdef HAVE_LCD_COLOR
+                show_main_backdrop();
+#endif
+                gui_syncstatusbar_draw(&statusbars,true);
+                if (playlist_viewer())
+                    return true;
+#ifdef HAVE_LCD_COLOR
+                show_wps_backdrop();
+#endif
+#ifdef HAVE_LCD_BITMAP
+                FOR_NB_SCREENS(i)
+                {
+                    gui_wps_set_margin(&gui_wps[i]);
+                }
+#endif
+                restore = true;
+                break;
+#endif
+
+/* Recording screen */
+#ifdef WPS_REC
+            case WPS_REC:
+
+                FOR_NB_SCREENS(i)
+                    gui_wps[i].display->stop_scroll();
+
+#ifdef HAVE_LCD_COLOR
+                show_main_backdrop();
+#endif
+                recording_screen();
+                /* Fake menu exit */
+                rec_menu();
+                if (main_menu())
+                    return true;
+#ifdef HAVE_LCD_COLOR
+                show_wps_backdrop();
+#endif
+#ifdef HAVE_LCD_BITMAP
+                FOR_NB_SCREENS(i)
+                {
+                    gui_wps_set_margin(&gui_wps[i]);
+                }
+#endif
+                restore = true;
+                break;               
+#endif
 
+                
 #ifdef WPS_RC_BROWSE
             case WPS_RC_BROWSE:
 #endif
Index: apps/gui/gwps.h
===================================================================
RCS file: /cvsroot/rockbox/apps/gui/gwps.h,v
retrieving revision 1.35
diff -u -r1.35 gwps.h
--- apps/gui/gwps.h	21 May 2006 11:00:02 -0000	1.35
+++ apps/gui/gwps.h	19 Jun 2006 02:34:58 -0000
@@ -49,6 +49,10 @@
 #define WPS_QUICK      (BUTTON_MODE | BUTTON_REPEAT)
 #define WPS_NEXT_DIR   (BUTTON_RIGHT | BUTTON_ON)
 #define WPS_PREV_DIR   (BUTTON_LEFT | BUTTON_ON)
+#define WPS_PLAYLIST   (BUTTON_REC | BUTTON_REL)
+#define WPS_PLAYLIST_PRE  BUTTON_REC
+#define WPS_REC_LONG   (BUTTON_REC | BUTTON_REPEAT) /* Not used yet */
+#define WPS_REC        (BUTTON_REC | BUTTON_ON)
 
 #define WPS_RC_NEXT_DIR   BUTTON_RC_BITRATE
 #define WPS_RC_PREV_DIR   BUTTON_RC_SOURCE
@@ -69,6 +73,9 @@
 #define WPS_RC_BROWSE_PRE BUTTON_RC_MENU
 #define WPS_RC_CONTEXT    (BUTTON_RC_MENU | BUTTON_REPEAT)
 #define WPS_RC_QUICK      (BUTTON_RC_MODE | BUTTON_REPEAT)
+#define WPS_RC_PLAYLIST   (BUTTON_RC_REC | BUTTON_REL)
+#define WPS_RC_PLAYLIST_PRE  BUTTON_RC_REC
+#define WPS_RC_REC_LONG   (BUTTON_RC_REC | BUTTON_REPEAT) /* Not used yet */
 
 #ifdef AB_REPEAT_ENABLE
 #define WPS_AB_SHARE_DIR_BUTTONS
