X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/5db8461a362f14017d276216a78c848929eb81f7..5dcfc065d123f6643b12ed1766c7976e58b6941a:/lib/uaudio.h diff --git a/lib/uaudio.h b/lib/uaudio.h index 709979e..bcb4e94 100644 --- a/lib/uaudio.h +++ b/lib/uaudio.h @@ -23,6 +23,8 @@ #ifndef UAUDIO_H #define UAUDIO_H +struct sockaddr_storage; + extern int uaudio_rate; extern int uaudio_bits; extern int uaudio_channels; @@ -149,9 +151,17 @@ struct uaudio { /** @brief Set configuration */ void (*configure)(void); - + + /** @brief Descriptive flags */ + unsigned flags; }; +/** @brief API is suitable for clients */ +#define UAUDIO_API_CLIENT 0x0001 + +/** @brief API is suitable for servers */ +#define UAUDIO_API_SERVER 0x0002 + void uaudio_set_format(int rate, int channels, int samplesize, int signed_); void uaudio_set(const char *name, const char *value); char *uaudio_get(const char *name, const char *default_value); @@ -169,6 +179,11 @@ uint32_t uaudio_schedule_sync(void); void uaudio_schedule_sent(size_t nsamples_sent); void uaudio_schedule_init(void); const struct uaudio *uaudio_find(const char *name); +const struct uaudio *uaudio_default(const struct uaudio *const *apis, + unsigned context); + +int rtp_add_recipient(const struct sockaddr_storage *sa); +int rtp_remove_recipient(const struct sockaddr_storage *sa); extern uint64_t uaudio_schedule_timestamp; extern int uaudio_schedule_reactivated; @@ -185,6 +200,10 @@ extern const struct uaudio uaudio_alsa; extern const struct uaudio uaudio_oss; #endif +#if HAVE_PULSEAUDIO +extern const struct uaudio uaudio_pulseaudio; +#endif + extern const struct uaudio uaudio_rtp; extern const struct uaudio uaudio_command;