diff options
Diffstat (limited to 'audio_out.c')
-rw-r--r-- | audio_out.c | 28 |
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); |