summaryrefslogtreecommitdiffstats
path: root/audio_out.c
diff options
context:
space:
mode:
Diffstat (limited to 'audio_out.c')
-rw-r--r--audio_out.c28
1 files changed, 12 insertions, 16 deletions
diff --git a/audio_out.c b/audio_out.c
index 4bfd9b3..a347eaa 100644
--- a/audio_out.c
+++ b/audio_out.c
@@ -99,22 +99,10 @@ int audio_out_set_route(struct tinyalsa_audio_stream_out *stream_out,
stream_out->device_current = device;
- if(device == 0) {
- tinyalsa_mixer_set_route(stream_out->device->mixer,
- AUDIO_DEVICE_OUT_DEFAULT, stream_out->device->mode);
+ if(device == 0)
+ return stream_out->stream.common.standby((struct audio_stream *) stream_out);
- rc = yamaha_mc1n2_audio_output_stop(stream_out->device->mc1n2_pdata);
- if(rc < 0) {
- LOGE("Failed to set Yamaha-MC1N2-Audio route");
- }
-
- stream_out->standby = 1;
-
- return 0;
- }
-
- tinyalsa_mixer_set_route(stream_out->device->mixer,
- stream_out->device_current, stream_out->device->mode);
+ tinyalsa_mixer_set_device(stream_out->device->mixer, stream_out->device_current);
#ifdef YAMAHA_MC1N2_AUDIO
yamaha_mc1n2_audio_set_route(stream_out->device->mc1n2_pdata, device,
@@ -322,7 +310,7 @@ static int audio_out_set_volume(struct audio_stream_out *stream, float left,
volume = (left + right) / 2;
tinyalsa_mixer_set_output_volume(stream_out->device->mixer,
- stream_out->device_current, stream_out->device->mode, volume);
+ stream_out->device_current, volume);
return 0;
}
@@ -418,6 +406,8 @@ void audio_hw_close_output_stream(struct audio_hw_device *dev,
tinyalsa_audio_device = (struct tinyalsa_audio_device *) dev;
+ tinyalsa_mixer_set_output_state(tinyalsa_audio_device->mixer, 0);
+
tinyalsa_audio_device->stream_out = NULL;
}
@@ -482,6 +472,12 @@ int audio_hw_open_output_stream(struct audio_hw_device *dev,
*channels = (uint32_t) tinyalsa_audio_stream_out->channels;
*format = (uint32_t) tinyalsa_audio_stream_out->format;
+ rc = tinyalsa_mixer_set_output_state(tinyalsa_audio_device->mixer, 1);
+ if(rc < 0) {
+ LOGE("Unable to set output state");
+ goto error_stream;
+ }
+
audio_out_set_route(tinyalsa_audio_stream_out, devices);
rc = audio_out_pcm_open(tinyalsa_audio_stream_out);