From a2740d9edc92ba9e2d3822c945847446b42de6ec Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Wed, 25 Apr 2007 11:20:19 +0000 Subject: convert the playlist viewer menus to the newer API git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13259 a1c6a512-1295-4272-9138-f99709370657 --- apps/lang/english.lang | 14 ++++++++ apps/playlist_viewer.c | 86 +++++++++++--------------------------------------- apps/settings_list.c | 5 +-- 3 files changed, 35 insertions(+), 70 deletions(-) (limited to 'apps') diff --git a/apps/lang/english.lang b/apps/lang/english.lang index a2592eb26b..8a8a98bd4a 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -10758,3 +10758,17 @@ e200: "Wheel Light Timeout" + + id: LANG_PLAYLISTVIEWER_SETTINGS + desc: title for the playlist viewer settings menus + user: + + *: "Playlist Viewer Settings" + + + *: "Playlist Viewer Settings" + + + *: "Playlist Viewer Settings" + + diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c index 1d066bbedb..d9de123831 100644 --- a/apps/playlist_viewer.c +++ b/apps/playlist_viewer.c @@ -125,10 +125,7 @@ static void format_line(const struct playlist_entry* track, char* str, static bool update_playlist(bool force); static int onplay_menu(int index); static bool viewer_menu(void); -static bool show_icons(void); -static bool show_indices(void); -static bool track_display(void); -static bool save_playlist(void); +static int save_playlist_func(void); static void playlist_buffer_init(struct playlist_buffer *pb, char *names_buffer, int names_buffer_size) @@ -422,26 +419,15 @@ static bool update_playlist(bool force) changed. */ static int onplay_menu(int index) { - struct menu_item items[4]; /* increase this if you add entries! */ - int m, i=0, result, ret = 0; + int result, ret = 0; struct playlist_entry * current_track= playlist_buffer_get_track(&viewer.buffer, index); + MENUITEM_STRINGLIST(menu_items, ID2P(LANG_PLAYLIST_MENU), NULL, + ID2P(LANG_REMOVE), ID2P(LANG_MOVE), + ID2P(LANG_CATALOG_ADD_TO), ID2P(LANG_CATALOG_ADD_TO_NEW)); bool current = (current_track->index == viewer.current_playing_track); - items[i].desc = ID2P(LANG_REMOVE); - i++; - - items[i].desc = ID2P(LANG_MOVE); - i++; - - items[i].desc = ID2P(LANG_CATALOG_ADD_TO); - i++; - - items[i].desc = ID2P(LANG_CATALOG_ADD_TO_NEW); - i++; - - m = menu_init(items, i, NULL, str(LANG_PLAYLIST_MENU), NULL, NULL); - result = menu_show(m); + result = do_menu(&menu_items, NULL); if (result == MENU_ATTACHED_USB) { ret = -1; @@ -493,65 +479,29 @@ static int onplay_menu(int index) break; } } - menu_exit(m); return ret; } /* Menu of viewer options. Invoked via F1(r) or Menu(p). */ +MENUITEM_SETTING(show_icons, &global_settings.playlist_viewer_icons, NULL); +MENUITEM_SETTING(show_indices, &global_settings.playlist_viewer_indices, NULL); +MENUITEM_SETTING(track_display, + &global_settings.playlist_viewer_track_display, NULL); +MENUITEM_FUNCTION(save_playlist_item, 0, ID2P(LANG_SAVE_DYNAMIC_PLAYLIST), + save_playlist_func, 0, NULL, Icon_NOICON); +MAKE_MENU(viewer_settings_menu, ID2P(LANG_PLAYLISTVIEWER_SETTINGS), + NULL, Icon_Playlist, + &show_icons, &show_indices, &track_display, &save_playlist_item); static bool viewer_menu(void) { - int m; - bool result; - - static const struct menu_item items[] = { - { ID2P(LANG_SHOW_ICONS), show_icons }, - { ID2P(LANG_SHOW_INDICES), show_indices }, - { ID2P(LANG_TRACK_DISPLAY), track_display }, - { ID2P(LANG_SAVE_DYNAMIC_PLAYLIST), save_playlist }, - }; - - m=menu_init( items, sizeof(items) / sizeof(*items), NULL, - NULL, NULL, NULL ); - result = menu_run(m); - menu_exit(m); - - settings_save(); - - return result; -} - -/* Show icons in viewer? */ -static bool show_icons(void) -{ - return set_bool((char *)str(LANG_SHOW_ICONS), - &global_settings.playlist_viewer_icons); -} - -/* Show indices of tracks? */ -static bool show_indices(void) -{ - return set_bool((char *)str(LANG_SHOW_INDICES), - &global_settings.playlist_viewer_indices); -} - -/* How to display a track */ -static bool track_display(void) -{ - static const struct opt_items names[] = { - { STR(LANG_DISPLAY_TRACK_NAME_ONLY) }, - { STR(LANG_DISPLAY_FULL_PATH) } - }; - - return set_option((char *)str(LANG_TRACK_DISPLAY), - &global_settings.playlist_viewer_track_display, INT, names, 2, - NULL); + return do_menu(&viewer_settings_menu, NULL) == SYS_USB_CONNECTED; } /* Save playlist to disk */ -static bool save_playlist(void) +static int save_playlist_func(void) { save_playlist_screen(viewer.playlist); - return false; + return 0; } /* View current playlist */ diff --git a/apps/settings_list.c b/apps/settings_list.c index 49ec5b5f32..dfb7c4ba08 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c @@ -625,8 +625,9 @@ const struct settings_list settings[] = { "playlist viewer icons",NULL), OFFON_SETTING(0,playlist_viewer_indices,LANG_SHOW_INDICES,true, "playlist viewer indices",NULL), - {F_T_INT,&global_settings.playlist_viewer_track_display,LANG_TRACK_DISPLAY, - INT(0),"playlist viewer track display","track name,full path",UNUSED}, + CHOICE_SETTING(0, playlist_viewer_track_display, LANG_TRACK_DISPLAY, 0, + "playlist viewer track display","track name,full path", NULL, 2, + ID2P(LANG_DISPLAY_TRACK_NAME_ONLY), ID2P(LANG_DISPLAY_FULL_PATH)), CHOICE_SETTING(0, recursive_dir_insert, LANG_RECURSE_DIRECTORY , RECURSE_OFF, "recursive directory insert", off_on_ask, NULL , 3 , ID2P(LANG_OFF), ID2P(LANG_ON), ID2P(LANG_RESUME_SETTING_ASK)), -- cgit v1.2.3