Index: main_menu.c =================================================================== RCS file: /cvsroot/rockbox/apps/main_menu.c,v retrieving revision 1.55 diff -u -r1.55 main_menu.c --- main_menu.c 31 Aug 2002 23:07:11 -0000 1.55 +++ main_menu.c 4 Sep 2002 03:40:18 -0000 @@ -34,7 +34,7 @@ #include "power.h" #include "powermgmt.h" #include "sound_menu.h" - +#include "wps.h" #ifdef HAVE_LCD_BITMAP #include "bmp.h" #include "icons.h" @@ -196,6 +196,8 @@ return MENU_OK; } + + Menu main_menu(void) { int m; @@ -203,6 +205,7 @@ /* main menu */ struct menu_items items[] = { + { "Play Favorites", build_fave_playlist }, { "Sound Settings", sound_menu }, { "General Settings", settings_menu }, #ifdef HAVE_LCD_BITMAP Index: wps.c =================================================================== RCS file: /cvsroot/rockbox/apps/wps.c,v retrieving revision 1.134 diff -u -r1.134 wps.c --- wps.c 4 Sep 2002 01:51:08 -0000 1.134 +++ wps.c 4 Sep 2002 03:40:20 -0000 @@ -60,6 +60,34 @@ static struct mp3entry* id3 = NULL; static int old_release_mask; + +#define MAX_FAVE_SIZE 25 +/* Store five at a time */ +static int iFaveCtr = 0; + +int build_fave_playlist() +{ + int i; + int start_index = 0; + + playlist_clear(); + + int seed = current_tick; + + lcd_stop_scroll(); + + for(i = 0;i < iFaveCtr;i++) + { + playlist_add(favorites[i]); + } + + start_index = play_list(NULL, NULL, + 0, false, 0, seed); + + return start_index; + +} + #ifdef HAVE_PLAYER_KEYPAD void player_change_volume(int button) { @@ -560,10 +588,23 @@ old_release_mask = button_set_release(RELEASE_MASK); } break; - - /* mute */ #ifdef HAVE_PLAYER_KEYPAD - case BUTTON_MENU | BUTTON_PLAY: + case BUTTON_MENU | BUTTON_PLAY: + { + if (!mpeg_is_playing()) + break; + + lcd_stop_scroll(); + + if (store_favorite()) + { + lcd_puts(0, 0, "Stored Favorite"); + } else { + lcd_puts(0, 0, "No Stored Favorite"); + } + + break; + } #else case BUTTON_F1 | BUTTON_UP: #endif @@ -629,6 +670,25 @@ return false; } +int store_favorite() +{ + if (id3->path) + { + + if (iFaveCtr < MAX_FAVE_SIZE) + { + strncpy(favorites[iFaveCtr], id3->path, MAX_PATH); + iFaveCtr++; + return 1; + } else { + return 0; + } + } else { + return 0; + } +} + + #ifdef HAVE_LCD_BITMAP bool f2_screen(void) { @@ -970,3 +1030,5 @@ lastbutton = button; } } + + Index: wps.h =================================================================== RCS file: /cvsroot/rockbox/apps/wps.h,v retrieving revision 1.15 diff -u -r1.15 wps.h --- wps.h 3 Sep 2002 15:58:46 -0000 1.15 +++ wps.h 4 Sep 2002 03:40:20 -0000 @@ -21,11 +21,15 @@ #include "id3.h" #include "playlist.h" +#define MAX_FAVE_SIZE 25 + extern bool keys_locked; extern bool wps_time_countup; +char favorites[MAX_FAVE_SIZE][MAX_PATH]; +int store_favorite(void); int wps_show(void); - +int build_fave_playlist(void); bool load_custom_wps(void); bool display_custom_wps(int x_val, int y_val, bool do_scroll, char *wps_string); bool refresh_wps(bool refresh_scroll); @@ -34,5 +38,4 @@ bool f2_screen(void); bool f3_screen(void); #endif - #endif