From fe9dca3d5b6156b85f1085ecc11ba8e3a1dcd2d7 Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Wed, 23 Apr 2008 11:07:40 +0000 Subject: option_screen() now accepts a viewport git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17223 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/lib/playback_control.c | 12 ++++++++---- apps/plugins/lib/playback_control.h | 9 +++++++-- 2 files changed, 15 insertions(+), 6 deletions(-) (limited to 'apps/plugins/lib') diff --git a/apps/plugins/lib/playback_control.c b/apps/plugins/lib/playback_control.c index cba4f5a..af4384e 100644 --- a/apps/plugins/lib/playback_control.c +++ b/apps/plugins/lib/playback_control.c @@ -20,6 +20,7 @@ #include "plugin.h" struct plugin_api* api = 0; +struct viewport *parentvp = NULL; bool prevtrack(void) { @@ -61,14 +62,14 @@ static bool volume(void) { const struct settings_list* vol = api->find_setting(&api->global_settings->volume, NULL); - return api->option_screen((struct settings_list*)vol, false, "Volume"); + return api->option_screen((struct settings_list*)vol, parentvp, false, "Volume"); } static bool shuffle(void) { const struct settings_list* shuffle = api->find_setting(&api->global_settings->playlist_shuffle, NULL); - return api->option_screen((struct settings_list*)shuffle, false, "Shuffle"); + return api->option_screen((struct settings_list*)shuffle, parentvp, false, "Shuffle"); } static bool repeat_mode(void) @@ -77,7 +78,7 @@ static bool repeat_mode(void) api->find_setting(&api->global_settings->repeat_mode, NULL); int old_repeat = api->global_settings->repeat_mode; - api->option_screen((struct settings_list*)repeat, false, "Repeat"); + api->option_screen((struct settings_list*)repeat, parentvp, false, "Repeat"); if (old_repeat != api->global_settings->repeat_mode && (api->audio_status() & AUDIO_STATUS_PLAY)) @@ -103,14 +104,17 @@ MAKE_MENU(playback_control_menu, "Playback Control", NULL, Icon_NOICON, &prevtrack_item, &playpause_item, &stop_item, &nexttrack_item, &volume_item, &shuffle_item, &repeat_mode_item); -void playback_control_init(struct plugin_api* newapi) +void playback_control_init(struct plugin_api* newapi, + struct viewport parent[NB_SCREENS]) { api = newapi; + parentvp = parent; } bool playback_control(struct plugin_api* newapi, struct viewport parent[NB_SCREENS]) { api = newapi; + parentvp = parent; return api->do_menu(&playback_control_menu, NULL, parent, false) == MENU_ATTACHED_USB; } diff --git a/apps/plugins/lib/playback_control.h b/apps/plugins/lib/playback_control.h index 6029152..49e789b 100644 --- a/apps/plugins/lib/playback_control.h +++ b/apps/plugins/lib/playback_control.h @@ -20,9 +20,14 @@ #define __PLAYBACK_CONTROL_H__ /* Use these if your menu uses the new menu api. - REMEBER to call playback_control_init(rb) before rb->do_menu()... */ + REMEBER to call playback_control_init(rb) before rb->do_menu()... + The parent viewport here is needed by the internal functions, + So, make sure you use the same viewport for the rb->do_menu() call + that you use in the playback_control_init() call +*/ extern const struct menu_item_ex playback_control_menu; -void playback_control_init(struct plugin_api* newapi); +void playback_control_init(struct plugin_api* newapi, + struct viewport parent[NB_SCREENS]); /* Use this if your menu still uses the old menu api */ bool playback_control(struct plugin_api* api, -- cgit v1.1