diff options
| author | Jonathan Gordon <rockbox@jdgordon.info> | 2007-03-26 09:14:16 +0000 |
|---|---|---|
| committer | Jonathan Gordon <rockbox@jdgordon.info> | 2007-03-26 09:14:16 +0000 |
| commit | 73c46ffd6ebabbf926510952bbcdf1fa7c0591ff (patch) | |
| tree | de05466b72342c7300b114cc93551d10718cfe78 /apps/plugins/lib | |
| parent | 1764583f99c6d64de5b748df10b37a3ed9268a1f (diff) | |
| download | rockbox-73c46ffd6ebabbf926510952bbcdf1fa7c0591ff.zip rockbox-73c46ffd6ebabbf926510952bbcdf1fa7c0591ff.tar.gz rockbox-73c46ffd6ebabbf926510952bbcdf1fa7c0591ff.tar.bz2 rockbox-73c46ffd6ebabbf926510952bbcdf1fa7c0591ff.tar.xz | |
Convert the playback control menu to the new API. Makes a good example
for plugin devs :)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12919 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/lib')
| -rw-r--r-- | apps/plugins/lib/playback_control.c | 41 | ||||
| -rw-r--r-- | apps/plugins/lib/playback_control.h | 6 |
2 files changed, 29 insertions, 18 deletions
diff --git a/apps/plugins/lib/playback_control.c b/apps/plugins/lib/playback_control.c index 8a1381a..672d275 100644 --- a/apps/plugins/lib/playback_control.c +++ b/apps/plugins/lib/playback_control.c @@ -98,26 +98,31 @@ static bool repeat_mode(void) return result; } +MENUITEM_FUNCTION(prevtrack_item, 0, "Previous Track", + prevtrack, NULL, NULL, Icon_NOICON); +MENUITEM_FUNCTION(playpause_item, 0, "Pause / Play", + play, NULL, NULL, Icon_NOICON); +MENUITEM_FUNCTION(stop_item, 0, "Stop Playback", + stop, NULL, NULL, Icon_NOICON); +MENUITEM_FUNCTION(nexttrack_item, 0, "Next Track", + nexttrack, NULL, NULL, Icon_NOICON); +MENUITEM_FUNCTION(volume_item, 0, "Change Volume", + volume, NULL, NULL, Icon_NOICON); +MENUITEM_FUNCTION(shuffle_item, 0, "Enable/Disable Shuffle", + shuffle, NULL, NULL, Icon_NOICON); +MENUITEM_FUNCTION(repeat_mode_item, 0, "Change Repeat Mode", + repeat_mode, NULL, NULL, Icon_NOICON); +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); -bool playback_control(struct plugin_api* newapi) +void playback_control_init(struct plugin_api* newapi) { - int m; api = newapi; - bool result; - - static struct menu_item items[] = { - { "Previous Track", prevtrack }, - { "Pause / Play", play }, - { "Stop Playback", stop }, - { "Next Track", nexttrack }, - { "Change Volume", volume }, - { "Enable/Disable Shuffle", shuffle }, - { "Change Repeat Mode", repeat_mode }, - }; +} - m=api->menu_init( items, sizeof(items) / sizeof(*items), NULL, - NULL, NULL, NULL); - result = api->menu_run(m); - api->menu_exit(m); - return result; +bool playback_control(struct plugin_api* newapi) +{ + api = newapi; + return api->do_menu(&playback_control_menu, NULL) == SYS_USB_CONNECTED; } diff --git a/apps/plugins/lib/playback_control.h b/apps/plugins/lib/playback_control.h index a259fc9..679a890 100644 --- a/apps/plugins/lib/playback_control.h +++ b/apps/plugins/lib/playback_control.h @@ -19,6 +19,12 @@ #ifndef __PLAYBACK_CONTROL_H__ #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()... */ +extern const struct menu_item_ex *playback_control_menu; +void playback_control_init(struct plugin_api* newapi); + +/* Use this if your menu still uses the old menu api */ bool playback_control(struct plugin_api* api); #endif /* __PLAYBACK_CONTROL_H__ */ |