summaryrefslogtreecommitdiffstats
path: root/apps/codec_thread.h
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2011-02-23 14:31:13 +0000
committerMichael Sevakis <jethead71@rockbox.org>2011-02-23 14:31:13 +0000
commit65109732230849eeb9eec2f56f9e046ad6b476c3 (patch)
tree51096b18d823cfb05575335b91e3d1eb75ca4e27 /apps/codec_thread.h
parent43b38b71f5944c1a29060847b58d7e79f7dfe428 (diff)
downloadrockbox-65109732230849eeb9eec2f56f9e046ad6b476c3.tar.gz
rockbox-65109732230849eeb9eec2f56f9e046ad6b476c3.tar.bz2
rockbox-65109732230849eeb9eec2f56f9e046ad6b476c3.zip
Give playback engine better control over the codec. Codec simply follows commands and doesn't concern itself with audio state. Get track change notification in on the actual last buffer insert of the track because now audio simply waits for a track change notify from PCM on the last track and it must be sent reliably. This is still at an intermediate stage but works. Codecs and plugins become incompatible.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29387 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codec_thread.h')
-rw-r--r--apps/codec_thread.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/apps/codec_thread.h b/apps/codec_thread.h
index a849e07d39..7056e2cdf5 100644
--- a/apps/codec_thread.h
+++ b/apps/codec_thread.h
@@ -24,11 +24,30 @@
#include <stdbool.h>
+/* codec identity */
int get_codec_base_type(int type);
const char *get_codec_filename(int cod_spec);
+
+/* codec thread */
+
+/* Audio MUST be stopped before requesting callback! */
void codec_thread_do_callback(void (*fn)(void),
unsigned int *codec_thread_id);
+
void codec_init_codec_api(void);
void make_codec_thread(void);
-
+void codec_thread_resume(void);
+bool is_codec_thread(void);
+#ifdef HAVE_PRIORITY_SCHEDULING
+int codec_thread_get_priority(void);
+int codec_thread_set_priority(int priority);
#endif
+
+/* codec commands - on audio thread only! */
+intptr_t codec_ack_msg(intptr_t data, bool stop_codec);
+bool codec_load(int hid, int cod_spec);
+void codec_stop(void);
+int codec_loaded(void);
+/* */
+
+#endif /* _CODEC_THREAD_H */