diff options
Diffstat (limited to 'apps/plugin.c')
-rw-r--r-- | apps/plugin.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/apps/plugin.c b/apps/plugin.c index e91cba0512..e010ebe841 100644 --- a/apps/plugin.c +++ b/apps/plugin.c | |||
@@ -34,6 +34,9 @@ | |||
34 | #include "lang.h" | 34 | #include "lang.h" |
35 | #include "keyboard.h" | 35 | #include "keyboard.h" |
36 | #include "mpeg.h" | 36 | #include "mpeg.h" |
37 | #include "buffer.h" | ||
38 | #include "mp3_playback.h" | ||
39 | #include "backlight.h" | ||
37 | 40 | ||
38 | #ifdef HAVE_LCD_BITMAP | 41 | #ifdef HAVE_LCD_BITMAP |
39 | #include "widgets.h" | 42 | #include "widgets.h" |
@@ -58,6 +61,7 @@ | |||
58 | static unsigned char pluginbuf[PLUGIN_BUFFER_SIZE]; | 61 | static unsigned char pluginbuf[PLUGIN_BUFFER_SIZE]; |
59 | #else | 62 | #else |
60 | extern unsigned char pluginbuf[]; | 63 | extern unsigned char pluginbuf[]; |
64 | extern void bitswap(unsigned char *data, int length); | ||
61 | #endif | 65 | #endif |
62 | 66 | ||
63 | static bool plugin_loaded = false; | 67 | static bool plugin_loaded = false; |
@@ -163,6 +167,19 @@ static struct plugin_api rockbox_api = { | |||
163 | lcd_blit, | 167 | lcd_blit, |
164 | #endif | 168 | #endif |
165 | yield, | 169 | yield, |
170 | |||
171 | plugin_get_mp3_buffer, | ||
172 | mpeg_sound_set, | ||
173 | #ifndef SIMULATOR | ||
174 | mp3_play_init, | ||
175 | mp3_play_data, | ||
176 | mp3_play_pause, | ||
177 | mp3_play_stop, | ||
178 | mp3_is_playing, | ||
179 | bitswap, | ||
180 | #endif | ||
181 | &global_settings, | ||
182 | backlight_set_timeout, | ||
166 | }; | 183 | }; |
167 | 184 | ||
168 | int plugin_load(char* plugin, void* parameter) | 185 | int plugin_load(char* plugin, void* parameter) |
@@ -294,6 +311,21 @@ void* plugin_get_buffer(int* buffer_size) | |||
294 | return &pluginbuf[buffer_pos]; | 311 | return &pluginbuf[buffer_pos]; |
295 | } | 312 | } |
296 | 313 | ||
314 | /* Returns a pointer to the mp3 buffer. | ||
315 | Playback gets stopped, to avoid conflicts. */ | ||
316 | void* plugin_get_mp3_buffer(int* buffer_size) | ||
317 | { | ||
318 | #ifdef SIMULATOR | ||
319 | static unsigned char buf[1700*1024]; | ||
320 | *buffer_size = sizeof(buf); | ||
321 | return buf; | ||
322 | #else | ||
323 | mpeg_stop(); | ||
324 | *buffer_size = mp3end - mp3buf; | ||
325 | return mp3buf; | ||
326 | #endif | ||
327 | } | ||
328 | |||
297 | static int plugin_test(int api_version, int model, int memsize) | 329 | static int plugin_test(int api_version, int model, int memsize) |
298 | { | 330 | { |
299 | if (api_version < PLUGIN_MIN_API_VERSION || | 331 | if (api_version < PLUGIN_MIN_API_VERSION || |