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

Commit b56aad7a authored by Ján Sebechlebský's avatar Ján Sebechlebský Committed by Automerger Merge Worker
Browse files

Merge "Allow to register RENDER AudioMix pointing to previously registered...

Merge "Allow to register RENDER AudioMix pointing to previously registered LOOPBACK AudioMix." into udc-dev am: 55825ec1 am: beac8043 am: 8d415691

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/23693534



Change-Id: Ifcf2159b451f946d798314f311d8bd4991de073e
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 570b9e4a 8d415691
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -183,7 +183,8 @@ status_t AudioPolicyMixCollection::registerMix(const AudioMix& mix,
    for (size_t i = 0; i < size(); i++) {
        const sp<AudioPolicyMix>& registeredMix = itemAt(i);
        if (mix.mDeviceType == registeredMix->mDeviceType
                && mix.mDeviceAddress.compare(registeredMix->mDeviceAddress) == 0) {
                && mix.mDeviceAddress.compare(registeredMix->mDeviceAddress) == 0
                && is_mix_loopback(mix.mRouteFlags)) {
            ALOGE("registerMix(): mix already registered for dev=0x%x addr=%s",
                    mix.mDeviceType, mix.mDeviceAddress.string());
            return BAD_VALUE;
+6 −5
Original line number Diff line number Diff line
@@ -1350,13 +1350,14 @@ TEST_F(AudioPolicyManagerTestDynamicPolicy, RegisterPolicyMixes) {
            AUDIO_DEVICE_OUT_REMOTE_SUBMIX, "", audioConfig);
    ASSERT_EQ(INVALID_OPERATION, ret);

    // The first time to register valid policy mixes should succeed.
    // The first time to register valid loopback policy mix should succeed.
    clearPolicyMix();
    ret = addPolicyMix(MIX_TYPE_PLAYERS, MIX_ROUTE_FLAG_RENDER,
            AUDIO_DEVICE_OUT_SPEAKER, "", audioConfig);
    ret = addPolicyMix(MIX_TYPE_PLAYERS, MIX_ROUTE_FLAG_LOOP_BACK,
            AUDIO_DEVICE_OUT_REMOTE_SUBMIX, "addr", audioConfig);
    ASSERT_EQ(NO_ERROR, ret);
    // Registering the same policy mixes should fail.
    ret = mManager->registerPolicyMixes(mAudioMixes);
    // Registering the render policy for the loopback address should succeed.
    ret = addPolicyMix(MIX_TYPE_PLAYERS, MIX_ROUTE_FLAG_RENDER,
            AUDIO_DEVICE_OUT_REMOTE_SUBMIX, "addr", audioConfig);
    ASSERT_EQ(INVALID_OPERATION, ret);
}