From ccd56bf22069ecb8f228dea0738c1ae2eba04a39 Mon Sep 17 00:00:00 2001 From: Michael Giacomelli Date: Sat, 20 Sep 2008 22:13:39 +0000 Subject: Fix test_codec on multiprocessor codecs (MP3, SPC). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18558 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugin.c | 8 ++++++++ apps/plugin.h | 11 ++++++++++- apps/plugins/test_codec.c | 13 +++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) (limited to 'apps') diff --git a/apps/plugin.c b/apps/plugin.c index 6889248402..b03ed3109a 100644 --- a/apps/plugin.c +++ b/apps/plugin.c @@ -606,6 +606,14 @@ static const struct plugin_api rockbox_api = { search_albumart_files, #endif + thread_thaw, + semaphore_init, + semaphore_wait, + semaphore_release, + event_init, + event_wait, + event_set_state, + /* new stuff at the end, sort into place next time the API gets incompatible */ diff --git a/apps/plugin.h b/apps/plugin.h index 1f7cfa28ef..6dd81caf7e 100644 --- a/apps/plugin.h +++ b/apps/plugin.h @@ -130,7 +130,7 @@ void* plugin_get_buffer(size_t *buffer_size); #define PLUGIN_MAGIC 0x526F634B /* RocK */ /* increase this every time the api struct changes */ -#define PLUGIN_API_VERSION 123 +#define PLUGIN_API_VERSION 124 /* update this to latest version if a change to the api struct breaks backwards compatibility (and please take the opportunity to sort in any @@ -763,6 +763,15 @@ struct plugin_api { char *buf, int buflen); #endif + void (*thread_thaw)(struct thread_entry *thread); + void (*semaphore_init)(struct semaphore *s, int max, int start); + void (*semaphore_wait)(struct semaphore *s); + void (*semaphore_release)(struct semaphore *s); + void (*event_init)(struct event *e, unsigned int flags); + void (*event_wait)(struct event *e, unsigned int for_state); + void (*event_set_state)(struct event *e, unsigned int state); + + /* new stuff at the end, sort into place next time the API gets incompatible */ diff --git a/apps/plugins/test_codec.c b/apps/plugins/test_codec.c index 542f6edf2f..5eb9ad3988 100644 --- a/apps/plugins/test_codec.c +++ b/apps/plugins/test_codec.c @@ -485,6 +485,19 @@ static void init_ci(void) ci.invalidate_icache = invalidate_icache; ci.flush_icache = flush_icache; #endif + +#if NUM_CORES > 1 + ci.create_thread = rb->create_thread; + ci.thread_thaw = rb->thread_thaw; + ci.thread_wait = rb->thread_wait; + ci.semaphore_init = rb->semaphore_init; + ci.semaphore_wait = rb->semaphore_wait; + ci.semaphore_release = rb->semaphore_release; + ci.event_init = rb->event_init; + ci.event_wait = rb->event_wait; + ci.event_set_state = rb->event_set_state; +#endif + } static void codec_thread(void) -- cgit v1.2.3