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

Commit fc7acd72 authored by Preetam Singh Ranawat's avatar Preetam Singh Ranawat Committed by Gerrit - the friendly Code Review server
Browse files

volume_listener: Fix MBDRC volume difference issue for combo use case

-change in MBDRC level based on volume is not getting applied on combo device
 usecase (speaker is one of the device) due to speaker only check.

-Modify logic to recompute and apply MBDRC level if one of the device in combo
 device is speaker

Change-Id: I18726af9d30c966fd04666305529a46cebee18c7
parent 55293fa0
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
/*
 * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
 * Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
@@ -462,7 +462,7 @@ static int vol_effect_command(effect_handle_t self,

        // After changing the state and if device is speaker
        // recalculate gain dep cal level
        if (context->dev_id == AUDIO_DEVICE_OUT_SPEAKER) {
        if (context->dev_id & AUDIO_DEVICE_OUT_SPEAKER) {
                check_and_set_gain_dep_cal();
        }

@@ -489,7 +489,7 @@ static int vol_effect_command(effect_handle_t self,

        // After changing the state and if device is speaker
        // recalculate gain dep cal level
        if (context->dev_id == AUDIO_DEVICE_OUT_SPEAKER) {
        if (context->dev_id & AUDIO_DEVICE_OUT_SPEAKER) {
            check_and_set_gain_dep_cal();
        }

@@ -520,8 +520,8 @@ static int vol_effect_command(effect_handle_t self,
                   __func__, context->dev_id, new_device);

            // check if old or new device is speaker
            if ((context->dev_id ==  AUDIO_DEVICE_OUT_SPEAKER) ||
                (new_device == AUDIO_DEVICE_OUT_SPEAKER)) {
            if ((context->dev_id & AUDIO_DEVICE_OUT_SPEAKER) ||
                (new_device & AUDIO_DEVICE_OUT_SPEAKER)) {
                recompute_gain_dep_cal_Level = true;
            }

@@ -546,7 +546,7 @@ static int vol_effect_command(effect_handle_t self,
                goto exit;
            }

            if (context->dev_id == AUDIO_DEVICE_OUT_SPEAKER) {
            if (context->dev_id & AUDIO_DEVICE_OUT_SPEAKER) {
                recompute_gain_dep_cal_Level = true;
            }

@@ -771,7 +771,7 @@ static int vol_prc_lib_release(effect_handle_t handle)
            ALOGV("--- Found something to remove ---");
            list_remove(node);
            PRINT_STREAM_TYPE(context->stream_type);
            if (context->dev_id == AUDIO_DEVICE_OUT_SPEAKER) {
            if (context->dev_id & AUDIO_DEVICE_OUT_SPEAKER) {
                recompute_flag = true;
            }
            list_remove(&context->effect_list_node);