#ifndef foocommonh #define foocommonh #include "sydney.h" #include "mutex.h" #define _META_NAMES_MAX 9 typedef struct 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 get_pcm_sample_size(sa_pcm_format_t f); #endif