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

Commit cc84dbde authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Audiopolicy : skipDelays in registerPolicyMixes" into main am: decd9e66

parents 2e21bd4e decd9e66
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -4020,6 +4020,7 @@ status_t AudioPolicyManager::registerPolicyMixes(const Vector<AudioMix>& mixes)
    bool checkOutputs = false;
    sp<HwModule> rSubmixModule;
    Vector<AudioMix> registeredMixes;
    AudioDeviceTypeAddrVector devices;
    // examine each mix's route type
    for (size_t i = 0; i < mixes.size(); i++) {
        AudioMix mix = mixes[i];
@@ -4143,6 +4144,7 @@ status_t AudioPolicyManager::registerPolicyMixes(const Vector<AudioMix>& mixes)
                break;
            } else {
                checkOutputs = true;
                devices.push_back(AudioDeviceTypeAddr(mix.mDeviceType, mix.mDeviceAddress.c_str()));
                registeredMixes.add(mix);
            }
        }
@@ -4158,7 +4160,10 @@ status_t AudioPolicyManager::registerPolicyMixes(const Vector<AudioMix>& mixes)
        }
    } else if (checkOutputs) {
        checkForDeviceAndOutputChanges();
        updateCallAndOutputRouting();
        changeOutputDevicesMuteState(devices);
        updateCallAndOutputRouting(false /* forceVolumeReeval */, 0 /* delayMs */,
            true /* skipDelays */);
        changeOutputDevicesMuteState(devices);
    }
    return res;
}
@@ -4169,6 +4174,7 @@ status_t AudioPolicyManager::unregisterPolicyMixes(Vector<AudioMix> mixes)
    status_t res = NO_ERROR;
    bool checkOutputs = false;
    sp<HwModule> rSubmixModule;
    AudioDeviceTypeAddrVector devices;
    // examine each mix's route type
    for (const auto& mix : mixes) {
        if ((mix.mRouteFlags & MIX_ROUTE_FLAG_LOOP_BACK) == MIX_ROUTE_FLAG_LOOP_BACK) {
@@ -4216,6 +4222,7 @@ status_t AudioPolicyManager::unregisterPolicyMixes(Vector<AudioMix> mixes)
                res = INVALID_OPERATION;
                continue;
            } else {
                devices.push_back(AudioDeviceTypeAddr(mix.mDeviceType, mix.mDeviceAddress.c_str()));
                checkOutputs = true;
            }
        }
@@ -4223,7 +4230,10 @@ status_t AudioPolicyManager::unregisterPolicyMixes(Vector<AudioMix> mixes)

    if (res == NO_ERROR && checkOutputs) {
        checkForDeviceAndOutputChanges();
        updateCallAndOutputRouting();
        changeOutputDevicesMuteState(devices);
        updateCallAndOutputRouting(false /* forceVolumeReeval */, 0 /* delayMs */,
            true /* skipDelays */);
        changeOutputDevicesMuteState(devices);
    }
    return res;
}