diff options
| author | Jonathan Gordon <rockbox@jdgordon.info> | 2008-04-23 11:07:40 +0000 |
|---|---|---|
| committer | Jonathan Gordon <rockbox@jdgordon.info> | 2008-04-23 11:07:40 +0000 |
| commit | fe9dca3d5b6156b85f1085ecc11ba8e3a1dcd2d7 (patch) | |
| tree | 8e85e29dad56030c399377bcb429db6d935b544c /apps/plugins | |
| parent | 286d48f4ec99ec3f63687f623053e6dd01445863 (diff) | |
| download | rockbox-fe9dca3d5b6156b85f1085ecc11ba8e3a1dcd2d7.zip rockbox-fe9dca3d5b6156b85f1085ecc11ba8e3a1dcd2d7.tar.gz rockbox-fe9dca3d5b6156b85f1085ecc11ba8e3a1dcd2d7.tar.bz2 rockbox-fe9dca3d5b6156b85f1085ecc11ba8e3a1dcd2d7.tar.xz | |
option_screen() now accepts a viewport
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17223 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
| -rw-r--r-- | apps/plugins/lib/playback_control.c | 12 | ||||
| -rw-r--r-- | apps/plugins/lib/playback_control.h | 9 |
2 files changed, 15 insertions, 6 deletions
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, |