diff options
-rw-r--r-- | audio_hw.c | 15 | ||||
-rw-r--r-- | audio_in.c | 3 | ||||
-rw-r--r-- | audio_out.c | 3 |
3 files changed, 17 insertions, 4 deletions
@@ -117,6 +117,7 @@ static int audio_hw_set_master_volume(struct audio_hw_device *dev, float volume) static int audio_hw_set_mode(struct audio_hw_device *dev, int mode) { struct tinyalsa_audio_device *device; + int rc; LOGD("%s(%p, %d)", __func__, dev, mode); @@ -131,8 +132,22 @@ static int audio_hw_set_mode(struct audio_hw_device *dev, int mode) if(device->stream_out != NULL) tinyalsa_mixer_set_device(device->mixer, device->stream_out->device_current); + +#ifdef YAMAHA_MC1N2_AUDIO + rc = yamaha_mc1n2_audio_modem_start(device->mc1n2_pdata); + if(rc < 0) { + LOGE("Failed to set Yamaha-MC1N2-Audio route"); + } +#endif } else if(device->mode == AUDIO_MODE_IN_CALL) { tinyalsa_mixer_set_modem_state(device->mixer, 0); + +#ifdef YAMAHA_MC1N2_AUDIO + rc = yamaha_mc1n2_audio_modem_stop(device->mc1n2_pdata); + if(rc < 0) { + LOGE("Failed to set Yamaha-MC1N2-Audio route"); + } +#endif } device->mode = mode; @@ -102,8 +102,7 @@ int audio_in_set_route(struct tinyalsa_audio_stream_in *stream_in, 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, - stream_in->device->mode); + yamaha_mc1n2_audio_set_route(stream_in->device->mc1n2_pdata, device); #endif return 0; diff --git a/audio_out.c b/audio_out.c index a347eaa..969c8f6 100644 --- a/audio_out.c +++ b/audio_out.c @@ -105,8 +105,7 @@ int audio_out_set_route(struct tinyalsa_audio_stream_out *stream_out, 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, - stream_out->device->mode); + yamaha_mc1n2_audio_set_route(stream_out->device->mc1n2_pdata, device); #endif return 0; |