diff options
author | Paul Kocialkowski <contact@paulk.fr> | 2012-10-26 15:47:01 +0200 |
---|---|---|
committer | Paul Kocialkowski <contact@paulk.fr> | 2012-10-26 15:47:01 +0200 |
commit | f6e1b0eae63dfd937213e0b0fdb01f106621421c (patch) | |
tree | 8c8b018a2461c7096f203f0ea6ba091fda1ab22c /audio_in.c | |
parent | 7751e9ab8b411d69fab1e455ef4ff75b883ab4d6 (diff) | |
download | hardware_tinyalsa-audio-f6e1b0eae63dfd937213e0b0fdb01f106621421c.zip hardware_tinyalsa-audio-f6e1b0eae63dfd937213e0b0fdb01f106621421c.tar.gz hardware_tinyalsa-audio-f6e1b0eae63dfd937213e0b0fdb01f106621421c.tar.bz2 |
Mixer: Avoid mode and use directions logic instead, introducing modem support
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Diffstat (limited to 'audio_in.c')
-rw-r--r-- | audio_in.c | 27 |
1 files changed, 12 insertions, 15 deletions
@@ -95,22 +95,11 @@ int audio_in_set_route(struct tinyalsa_audio_stream_in *stream_in, stream_in->device_current = device; - if(device == 0) { - tinyalsa_mixer_set_route(stream_in->device->mixer, - AUDIO_DEVICE_IN_DEFAULT, stream_in->device->mode); + if(device == 0) + return stream_in->stream.common.standby((struct audio_stream *) stream_in); - rc = yamaha_mc1n2_audio_input_stop(stream_in->device->mc1n2_pdata); - if(rc < 0) { - LOGE("Failed to set Yamaha-MC1N2-Audio route"); - } - - stream_in->standby = 1; - - return 0; - } - tinyalsa_mixer_set_route(stream_in->device->mixer, - stream_in->device_current, stream_in->device->mode); + tinyalsa_mixer_set_device(stream_in->device->mixer, stream_in->device_current); #ifdef YAMAHA_MC1N2_AUDIO yamaha_mc1n2_audio_set_route(stream_in->device->mc1n2_pdata, device, @@ -308,7 +297,7 @@ static int audio_in_set_gain(struct audio_stream_in *stream, float gain) return -1; tinyalsa_mixer_set_input_gain(stream_in->device->mixer, - stream_in->device_current, stream_in->device->mode, gain); + stream_in->device_current, gain); return 0; } @@ -396,6 +385,8 @@ void audio_hw_close_input_stream(struct audio_hw_device *dev, tinyalsa_audio_device = (struct tinyalsa_audio_device *) dev; + tinyalsa_mixer_set_input_state(tinyalsa_audio_device->mixer, 0); + tinyalsa_audio_device->stream_in = NULL; } @@ -459,6 +450,12 @@ int audio_hw_open_input_stream(struct audio_hw_device *dev, *channels = (uint32_t) tinyalsa_audio_stream_in->channels; *format = (uint32_t) tinyalsa_audio_stream_in->format; + rc = tinyalsa_mixer_set_input_state(tinyalsa_audio_device->mixer, 1); + if(rc < 0) { + LOGE("Unable to set input state"); + goto error_stream; + } + audio_in_set_route(tinyalsa_audio_stream_in, devices); rc = audio_in_pcm_open(tinyalsa_audio_stream_in); |