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.c51
1 files changed, 23 insertions, 28 deletions
diff --git a/apps/plugins/lib/playback_control.c b/apps/plugins/lib/playback_control.c
index b82e8bea16..7c28230642 100644
--- a/apps/plugins/lib/playback_control.c
+++ b/apps/plugins/lib/playback_control.c
@@ -22,70 +22,69 @@
22#include "plugin.h" 22#include "plugin.h"
23#include "playback_control.h" 23#include "playback_control.h"
24 24
25const struct plugin_api* api = 0;
26struct viewport *parentvp = NULL; 25struct viewport *parentvp = NULL;
27 26
28static bool prevtrack(void) 27static bool prevtrack(void)
29{ 28{
30 api->audio_prev(); 29 rb->audio_prev();
31 return false; 30 return false;
32} 31}
33 32
34static bool play(void) 33static bool play(void)
35{ 34{
36 int audio_status = api->audio_status(); 35 int audio_status = rb->audio_status();
37 if (!audio_status && api->global_status->resume_index != -1) 36 if (!audio_status && rb->global_status->resume_index != -1)
38 { 37 {
39 if (api->playlist_resume() != -1) 38 if (rb->playlist_resume() != -1)
40 { 39 {
41 api->playlist_start(api->global_status->resume_index, 40 rb->playlist_start(rb->global_status->resume_index,
42 api->global_status->resume_offset); 41 rb->global_status->resume_offset);
43 } 42 }
44 } 43 }
45 else if (audio_status & AUDIO_STATUS_PAUSE) 44 else if (audio_status & AUDIO_STATUS_PAUSE)
46 api->audio_resume(); 45 rb->audio_resume();
47 else 46 else
48 api->audio_pause(); 47 rb->audio_pause();
49 return false; 48 return false;
50} 49}
51 50
52static bool stop(void) 51static bool stop(void)
53{ 52{
54 api->audio_stop(); 53 rb->audio_stop();
55 return false; 54 return false;
56} 55}
57 56
58static bool nexttrack(void) 57static bool nexttrack(void)
59{ 58{
60 api->audio_next(); 59 rb->audio_next();
61 return false; 60 return false;
62} 61}
63 62
64static bool volume(void) 63static bool volume(void)
65{ 64{
66 const struct settings_list* vol = 65 const struct settings_list* vol =
67 api->find_setting(&api->global_settings->volume, NULL); 66 rb->find_setting(&rb->global_settings->volume, NULL);
68 return api->option_screen((struct settings_list*)vol, parentvp, false, "Volume"); 67 return rb->option_screen((struct settings_list*)vol, parentvp, false, "Volume");
69} 68}
70 69
71static bool shuffle(void) 70static bool shuffle(void)
72{ 71{
73 const struct settings_list* shuffle = 72 const struct settings_list* shuffle =
74 api->find_setting(&api->global_settings->playlist_shuffle, NULL); 73 rb->find_setting(&rb->global_settings->playlist_shuffle, NULL);
75 return api->option_screen((struct settings_list*)shuffle, parentvp, false, "Shuffle"); 74 return rb->option_screen((struct settings_list*)shuffle, parentvp, false, "Shuffle");
76} 75}
77 76
78static bool repeat_mode(void) 77static bool repeat_mode(void)
79{ 78{
80 const struct settings_list* repeat = 79 const struct settings_list* repeat =
81 api->find_setting(&api->global_settings->repeat_mode, NULL); 80 rb->find_setting(&rb->global_settings->repeat_mode, NULL);
82 int old_repeat = api->global_settings->repeat_mode; 81 int old_repeat = rb->global_settings->repeat_mode;
83 82
84 api->option_screen((struct settings_list*)repeat, parentvp, false, "Repeat"); 83 rb->option_screen((struct settings_list*)repeat, parentvp, false, "Repeat");
85 84
86 if (old_repeat != api->global_settings->repeat_mode && 85 if (old_repeat != rb->global_settings->repeat_mode &&
87 (api->audio_status() & AUDIO_STATUS_PLAY)) 86 (rb->audio_status() & AUDIO_STATUS_PLAY))
88 api->audio_flush_and_reload_tracks(); 87 rb->audio_flush_and_reload_tracks();
89 88
90 return false; 89 return false;
91} 90}
@@ -107,17 +106,13 @@ MAKE_MENU(playback_control_menu, "Playback Control", NULL, Icon_NOICON,
107 &prevtrack_item, &playpause_item, &stop_item, &nexttrack_item, 106 &prevtrack_item, &playpause_item, &stop_item, &nexttrack_item,
108 &volume_item, &shuffle_item, &repeat_mode_item); 107 &volume_item, &shuffle_item, &repeat_mode_item);
109 108
110void playback_control_init(const struct plugin_api* newapi, 109void playback_control_init(struct viewport parent[NB_SCREENS])
111 struct viewport parent[NB_SCREENS])
112{ 110{
113 api = newapi;
114 parentvp = parent; 111 parentvp = parent;
115} 112}
116 113
117bool playback_control(const struct plugin_api* newapi, 114bool playback_control(struct viewport parent[NB_SCREENS])
118 struct viewport parent[NB_SCREENS])
119{ 115{
120 api = newapi;
121 parentvp = parent; 116 parentvp = parent;
122 return api->do_menu(&playback_control_menu, NULL, parent, false) == MENU_ATTACHED_USB; 117 return rb->do_menu(&playback_control_menu, NULL, parent, false) == MENU_ATTACHED_USB;
123} 118}