summaryrefslogtreecommitdiff
path: root/apps/plugins/lib
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/lib')
-rw-r--r--apps/plugins/lib/playback_control.c41
-rw-r--r--apps/plugins/lib/playback_control.h6
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__ */