Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 253ad107 authored by Kunlei Zhang's avatar Kunlei Zhang
Browse files

hal: disable volume boost if device is not supported during call

During call,if volume boost is enabled in handset,then insert
headset, the volume boost still is active. This causes headset
volume cannot adjust.

Fix it by disable volume boost if the device is not supported.

Change-Id: I650778a0d5190ec3551151a32f4d56bbe561bc18
parent a3349693
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -4975,6 +4975,7 @@ int route_output_stream(struct stream_out *out,
                    ret = voice_start_call(adev);
                }
            } else {
                platform_is_volume_boost_supported_device(adev->platform, &new_devices);
                adev->current_call_output = out;
                voice_update_devices_for_all_voice_usecases(adev);
            }
+18 −0
Original line number Diff line number Diff line
@@ -5573,6 +5573,24 @@ int platform_switch_voice_call_enable_device_config(void *platform,
    return ret;
}
void platform_is_volume_boost_supported_device(void *platform,
                                               struct listnode *devices)
{
    struct platform_data *my_data = (struct platform_data *)platform;
    if (my_data->voice_feature_set &&
        !(compare_device_type(devices,
                              AUDIO_DEVICE_OUT_SPEAKER)) &&
        !(compare_device_type(devices,
                              AUDIO_DEVICE_OUT_EARPIECE)) &&
        !(my_data->adev->voice.tty_mode == TTY_MODE_HCO)) {
          if(!my_data->acdb_reload_vocvoltable(VOICE_FEATURE_SET_DEFAULT)) {
             my_data->voice_feature_set = 0;
             ALOGD("%s: Unsupported volume boost device", __func__);
          }
    }
}
int platform_switch_voice_call_device_post(void *platform,
                                           snd_device_t out_snd_device,
                                           snd_device_t in_snd_device)
+1 −0
Original line number Diff line number Diff line
@@ -433,4 +433,5 @@ int platform_set_power_mode_on_device(struct audio_device* adev, snd_device_t sn
int platform_set_island_cfg_on_device(struct audio_device* adev, snd_device_t snd_device,
                                      bool enable);
void platform_reset_island_power_status(void *platform, snd_device_t snd_device);
void platform_is_volume_boost_supported_device(void *platform, struct listnode *devices);
#endif // AUDIO_PLATFORM_API_H