forked from len0rd/rockbox
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
This commit is contained in:
parent
43b38b71f5
commit
6510973223
17 changed files with 614 additions and 496 deletions
|
|
@ -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 */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue