summaryrefslogtreecommitdiffstats
path: root/audio_in.c
diff options
context:
space:
mode:
Diffstat (limited to 'audio_in.c')
-rw-r--r--audio_in.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/audio_in.c b/audio_in.c
index 8e83478..29cda6e 100644
--- a/audio_in.c
+++ b/audio_in.c
@@ -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);