Loading hal/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ ifneq ($(filter sdm845,$(TARGET_BOARD_PLATFORM)),) LOCAL_CFLAGS += -DMAX_TARGET_SPECIFIC_CHANNEL_CNT="4" LOCAL_CFLAGS += -DKPI_OPTIMIZE_ENABLED LOCAL_CFLAGS += -DINCALL_MUSIC_ENABLED LOCAL_CFLAGS += -DINCALL_STEREO_CAPTURE_ENABLED MULTIPLE_HW_VARIANTS_ENABLED := true endif endif Loading hal/audio_hw.c +12 −0 Original line number Diff line number Diff line Loading @@ -5006,6 +5006,18 @@ static int adev_open_input_stream(struct audio_hw_device *dev, in->capture_handle = handle; in->flags = flags; ALOGV("%s: source = %d, config->channel_mask = %d", __func__, source, config->channel_mask); if (source == AUDIO_SOURCE_VOICE_UPLINK || source == AUDIO_SOURCE_VOICE_DOWNLINK) { /* Force channel config requested to mono if incall record is being requested for only uplink/downlink */ if (config->channel_mask != AUDIO_CHANNEL_IN_MONO) { config->channel_mask = AUDIO_CHANNEL_IN_MONO; ret = -EINVAL; goto err_open; } } if (is_usb_dev && may_use_hifi_record) { /* HiFi record selects an appropriate format, channel, rate combo depending on sink capabilities*/ Loading hal/msm8916/platform.c +7 −0 Original line number Diff line number Diff line Loading @@ -2146,6 +2146,13 @@ int platform_set_incall_recording_session_id(void *platform, return ret; } int platform_set_incall_recording_session_channels(void *platform __unused, uint32_t channel_count __unused) { return 0; } int platform_stop_incall_recording_usecase(void *platform __unused) { return 0; Loading hal/msm8974/platform.c +29 −0 Original line number Diff line number Diff line Loading @@ -3259,6 +3259,35 @@ int platform_set_incall_recording_session_id(void *platform, return ret; } int platform_set_incall_recording_session_channels(void *platform, uint32_t channel_count) { int ret = 0; struct platform_data *my_data = (struct platform_data *)platform; struct audio_device *adev = my_data->adev; const char *mixer_ctl_name = "Voc Rec Config"; int num_ctl_values; int i; struct mixer_ctl *ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name); if (!ctl) { ALOGE("%s: Could not get ctl for mixer cmd - %s", __func__, mixer_ctl_name); ret = -EINVAL; } else { num_ctl_values = mixer_ctl_get_num_values(ctl); for (i = 0; i < num_ctl_values; i++) { if (mixer_ctl_set_value(ctl, i, channel_count)) { ALOGE("Error: invalid channel count: %x", channel_count); ret = -EINVAL; break; } } } return ret; } int platform_stop_incall_recording_usecase(void *platform) { int ret = 0; Loading hal/platform_api.h +2 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,8 @@ int64_t platform_render_latency(audio_usecase_t usecase); int platform_set_incall_recording_session_id(void *platform, uint32_t session_id, int rec_mode); int platform_set_incall_recording_session_channels(void *platform, uint32_t session_channels); int platform_stop_incall_recording_usecase(void *platform); int platform_start_incall_music_usecase(void *platform); int platform_stop_incall_music_usecase(void *platform); Loading Loading
hal/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ ifneq ($(filter sdm845,$(TARGET_BOARD_PLATFORM)),) LOCAL_CFLAGS += -DMAX_TARGET_SPECIFIC_CHANNEL_CNT="4" LOCAL_CFLAGS += -DKPI_OPTIMIZE_ENABLED LOCAL_CFLAGS += -DINCALL_MUSIC_ENABLED LOCAL_CFLAGS += -DINCALL_STEREO_CAPTURE_ENABLED MULTIPLE_HW_VARIANTS_ENABLED := true endif endif Loading
hal/audio_hw.c +12 −0 Original line number Diff line number Diff line Loading @@ -5006,6 +5006,18 @@ static int adev_open_input_stream(struct audio_hw_device *dev, in->capture_handle = handle; in->flags = flags; ALOGV("%s: source = %d, config->channel_mask = %d", __func__, source, config->channel_mask); if (source == AUDIO_SOURCE_VOICE_UPLINK || source == AUDIO_SOURCE_VOICE_DOWNLINK) { /* Force channel config requested to mono if incall record is being requested for only uplink/downlink */ if (config->channel_mask != AUDIO_CHANNEL_IN_MONO) { config->channel_mask = AUDIO_CHANNEL_IN_MONO; ret = -EINVAL; goto err_open; } } if (is_usb_dev && may_use_hifi_record) { /* HiFi record selects an appropriate format, channel, rate combo depending on sink capabilities*/ Loading
hal/msm8916/platform.c +7 −0 Original line number Diff line number Diff line Loading @@ -2146,6 +2146,13 @@ int platform_set_incall_recording_session_id(void *platform, return ret; } int platform_set_incall_recording_session_channels(void *platform __unused, uint32_t channel_count __unused) { return 0; } int platform_stop_incall_recording_usecase(void *platform __unused) { return 0; Loading
hal/msm8974/platform.c +29 −0 Original line number Diff line number Diff line Loading @@ -3259,6 +3259,35 @@ int platform_set_incall_recording_session_id(void *platform, return ret; } int platform_set_incall_recording_session_channels(void *platform, uint32_t channel_count) { int ret = 0; struct platform_data *my_data = (struct platform_data *)platform; struct audio_device *adev = my_data->adev; const char *mixer_ctl_name = "Voc Rec Config"; int num_ctl_values; int i; struct mixer_ctl *ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name); if (!ctl) { ALOGE("%s: Could not get ctl for mixer cmd - %s", __func__, mixer_ctl_name); ret = -EINVAL; } else { num_ctl_values = mixer_ctl_get_num_values(ctl); for (i = 0; i < num_ctl_values; i++) { if (mixer_ctl_set_value(ctl, i, channel_count)) { ALOGE("Error: invalid channel count: %x", channel_count); ret = -EINVAL; break; } } } return ret; } int platform_stop_incall_recording_usecase(void *platform) { int ret = 0; Loading
hal/platform_api.h +2 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,8 @@ int64_t platform_render_latency(audio_usecase_t usecase); int platform_set_incall_recording_session_id(void *platform, uint32_t session_id, int rec_mode); int platform_set_incall_recording_session_channels(void *platform, uint32_t session_channels); int platform_stop_incall_recording_usecase(void *platform); int platform_start_incall_music_usecase(void *platform); int platform_stop_incall_music_usecase(void *platform); Loading