summaryrefslogtreecommitdiffstats
path: root/src/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common.h')
-rw-r--r--src/common.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/common.h b/src/common.h
new file mode 100644
index 0000000..b5f316c
--- /dev/null
+++ b/src/common.h
@@ -0,0 +1,67 @@
+#ifndef foocommonh
+#define foocommonh
+
+#include "sydney.h"
+#include "mutex.h"
+
+#define _META_NAMES_MAX 9
+
+typedef struct sa_pcm_attrs {
+ sa_pcm_format_t format;
+ unsigned rate;
+ unsigned nchannels;
+ sa_channel_t *channel_map;
+} pcm_attrs_t;
+
+struct sa_stream {
+ sa_mode_t mode;
+
+ pcm_attrs_t pcm_attrs;
+ size_t pcm_sample_size;
+ size_t pcm_frame_size;
+
+ char *codec;
+
+ size_t read_lower_watermark;
+ size_t read_upper_watermark;
+ size_t write_lower_watermark;
+ size_t write_upper_watermark;
+
+ sa_xrun_mode_t xrun_mode;
+ int ni_enabled;
+ int dynamic_rate_enabled;
+
+ sa_event_callback_t event_callback;
+
+ char *device;
+ char *driver;
+
+ int32_t *read_volume;
+ int32_t *write_volume;
+
+ void *user_data;
+
+ sa_state_t state;
+
+ sa_adjust_t adjust_rate;
+ sa_adjust_t adjust_nchannels;
+ sa_adjust_t adjust_pcm_format;
+ sa_adjust_t adjust_watermarks;
+
+ sa_error_t error;
+ sa_notify_t notify;
+ sa_event_t event;
+
+ void *private; /* driver specific data */
+
+ void *meta_data[_META_NAMES_MAX];
+ size_t meta_data_size[_META_NAMES_MAX];
+
+ sa_mutex_t *mutex;
+
+ sa_event_callback_t callback;
+};
+
+size_t sa_get_pcm_sample_size(sa_pcm_format_t f);
+
+#endif