diff options
Diffstat (limited to 'apps/plugins/lib/playback_control.c')
-rw-r--r-- | apps/plugins/lib/playback_control.c | 12 |
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 | ||
22 | struct plugin_api* api = 0; | 22 | struct plugin_api* api = 0; |
23 | struct viewport *parentvp = NULL; | ||
23 | 24 | ||
24 | bool prevtrack(void) | 25 | bool 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 | ||
67 | static bool shuffle(void) | 68 | static 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 | ||
74 | static bool repeat_mode(void) | 75 | static 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 | ||
106 | void playback_control_init(struct plugin_api* newapi) | 107 | void 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 | ||
111 | bool playback_control(struct plugin_api* newapi, | 114 | bool 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 | } |