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

Commit beac8043 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

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



Change-Id: I9a23accc197a99b77e0901ae9be3302c5a1e1a93
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 70528036 55825ec1
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
@@ -1337,13 +1337,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);
}