From 737cf2e69e0248e134979cbeb9230e71c908a53d Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 13 May 2007 10:36:53 +0000 Subject: change types of volumes from "int" to "int32_t" git-svn-id: file:///home/lennart/svn/public/libsydney/trunk@9 9ba3c220-e4d3-45a2-8aa3-73fcc9aff6ce --- common.c | 8 ++++---- common.h | 4 ++-- converter.c | 6 +++++- converter.h | 2 +- driver.h | 7 +++++-- oss.c | 4 ++-- sydney.h | 6 +++--- 7 files changed, 22 insertions(+), 15 deletions(-) diff --git a/common.c b/common.c index 89779bb..3b53e77 100644 --- a/common.c +++ b/common.c @@ -272,7 +272,7 @@ int sa_stream_change_device(sa_stream_t *s, const char *device_name) { return ret; } -int sa_stream_change_input_volume(sa_stream_t *s, const int vol[]) { +int sa_stream_change_input_volume(sa_stream_t *s, const int32_t vol[]) { int *v, ret; sa_return_val_if_fail(s, SA_ERROR_INVALID); @@ -280,7 +280,7 @@ int sa_stream_change_input_volume(sa_stream_t *s, const int vol[]) { sa_return_val_if_fail(!s->codec, SA_ERROR_NOT_SUPPORTED); sa_return_val_if_fail(s->mode & SA_MODE_RDONLY, SA_ERROR_STATE); - if (!(v = sa_newdup(vol, int, s->pcm_attrs.nchannels))) + if (!(v = sa_newdup(vol, int32_t, s->pcm_attrs.nchannels))) return SA_ERROR_OOM; ret = s->state == SA_STATE_INIT ? SA_SUCCESS : driver_change_input_volume(s, v); @@ -294,7 +294,7 @@ int sa_stream_change_input_volume(sa_stream_t *s, const int vol[]) { return ret; } -int sa_stream_change_output_volume(sa_stream_t *s, const int vol[]) { +int sa_stream_change_output_volume(sa_stream_t *s, const int32_t vol[]) { int *v, ret; sa_return_val_if_fail(s, SA_ERROR_INVALID); @@ -302,7 +302,7 @@ int sa_stream_change_output_volume(sa_stream_t *s, const int vol[]) { sa_return_val_if_fail(!s->codec, SA_ERROR_NOT_SUPPORTED); sa_return_val_if_fail(s->mode & SA_MODE_WRONLY, SA_ERROR_STATE); - if (!(v = sa_newdup(vol, int, s->pcm_attrs.nchannels))) + if (!(v = sa_newdup(vol, int32_t, s->pcm_attrs.nchannels))) return SA_ERROR_OOM; ret = s->state == SA_STATE_INIT ? SA_SUCCESS : driver_change_output_volume(s, v); diff --git a/common.h b/common.h index ef92bb7..0444fd4 100644 --- a/common.h +++ b/common.h @@ -35,8 +35,8 @@ struct sa_stream { char *device; char *driver; - int *input_volume; - int *output_volume; + int32_t *input_volume; + int32_t *output_volume; void *user_data; diff --git a/converter.c b/converter.c index f439b77..b33aafc 100644 --- a/converter.c +++ b/converter.c @@ -684,7 +684,7 @@ do_interleave: return SA_SUCCESS; } -void converter_set_volume(converter_t *c, const int vol[]) { +void converter_set_volume(converter_t *c, const int32_t vol[]) { unsigned i; int no_volume = 1; @@ -696,6 +696,10 @@ void converter_set_volume(converter_t *c, const int vol[]) { if (vol[i] == 0) { c->volume_factor[i] = 1; c->volume_divisor[1] = 1; + } else if (vol[i] <= SA_VOLUME_MUTED) { + c->volume_factor[i] = 0; + c->volume_divisor[1] = 1; + no_volume = 0; } else { float f = powf(10.0, (float) vol[i] / 2000); diff --git a/converter.h b/converter.h index a4592f1..da48d3c 100644 --- a/converter.h +++ b/converter.h @@ -73,7 +73,7 @@ int converter_go_interleaved( void **dst[], size_t *dstr[], int dinterleave, size_t *size); -void converter_set_volume(converter_t *c, const int vol[]); +void converter_set_volume(converter_t *c, const int32_t vol[]); void converter_set_ratio(converter_t *c, unsigned rate1, unsigned rate2); diff --git a/driver.h b/driver.h index 98f65a6..7aaa5e6 100644 --- a/driver.h +++ b/driver.h @@ -8,19 +8,22 @@ int driver_destroy(sa_stream_t *dev); int driver_start_thread(sa_stream_t *dev, sa_event_callback_t *callback); int driver_change_device(sa_stream_t *dev, const char *device_name); -int driver_change_input_volume(sa_stream_t *dev, const int vol[]); -int driver_change_output_volume(sa_stream_t *dev, const int vol[]); +int driver_change_input_volume(sa_stream_t *dev, const int32_t vol[]); +int driver_change_output_volume(sa_stream_t *dev, const int32_t vol[]); int driver_change_rate(sa_stream_t *dev, unsigned rate); int driver_change_meta_data(sa_stream_t *dev, const char *name, const void *data, size_t size); int driver_get_state(sa_stream_t *dev, sa_state_t *state); int driver_get_position(sa_stream_t *dev, sa_position_t position, int64_t *pos); + int driver_pread(sa_stream_t *dev, void *data, size_t nbytes, int64_t offset, sa_seek_t whence); int driver_pwrite(sa_stream_t *dev, const void *data, size_t nbytes, int64_t offset, sa_seek_t whence); int driver_pread_ni(sa_stream_t *dev, unsigned channel, void *data, size_t nbytes, int64_t offset, sa_seek_t whence); int driver_pwrite_ni(sa_stream_t *dev, unsigned channel, const void *data, size_t nbytes, int64_t offset, sa_seek_t whence); + int driver_get_read_size(sa_stream_t *dev, size_t *size); int driver_get_write_size(sa_stream_t *dev, size_t *size); + int driver_resume(sa_stream_t *dev); int driver_pause(sa_stream_t *dev); int driver_drain(sa_stream_t *dev); diff --git a/oss.c b/oss.c index 0a80379..6cae5a4 100644 --- a/oss.c +++ b/oss.c @@ -376,7 +376,7 @@ int driver_start_thread(sa_stream_t *s, sa_event_callback_t *callback) { return SA_ERROR_NOT_SUPPORTED; } -int driver_change_input_volume(sa_stream_t *s, const int vol[]) { +int driver_change_input_volume(sa_stream_t *s, const int32_t vol[]) { oss_stream_t *oss = OSS_STREAM(s); sa_return_val_if_fail(!s->codec, SA_ERROR_NOT_SUPPORTED); @@ -386,7 +386,7 @@ int driver_change_input_volume(sa_stream_t *s, const int vol[]) { return SA_SUCCESS; } -int driver_change_output_volume(sa_stream_t *s, const int vol[]) { +int driver_change_output_volume(sa_stream_t *s, const int32_t vol[]) { oss_stream_t *oss = OSS_STREAM(s); sa_return_val_if_fail(!s->codec, SA_ERROR_NOT_SUPPORTED); diff --git a/sydney.h b/sydney.h index 5b3f009..1f53784 100644 --- a/sydney.h +++ b/sydney.h @@ -30,7 +30,7 @@ async-signal safe. typedef struct sa_stream sa_stream_t; /** Volume that corresponds to muted in/out */ -#define SA_VOLUME_MUTED 0x80000000 +#define SA_VOLUME_MUTED ((int32_t) (-0x80000000)) /** Ways to express seek offsets for pread/pwrite */ typedef enum { @@ -273,10 +273,10 @@ int sa_stream_start_thread(sa_stream_t *s, sa_event_callback_t *callback); int sa_stream_change_device(sa_stream_t *s, const char *device_name); /** volume in hundreths of dB*/ -int sa_stream_change_input_volume(sa_stream_t *s, const int vol[]); +int sa_stream_change_input_volume(sa_stream_t *s, const int32_t vol[]); /** volume in hundreths of dB*/ -int sa_stream_change_output_volume(sa_stream_t *s, const int vol[]); +int sa_stream_change_output_volume(sa_stream_t *s, const int32_t vol[]); /** Change the sampling rate */ int sa_stream_change_rate(sa_stream_t *s, unsigned rate); -- cgit