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:
parent
1764583f99
commit
73c46ffd6e
2 changed files with 29 additions and 18 deletions
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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__ */
|
||||
|
|
Loading…
Reference in a new issue