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
This commit is contained in:
Jonathan Gordon 2007-03-26 09:14:16 +00:00
parent 1764583f99
commit 73c46ffd6e
2 changed files with 29 additions and 18 deletions

View file

@ -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);
void playback_control_init(struct plugin_api* newapi)
{
api = newapi;
}
bool playback_control(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;
return api->do_menu(&playback_control_menu, NULL) == SYS_USB_CONNECTED;
}

View file

@ -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__ */