mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-14 10:37:38 -04:00
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;
|
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)
|
bool playback_control(struct plugin_api* newapi)
|
||||||
{
|
{
|
||||||
int m;
|
|
||||||
api = newapi;
|
api = newapi;
|
||||||
bool result;
|
return api->do_menu(&playback_control_menu, NULL) == SYS_USB_CONNECTED;
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,12 @@
|
||||||
#ifndef __PLAYBACK_CONTROL_H__
|
#ifndef __PLAYBACK_CONTROL_H__
|
||||||
#define __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);
|
bool playback_control(struct plugin_api* api);
|
||||||
|
|
||||||
#endif /* __PLAYBACK_CONTROL_H__ */
|
#endif /* __PLAYBACK_CONTROL_H__ */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue