#ifndef UAUDIO_H
#define UAUDIO_H
+struct sockaddr_storage;
+
extern int uaudio_rate;
extern int uaudio_bits;
extern int uaudio_channels;
/** @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);
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;
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;