Added audio backends, fifo support, see #78
This commit is contained in:
24
fifo.h
24
fifo.h
@@ -14,4 +14,26 @@ struct audio_data {
|
||||
pthread_mutex_t mutex;
|
||||
};
|
||||
|
||||
void* input_fifo(void* data);
|
||||
struct audio_impl {
|
||||
const char* name;
|
||||
void (*init)(struct audio_data* data);
|
||||
void* (*entry)(void* data);
|
||||
};
|
||||
|
||||
#define AUDIO_FUNC(F) \
|
||||
.F = (typeof(((struct audio_impl*) NULL)->F)) &F
|
||||
|
||||
extern struct audio_impl* audio_impls[4];
|
||||
extern size_t audio_impls_idx;
|
||||
|
||||
static inline void register_audio_impl(struct audio_impl* impl) { audio_impls[audio_impls_idx++] = impl; }
|
||||
|
||||
#define AUDIO_ATTACH(N) \
|
||||
static struct audio_impl N##_var = { \
|
||||
.name = #N, \
|
||||
AUDIO_FUNC(init), \
|
||||
AUDIO_FUNC(entry), \
|
||||
}; \
|
||||
void __attribute__((constructor)) _##N##_construct(void) { \
|
||||
register_audio_impl(&N##_var); \
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user