diff options
author | Lennart Poettering <lennart@poettering.net> | 2007-05-12 23:38:38 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2007-05-12 23:38:38 +0000 |
commit | a64e85acf96bc0c55363fe55c9e9116aef2a8584 (patch) | |
tree | 69ec57b46bdebe0e7496bf11ea9a54cdf5806904 /common.h | |
parent | 2eb6dec8e9f0114bdbad59cf8f11f197f8fdaaf3 (diff) |
resampling works
git-svn-id: file:///home/lennart/svn/public/libsydney/trunk@4 9ba3c220-e4d3-45a2-8aa3-73fcc9aff6ce
Diffstat (limited to 'common.h')
-rw-r--r-- | common.h | 37 |
1 files changed, 20 insertions, 17 deletions
@@ -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 |