diff options
Diffstat (limited to 'apps/plugins/lib/playback_control.c')
-rw-r--r-- | apps/plugins/lib/playback_control.c | 51 |
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 | ||
25 | const struct plugin_api* api = 0; | ||
26 | struct viewport *parentvp = NULL; | 25 | struct viewport *parentvp = NULL; |
27 | 26 | ||
28 | static bool prevtrack(void) | 27 | static bool prevtrack(void) |
29 | { | 28 | { |
30 | api->audio_prev(); | 29 | rb->audio_prev(); |
31 | return false; | 30 | return false; |
32 | } | 31 | } |
33 | 32 | ||
34 | static bool play(void) | 33 | static 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 | ||
52 | static bool stop(void) | 51 | static bool stop(void) |
53 | { | 52 | { |
54 | api->audio_stop(); | 53 | rb->audio_stop(); |
55 | return false; | 54 | return false; |
56 | } | 55 | } |
57 | 56 | ||
58 | static bool nexttrack(void) | 57 | static bool nexttrack(void) |
59 | { | 58 | { |
60 | api->audio_next(); | 59 | rb->audio_next(); |
61 | return false; | 60 | return false; |
62 | } | 61 | } |
63 | 62 | ||
64 | static bool volume(void) | 63 | static 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 | ||
71 | static bool shuffle(void) | 70 | static 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 | ||
78 | static bool repeat_mode(void) | 77 | static 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 | ||
110 | void playback_control_init(const struct plugin_api* newapi, | 109 | void 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 | ||
117 | bool playback_control(const struct plugin_api* newapi, | 114 | bool 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 | } |