summaryrefslogtreecommitdiff
path: root/apps/plugins/lib/playback_control.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/lib/playback_control.c')
-rw-r--r--apps/plugins/lib/playback_control.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/apps/plugins/lib/playback_control.c b/apps/plugins/lib/playback_control.c
index cba4f5a0ee..af4384ef0a 100644
--- a/apps/plugins/lib/playback_control.c
+++ b/apps/plugins/lib/playback_control.c
@@ -20,6 +20,7 @@
20#include "plugin.h" 20#include "plugin.h"
21 21
22struct plugin_api* api = 0; 22struct plugin_api* api = 0;
23struct viewport *parentvp = NULL;
23 24
24bool prevtrack(void) 25bool prevtrack(void)
25{ 26{
@@ -61,14 +62,14 @@ static bool volume(void)
61{ 62{
62 const struct settings_list* vol = 63 const struct settings_list* vol =
63 api->find_setting(&api->global_settings->volume, NULL); 64 api->find_setting(&api->global_settings->volume, NULL);
64 return api->option_screen((struct settings_list*)vol, false, "Volume"); 65 return api->option_screen((struct settings_list*)vol, parentvp, false, "Volume");
65} 66}
66 67
67static bool shuffle(void) 68static bool shuffle(void)
68{ 69{
69 const struct settings_list* shuffle = 70 const struct settings_list* shuffle =
70 api->find_setting(&api->global_settings->playlist_shuffle, NULL); 71 api->find_setting(&api->global_settings->playlist_shuffle, NULL);
71 return api->option_screen((struct settings_list*)shuffle, false, "Shuffle"); 72 return api->option_screen((struct settings_list*)shuffle, parentvp, false, "Shuffle");
72} 73}
73 74
74static bool repeat_mode(void) 75static bool repeat_mode(void)
@@ -77,7 +78,7 @@ static bool repeat_mode(void)
77 api->find_setting(&api->global_settings->repeat_mode, NULL); 78 api->find_setting(&api->global_settings->repeat_mode, NULL);
78 int old_repeat = api->global_settings->repeat_mode; 79 int old_repeat = api->global_settings->repeat_mode;
79 80
80 api->option_screen((struct settings_list*)repeat, false, "Repeat"); 81 api->option_screen((struct settings_list*)repeat, parentvp, false, "Repeat");
81 82
82 if (old_repeat != api->global_settings->repeat_mode && 83 if (old_repeat != api->global_settings->repeat_mode &&
83 (api->audio_status() & AUDIO_STATUS_PLAY)) 84 (api->audio_status() & AUDIO_STATUS_PLAY))
@@ -103,14 +104,17 @@ MAKE_MENU(playback_control_menu, "Playback Control", NULL, Icon_NOICON,
103 &prevtrack_item, &playpause_item, &stop_item, &nexttrack_item, 104 &prevtrack_item, &playpause_item, &stop_item, &nexttrack_item,
104 &volume_item, &shuffle_item, &repeat_mode_item); 105 &volume_item, &shuffle_item, &repeat_mode_item);
105 106
106void playback_control_init(struct plugin_api* newapi) 107void playback_control_init(struct plugin_api* newapi,
108 struct viewport parent[NB_SCREENS])
107{ 109{
108 api = newapi; 110 api = newapi;
111 parentvp = parent;
109} 112}
110 113
111bool playback_control(struct plugin_api* newapi, 114bool playback_control(struct plugin_api* newapi,
112 struct viewport parent[NB_SCREENS]) 115 struct viewport parent[NB_SCREENS])
113{ 116{
114 api = newapi; 117 api = newapi;
118 parentvp = parent;
115 return api->do_menu(&playback_control_menu, NULL, parent, false) == MENU_ATTACHED_USB; 119 return api->do_menu(&playback_control_menu, NULL, parent, false) == MENU_ATTACHED_USB;
116} 120}