diff options
author | UtkarshGupta <utkarsh.eminem@gmail.com> | 2014-02-18 16:13:29 +0530 |
---|---|---|
committer | tilaksidduram <tilaksidduram@gmail.com> | 2014-03-03 10:23:14 +0530 |
commit | af060f3fbcea8dca2f2ef49a52759dec773bfa01 (patch) | |
tree | f210d87b0def83e7892a9609c41d0a2f63f13588 /audio/audio_hw.c | |
parent | a1676c728b0d479541bc48c80fe864c8eb673ec6 (diff) | |
download | device_samsung_n7100-af060f3fbcea8dca2f2ef49a52759dec773bfa01.zip device_samsung_n7100-af060f3fbcea8dca2f2ef49a52759dec773bfa01.tar.gz device_samsung_n7100-af060f3fbcea8dca2f2ef49a52759dec773bfa01.tar.bz2 |
n7100: audio: hal update
Brought in audio hal from i9300
Change-Id: Ib91a8b9bd41e7cdb83c14ca8de7f35e935337176
Diffstat (limited to 'audio/audio_hw.c')
-rwxr-xr-x | audio/audio_hw.c | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/audio/audio_hw.c b/audio/audio_hw.c index a890b63..50b0014 100755 --- a/audio/audio_hw.c +++ b/audio/audio_hw.c @@ -314,7 +314,6 @@ static int set_route_by_array(struct mixer *mixer, struct route_setting *route, void select_devices(struct m0_audio_device *adev) { int i; - if (adev->active_out_device == adev->out_device && adev->active_in_device == adev->in_device) return; @@ -324,26 +323,30 @@ void select_devices(struct m0_audio_device *adev) /* Turn on new devices first so we don't glitch due to powerdown... */ for (i = 0; i < adev->num_dev_cfgs; i++) if ((adev->out_device & adev->dev_cfgs[i].mask) && - !(adev->active_out_device & adev->dev_cfgs[i].mask)) + !(adev->active_out_device & adev->dev_cfgs[i].mask) && + !(adev->dev_cfgs[i].mask & AUDIO_DEVICE_BIT_IN)) set_route_by_array(adev->mixer, adev->dev_cfgs[i].on, adev->dev_cfgs[i].on_len); for (i = 0; i < adev->num_dev_cfgs; i++) if ((adev->in_device & adev->dev_cfgs[i].mask) && - !(adev->active_in_device & adev->dev_cfgs[i].mask)) + !(adev->active_in_device & adev->dev_cfgs[i].mask) && + (adev->dev_cfgs[i].mask & AUDIO_DEVICE_BIT_IN)) set_route_by_array(adev->mixer, adev->dev_cfgs[i].on, adev->dev_cfgs[i].on_len); /* ...then disable old ones. */ for (i = 0; i < adev->num_dev_cfgs; i++) if (!(adev->out_device & adev->dev_cfgs[i].mask) && - (adev->active_out_device & adev->dev_cfgs[i].mask)) + (adev->active_out_device & adev->dev_cfgs[i].mask) && + !(adev->dev_cfgs[i].mask & AUDIO_DEVICE_BIT_IN)) set_route_by_array(adev->mixer, adev->dev_cfgs[i].off, adev->dev_cfgs[i].off_len); for (i = 0; i < adev->num_dev_cfgs; i++) if (!(adev->in_device & adev->dev_cfgs[i].mask) && - (adev->active_in_device & adev->dev_cfgs[i].mask)) + (adev->active_in_device & adev->dev_cfgs[i].mask) && + (adev->dev_cfgs[i].mask & AUDIO_DEVICE_BIT_IN)) set_route_by_array(adev->mixer, adev->dev_cfgs[i].off, adev->dev_cfgs[i].off_len); @@ -493,8 +496,9 @@ static void set_incall_device(struct m0_audio_device *adev) device_type = SOUND_AUDIO_PATH_HANDSET; break; case AUDIO_DEVICE_OUT_SPEAKER: - case AUDIO_DEVICE_OUT_AUX_DIGITAL: + case AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET: case AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET: + case AUDIO_DEVICE_OUT_AUX_DIGITAL: device_type = SOUND_AUDIO_PATH_SPEAKER; break; case AUDIO_DEVICE_OUT_WIRED_HEADSET: @@ -644,6 +648,12 @@ static void select_output_device(struct m0_audio_device *adev) case AUDIO_DEVICE_OUT_ALL_SCO: ALOGD("%s: AUDIO_DEVICE_OUT_ALL_SCO", __func__); break; + case AUDIO_DEVICE_OUT_USB_ACCESSORY: + ALOGD("%s: AUDIO_DEVICE_OUT_USB_ACCESSORY", __func__); + break; + case AUDIO_DEVICE_OUT_USB_DEVICE: + ALOGD("%s: AUDIO_DEVICE_OUT_USB_DEVICE", __func__); + break; default: ALOGD("%s: AUDIO_DEVICE_OUT_ALL", __func__); break; @@ -721,12 +731,16 @@ static void select_output_device(struct m0_audio_device *adev) static void select_input_device(struct m0_audio_device *adev) { - switch(adev->in_device) { + int input_device = AUDIO_DEVICE_BIT_IN | adev->in_device; + + switch(input_device) { case AUDIO_DEVICE_IN_BUILTIN_MIC: ALOGD("%s: AUDIO_DEVICE_IN_BUILTIN_MIC", __func__); break; case AUDIO_DEVICE_IN_BACK_MIC: - ALOGD("%s: AUDIO_DEVICE_IN_BACK_MIC", __func__); + ALOGD("%s: AUDIO_DEVICE_IN_BACK_MIC | AUDIO_DEVICE_IN_BUILTIN_MIC", __func__); + // Force use both mics for video recording + adev->in_device = (AUDIO_DEVICE_IN_BACK_MIC | AUDIO_DEVICE_IN_BUILTIN_MIC) & ~AUDIO_DEVICE_BIT_IN; break; case AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET: ALOGD("%s: AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET", __func__); @@ -2412,7 +2426,6 @@ static int in_remove_audio_effect(const struct audio_stream *stream, in->preprocessors[in->num_preprocessors].effect_itfe = NULL; in->preprocessors[in->num_preprocessors].channel_configs = NULL; - /* check compatibility between main channel supported and possible auxiliary channels */ in_update_aux_channels(in, NULL); @@ -2820,6 +2833,7 @@ static const struct { { AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET, "analog-dock" }, { AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET, "digital-dock" }, { AUDIO_DEVICE_OUT_ALL_SCO, "sco-out" }, + { AUDIO_DEVICE_OUT_AUX_DIGITAL, "aux-digital" }, { AUDIO_DEVICE_IN_BUILTIN_MIC, "builtin-mic" }, { AUDIO_DEVICE_IN_BACK_MIC, "back-mic" }, |