chiark / gitweb /
disorder.h: more consistent approach to function attributes
[disorder] / lib / uaudio.h
index 709979ec544acc80bffc9f2af6739128710f6bc6..bcb4e949d95a5c7f94f058f7de12648401e82842 100644 (file)
@@ -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;