summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorMichael Giacomelli <giac2000@hotmail.com>2008-09-20 22:13:39 +0000
committerMichael Giacomelli <giac2000@hotmail.com>2008-09-20 22:13:39 +0000
commitccd56bf22069ecb8f228dea0738c1ae2eba04a39 (patch)
tree39995332648c15044d20db7b771c3b726c4f0e51 /apps
parent4e36a2b991d58a40d7ea12c9bf41e93736b8b024 (diff)
downloadrockbox-ccd56bf22069ecb8f228dea0738c1ae2eba04a39.zip
rockbox-ccd56bf22069ecb8f228dea0738c1ae2eba04a39.tar.gz
rockbox-ccd56bf22069ecb8f228dea0738c1ae2eba04a39.tar.bz2
rockbox-ccd56bf22069ecb8f228dea0738c1ae2eba04a39.tar.xz
Fix test_codec on multiprocessor codecs (MP3, SPC).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18558 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/plugin.c8
-rw-r--r--apps/plugin.h11
-rw-r--r--apps/plugins/test_codec.c13
3 files changed, 31 insertions, 1 deletions
diff --git a/apps/plugin.c b/apps/plugin.c
index 6889248..b03ed31 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 1f7cfa2..6dd81ca 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 542f6ed..5eb9ad3 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)