diff options
author | Paul Kocialkowski <contact@paulk.fr> | 2012-10-13 12:13:58 +0200 |
---|---|---|
committer | Paul Kocialkowski <contact@paulk.fr> | 2012-10-13 12:13:58 +0200 |
commit | 9b78c141abe0dcac335e5423f5ebdd05b481d1cc (patch) | |
tree | 1918be6c1c44afebf94ea4629a9350b57cc050b8 /audio_out.c | |
parent | 8aed9f23e589576d5bcc156f1f7d7544825fe5c2 (diff) | |
download | hardware_tinyalsa-audio-9b78c141abe0dcac335e5423f5ebdd05b481d1cc.zip hardware_tinyalsa-audio-9b78c141abe0dcac335e5423f5ebdd05b481d1cc.tar.gz hardware_tinyalsa-audio-9b78c141abe0dcac335e5423f5ebdd05b481d1cc.tar.bz2 |
Volume and mic mute control handling
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Diffstat (limited to 'audio_out.c')
-rw-r--r-- | audio_out.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/audio_out.c b/audio_out.c index 2ea2db8..538438b 100644 --- a/audio_out.c +++ b/audio_out.c @@ -30,6 +30,7 @@ #define EFFECT_UUID_NULL EFFECT_UUID_NULL_OUT #define EFFECT_UUID_NULL_STR EFFECT_UUID_NULL_STR_OUT #include "audio_hw.h" +#include "mixer.h" /* * Functions @@ -107,8 +108,25 @@ static uint32_t audio_out_get_latency(const struct audio_stream_out *stream) static int audio_out_set_volume(struct audio_stream_out *stream, float left, float right) { + struct tinyalsa_audio_stream_out *stream_out; + float volume; + LOGD("%s(%p, %f, %f)", __func__, stream, left, right); + if(stream == NULL) + return -1; + + stream_out = (struct tinyalsa_audio_stream_out *) stream; + + if(stream_out->device == NULL || stream_out->device->mixer == NULL) + return -1; + + volume = (left + right) / 2; + + // FIXME: Select the device + tinyalsa_mixer_set_output_volume(stream_out->device->mixer, + AUDIO_DEVICE_IN_DEFAULT, stream_out->device->mode, volume); + return 0; } @@ -176,7 +194,7 @@ int audio_hw_open_output_stream(struct audio_hw_device *dev, if(tinyalsa_audio_stream_out == NULL) return -ENOMEM; - tinyalsa_audio_stream_out->dev = tinyalsa_audio_device; + tinyalsa_audio_stream_out->device = tinyalsa_audio_device; stream = &(tinyalsa_audio_stream_out->stream); stream->common.get_sample_rate = audio_out_get_sample_rate; |