From a64e85acf96bc0c55363fe55c9e9116aef2a8584 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sat, 12 May 2007 23:38:38 +0000 Subject: resampling works git-svn-id: file:///home/lennart/svn/public/libsydney/trunk@4 9ba3c220-e4d3-45a2-8aa3-73fcc9aff6ce --- common.h | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) (limited to 'common.h') diff --git a/common.h b/common.h index 1500ef1..16050df 100644 --- a/common.h +++ b/common.h @@ -3,38 +3,40 @@ #include "sydney.h" -#define elementsof(x) (sizeof(x)/sizeof((x)[0])) +#define META_NAMES_MAX 8 + +typedef struct pcm_attrs { + sa_pcm_format_t format; + unsigned rate; + unsigned nchannels; + sa_channel_t *channel_map; +} pcm_attrs_t; struct sa_device { sa_mode_t mode; - sa_pcm_format_t pcm_format; - unsigned rate; - unsigned nchannels; + pcm_attrs_t pcm_attrs; + size_t pcm_sample_size; + size_t pcm_frame_size; char *codec; - char *client_name; - char *stream_name; - size_t read_lower_watermark; size_t read_upper_watermark; size_t write_lower_watermark; size_t write_upper_watermark; - sa_channel_t *channel_map; - sa_xrun_mode_t xrun_mode; int ni_enabled; - int dsr_enabled; + int dynamic_rate_enabled; sa_event_callback_t event_callback; char *device; char *driver; - int input_volume; - int output_volume; + int *input_volume; + int *output_volume; void *user_data; @@ -47,12 +49,13 @@ struct sa_device { sa_error_t error; sa_notify_t notify; sa_event_t event; -}; -sa_device_t *device_alloc(size_t total); -void device_free(sa_device_t *d); + void *private; /* driver specific data */ + + void *meta_data[META_NAMES_MAX]; + size_t meta_data_size[META_NAMES_MAX]; +}; -int device_alloc_pcm(sa_device_t **dev, size_t total, const char *client_name, sa_mode_t mode, sa_pcm_format_t format, unsigned rate, unsigned channels); -int device_alloc_opaque(sa_device_t **dev, size_t total, const char *client_name, sa_mode_t mode, const char *codec); +size_t get_pcm_sample_size(sa_pcm_format_t f); #endif -- cgit