Revert "Support device role for capture preset."

Revert "Support set/clear/get preferred device for capture preset."

Revert submission 12409575-devicesRoleForCapturePreset

Reason for revert: break CarAudioZonesHelperTest
Reverted Changes:
I92fdb2cbd:Support set/clear/get preferred device for capture...
I44e67d5b0:Add a helper function of checking if an audio sour...
Ib16ab2ec8:Support device role for capture preset.
I46bd8dfb5:Add tests for set/get/clearPreferredDeviceForCaptu...

Change-Id: I80f5267a01b48d01681a2d97cf3eb9de573ca6b5
diff --git a/media/libaudioclient/AudioSystem.cpp b/media/libaudioclient/AudioSystem.cpp
index 4bbd4f7..49c4bc0 100644
--- a/media/libaudioclient/AudioSystem.cpp
+++ b/media/libaudioclient/AudioSystem.cpp
@@ -1634,59 +1634,6 @@
     return aps->getDevicesForRoleAndStrategy(strategy, role, devices);
 }
 
-status_t AudioSystem::setDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                     device_role_t role,
-                                                     const AudioDeviceTypeAddrVector &devices)
-{
-    const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service();
-    if (aps == 0) {
-        return PERMISSION_DENIED;
-    }
-    return aps->setDevicesRoleForCapturePreset(audioSource, role, devices);
-}
-
-status_t AudioSystem::addDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                     device_role_t role,
-                                                     const AudioDeviceTypeAddrVector &devices)
-{
-    const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service();
-    if (aps == 0) {
-        return PERMISSION_DENIED;
-    }
-    return aps->addDevicesRoleForCapturePreset(audioSource, role, devices);
-}
-
-status_t AudioSystem::removeDevicesRoleForCapturePreset(
-        audio_source_t audioSource, device_role_t role, const AudioDeviceTypeAddrVector& devices)
-{
-    const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service();
-    if (aps == 0) {
-        return PERMISSION_DENIED;
-    }
-    return aps->removeDevicesRoleForCapturePreset(audioSource, role, devices);
-}
-
-status_t AudioSystem::clearDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                       device_role_t role)
-{
-    const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service();
-    if (aps == 0) {
-        return PERMISSION_DENIED;
-    }
-    return aps->clearDevicesRoleForCapturePreset(audioSource, role);
-}
-
-status_t AudioSystem::getDevicesForRoleAndCapturePreset(audio_source_t audioSource,
-                                                        device_role_t role,
-                                                        AudioDeviceTypeAddrVector &devices)
-{
-    const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service();
-    if (aps == 0) {
-        return PERMISSION_DENIED;
-    }
-    return aps->getDevicesForRoleAndCapturePreset(audioSource, role, devices);
-}
-
 class CaptureStateListenerImpl : public media::BnCaptureStateListener,
                                  public IBinder::DeathRecipient {
 public:
diff --git a/media/libaudioclient/IAudioPolicyService.cpp b/media/libaudioclient/IAudioPolicyService.cpp
index 9d3212b..1491afe 100644
--- a/media/libaudioclient/IAudioPolicyService.cpp
+++ b/media/libaudioclient/IAudioPolicyService.cpp
@@ -119,11 +119,6 @@
     AUDIO_MODULES_UPDATED,  // oneway
     SET_CURRENT_IME_UID,
     REGISTER_SOUNDTRIGGER_CAPTURE_STATE_LISTENER,
-    SET_DEVICES_ROLE_FOR_CAPTURE_PRESET,
-    ADD_DEVICES_ROLE_FOR_CAPTURE_PRESET,
-    REMOVE_DEVICES_ROLE_FOR_CAPTURE_PRESET,
-    CLEAR_DEVICES_ROLE_FOR_CAPTURE_PRESET,
-    GET_DEVICES_FOR_ROLE_AND_CAPTURE_PRESET,
 };
 
 #define MAX_ITEMS_PER_LIST 1024
@@ -1413,95 +1408,6 @@
         return static_cast<status_t>(reply.readInt32());
     }
 
-    virtual status_t setDevicesRoleForCapturePreset(audio_source_t audioSource,
-            device_role_t role, const AudioDeviceTypeAddrVector &devices) {
-        Parcel data, reply;
-        data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor());
-        data.writeUint32(static_cast<uint32_t>(audioSource));
-        data.writeUint32(static_cast<uint32_t>(role));
-        status_t status = data.writeParcelableVector(devices);
-        if (status != NO_ERROR) {
-            return status;
-        }
-        status = remote()->transact(SET_DEVICES_ROLE_FOR_CAPTURE_PRESET, data, &reply);
-        if (status != NO_ERROR) {
-            return status;
-        }
-        return static_cast<status_t>(reply.readInt32());
-    }
-
-    virtual status_t addDevicesRoleForCapturePreset(audio_source_t audioSource,
-            device_role_t role, const AudioDeviceTypeAddrVector &devices)
-    {
-        Parcel data, reply;
-        data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor());
-        data.writeUint32(static_cast<uint32_t>(audioSource));
-        data.writeUint32(static_cast<uint32_t>(role));
-        status_t status = data.writeParcelableVector(devices);
-        if (status != NO_ERROR) {
-            return status;
-        }
-        status = remote()->transact(ADD_DEVICES_ROLE_FOR_CAPTURE_PRESET, data, &reply);
-        if (status != NO_ERROR) {
-           return status;
-        }
-        return static_cast<status_t>(reply.readInt32());
-    }
-
-    virtual status_t removeDevicesRoleForCapturePreset(
-            audio_source_t audioSource, device_role_t role,
-            const AudioDeviceTypeAddrVector& devices)
-    {
-        Parcel data, reply;
-        data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor());
-        data.writeUint32(static_cast<uint32_t>(audioSource));
-        data.writeUint32(static_cast<uint32_t>(role));
-        status_t status = data.writeParcelableVector(devices);
-        if (status != NO_ERROR) {
-            return status;
-        }
-        status = remote()->transact(REMOVE_DEVICES_ROLE_FOR_CAPTURE_PRESET,
-                data, &reply);
-        if (status != NO_ERROR) {
-           return status;
-        }
-        return static_cast<status_t>(reply.readInt32());
-    }
-
-    virtual status_t clearDevicesRoleForCapturePreset(
-            audio_source_t audioSource, device_role_t role)
-    {
-        Parcel data, reply;
-        data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor());
-        data.writeUint32(static_cast<uint32_t>(audioSource));
-        data.writeUint32(static_cast<uint32_t>(role));
-        status_t status = remote()->transact(CLEAR_DEVICES_ROLE_FOR_CAPTURE_PRESET,
-                data, &reply);
-        if (status != NO_ERROR) {
-           return status;
-        }
-        return static_cast<status_t>(reply.readInt32());
-    }
-
-    virtual status_t getDevicesForRoleAndCapturePreset(audio_source_t audioSource,
-            device_role_t role, AudioDeviceTypeAddrVector &devices)
-    {
-        Parcel data, reply;
-        data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor());
-        data.writeUint32(static_cast<uint32_t>(audioSource));
-        data.writeUint32(static_cast<uint32_t>(role));
-        status_t status = remote()->transact(GET_DEVICES_FOR_ROLE_AND_CAPTURE_PRESET,
-                data, &reply);
-        if (status != NO_ERROR) {
-            return status;
-        }
-        status = reply.readParcelableVector(&devices);
-        if (status != NO_ERROR) {
-            return status;
-        }
-        return static_cast<status_t>(reply.readInt32());
-    }
-
     virtual status_t getDevicesForAttributes(const AudioAttributes &aa,
             AudioDeviceTypeAddrVector *devices) const
     {
@@ -1638,12 +1544,7 @@
         case SET_ALLOWED_CAPTURE_POLICY:
         case AUDIO_MODULES_UPDATED:
         case SET_CURRENT_IME_UID:
-        case REGISTER_SOUNDTRIGGER_CAPTURE_STATE_LISTENER:
-        case SET_DEVICES_ROLE_FOR_CAPTURE_PRESET:
-        case ADD_DEVICES_ROLE_FOR_CAPTURE_PRESET:
-        case REMOVE_DEVICES_ROLE_FOR_CAPTURE_PRESET:
-        case CLEAR_DEVICES_ROLE_FOR_CAPTURE_PRESET:
-        case GET_DEVICES_FOR_ROLE_AND_CAPTURE_PRESET: {
+        case REGISTER_SOUNDTRIGGER_CAPTURE_STATE_LISTENER: {
             if (!isServiceUid(IPCThreadState::self()->getCallingUid())) {
                 ALOGW("%s: transaction %d received from PID %d unauthorized UID %d",
                       __func__, code, IPCThreadState::self()->getCallingPid(),
@@ -2828,71 +2729,6 @@
             return NO_ERROR;
         } break;
 
-        case SET_DEVICES_ROLE_FOR_CAPTURE_PRESET: {
-            CHECK_INTERFACE(IAudioPolicyService, data, reply);
-            audio_source_t audioSource = (audio_source_t) data.readUint32();
-            device_role_t role = (device_role_t) data.readUint32();
-            AudioDeviceTypeAddrVector devices;
-            status_t status = data.readParcelableVector(&devices);
-            if (status != NO_ERROR) {
-                return status;
-            }
-            status = setDevicesRoleForCapturePreset(audioSource, role, devices);
-            reply->writeInt32(status);
-            return NO_ERROR;
-        }
-
-        case ADD_DEVICES_ROLE_FOR_CAPTURE_PRESET: {
-            CHECK_INTERFACE(IAudioPolicyService, data, reply);
-            audio_source_t audioSource = (audio_source_t) data.readUint32();
-            device_role_t role = (device_role_t) data.readUint32();
-            AudioDeviceTypeAddrVector devices;
-            status_t status = data.readParcelableVector(&devices);
-            if (status != NO_ERROR) {
-                return status;
-            }
-            status = addDevicesRoleForCapturePreset(audioSource, role, devices);
-            reply->writeInt32(status);
-            return NO_ERROR;
-        }
-
-        case REMOVE_DEVICES_ROLE_FOR_CAPTURE_PRESET: {
-            CHECK_INTERFACE(IAudioPolicyService, data, reply);
-            audio_source_t audioSource = (audio_source_t) data.readUint32();
-            device_role_t role = (device_role_t) data.readUint32();
-            AudioDeviceTypeAddrVector devices;
-            status_t status = data.readParcelableVector(&devices);
-            if (status != NO_ERROR) {
-                return status;
-            }
-            status = removeDevicesRoleForCapturePreset(audioSource, role, devices);
-            reply->writeInt32(status);
-            return NO_ERROR;
-        }
-
-        case CLEAR_DEVICES_ROLE_FOR_CAPTURE_PRESET: {
-            CHECK_INTERFACE(IAudioPolicyService, data, reply);
-            audio_source_t audioSource = (audio_source_t) data.readUint32();
-            device_role_t role = (device_role_t) data.readUint32();
-            status_t status = clearDevicesRoleForCapturePreset(audioSource, role);
-            reply->writeInt32(status);
-            return NO_ERROR;
-        }
-
-        case GET_DEVICES_FOR_ROLE_AND_CAPTURE_PRESET: {
-            CHECK_INTERFACE(IAudioPolicyService, data, reply);
-            audio_source_t audioSource = (audio_source_t) data.readUint32();
-            device_role_t role = (device_role_t) data.readUint32();
-            AudioDeviceTypeAddrVector devices;
-            status_t status = getDevicesForRoleAndCapturePreset(audioSource, role, devices);
-            status_t marshall_status = reply->writeParcelableVector(devices);
-            if (marshall_status != NO_ERROR) {
-                return marshall_status;
-            }
-            reply->writeInt32(status);
-            return NO_ERROR;
-        }
-
         default:
             return BBinder::onTransact(code, data, reply, flags);
     }
diff --git a/media/libaudioclient/include/media/AudioSystem.h b/media/libaudioclient/include/media/AudioSystem.h
index 848743a..09025d1 100644
--- a/media/libaudioclient/include/media/AudioSystem.h
+++ b/media/libaudioclient/include/media/AudioSystem.h
@@ -433,22 +433,6 @@
     static status_t getDevicesForRoleAndStrategy(product_strategy_t strategy,
             device_role_t role, AudioDeviceTypeAddrVector &devices);
 
-    static status_t setDevicesRoleForCapturePreset(audio_source_t audioSource,
-            device_role_t role, const AudioDeviceTypeAddrVector &devices);
-
-    static status_t addDevicesRoleForCapturePreset(audio_source_t audioSource,
-            device_role_t role, const AudioDeviceTypeAddrVector &devices);
-
-    static status_t removeDevicesRoleForCapturePreset(
-            audio_source_t audioSource, device_role_t role,
-            const AudioDeviceTypeAddrVector& devices);
-
-    static status_t clearDevicesRoleForCapturePreset(
-            audio_source_t audioSource, device_role_t role);
-
-    static status_t getDevicesForRoleAndCapturePreset(audio_source_t audioSource,
-            device_role_t role, AudioDeviceTypeAddrVector &devices);
-
     static status_t getDeviceForStrategy(product_strategy_t strategy,
             AudioDeviceTypeAddr &device);
 
diff --git a/media/libaudioclient/include/media/IAudioPolicyService.h b/media/libaudioclient/include/media/IAudioPolicyService.h
index 2d5f687..afb0fda 100644
--- a/media/libaudioclient/include/media/IAudioPolicyService.h
+++ b/media/libaudioclient/include/media/IAudioPolicyService.h
@@ -252,25 +252,6 @@
                                                   device_role_t role,
                                                   AudioDeviceTypeAddrVector &devices) = 0;
 
-    virtual status_t setDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                    device_role_t role,
-                                                    const AudioDeviceTypeAddrVector &devices) = 0;
-
-    virtual status_t addDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                    device_role_t role,
-                                                    const AudioDeviceTypeAddrVector &devices) = 0;
-
-    virtual status_t removeDevicesRoleForCapturePreset(
-            audio_source_t audioSource, device_role_t role,
-            const AudioDeviceTypeAddrVector& devices) = 0;
-
-    virtual status_t clearDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                      device_role_t role) = 0;
-
-    virtual status_t getDevicesForRoleAndCapturePreset(audio_source_t audioSource,
-                                                       device_role_t role,
-                                                       AudioDeviceTypeAddrVector &devices) = 0;
-
     // The return code here is only intended to represent transport errors. The
     // actual server implementation should always return NO_ERROR.
     virtual status_t registerSoundTriggerCaptureStateListener(
diff --git a/media/libaudiofoundation/AudioDeviceTypeAddr.cpp b/media/libaudiofoundation/AudioDeviceTypeAddr.cpp
index d8fce38..da2e109 100644
--- a/media/libaudiofoundation/AudioDeviceTypeAddr.cpp
+++ b/media/libaudiofoundation/AudioDeviceTypeAddr.cpp
@@ -19,7 +19,6 @@
 #include <arpa/inet.h>
 #include <iostream>
 #include <regex>
-#include <set>
 #include <sstream>
 
 namespace android {
@@ -81,14 +80,6 @@
     return false;
 }
 
-bool AudioDeviceTypeAddr::operator==(const AudioDeviceTypeAddr &rhs) const {
-    return equals(rhs);
-}
-
-bool AudioDeviceTypeAddr::operator!=(const AudioDeviceTypeAddr &rhs) const {
-    return !operator==(rhs);
-}
-
 void AudioDeviceTypeAddr::reset() {
     mType = AUDIO_DEVICE_NONE;
     setAddress("");
@@ -127,20 +118,6 @@
     return deviceTypes;
 }
 
-AudioDeviceTypeAddrVector excludeDeviceTypeAddrsFrom(
-        const AudioDeviceTypeAddrVector& devices,
-        const AudioDeviceTypeAddrVector& devicesToExclude) {
-    std::set<AudioDeviceTypeAddr> devicesToExcludeSet(
-            devicesToExclude.begin(), devicesToExclude.end());
-    AudioDeviceTypeAddrVector remainedDevices;
-    for (const auto& device : devices) {
-        if (devicesToExcludeSet.count(device) == 0) {
-            remainedDevices.push_back(device);
-        }
-    }
-    return remainedDevices;
-}
-
 std::string dumpAudioDeviceTypeAddrVector(const AudioDeviceTypeAddrVector& deviceTypeAddrs,
                                           bool includeSensitiveInfo) {
     std::stringstream stream;
diff --git a/media/libaudiofoundation/include/media/AudioDeviceTypeAddr.h b/media/libaudiofoundation/include/media/AudioDeviceTypeAddr.h
index 7497faf..3e03df7 100644
--- a/media/libaudiofoundation/include/media/AudioDeviceTypeAddr.h
+++ b/media/libaudiofoundation/include/media/AudioDeviceTypeAddr.h
@@ -47,10 +47,6 @@
 
     bool operator<(const AudioDeviceTypeAddr& other) const;
 
-    bool operator==(const AudioDeviceTypeAddr& rhs) const;
-
-    bool operator!=(const AudioDeviceTypeAddr& rhs) const;
-
     void reset();
 
     std::string toString(bool includeSensitiveInfo=false) const;
@@ -73,14 +69,6 @@
  */
 DeviceTypeSet getAudioDeviceTypes(const AudioDeviceTypeAddrVector& deviceTypeAddrs);
 
-/**
- * Return a collection of AudioDeviceTypeAddrs that are shown in `devices` but not
- * in `devicesToExclude`
- */
-AudioDeviceTypeAddrVector excludeDeviceTypeAddrsFrom(
-        const AudioDeviceTypeAddrVector& devices,
-        const AudioDeviceTypeAddrVector& devicesToExclude);
-
 std::string dumpAudioDeviceTypeAddrVector(const AudioDeviceTypeAddrVector& deviceTypeAddrs,
                                           bool includeSensitiveInfo=false);
 
diff --git a/services/audiopolicy/AudioPolicyInterface.h b/services/audiopolicy/AudioPolicyInterface.h
index 93819f5..0f3ed14 100644
--- a/services/audiopolicy/AudioPolicyInterface.h
+++ b/services/audiopolicy/AudioPolicyInterface.h
@@ -306,25 +306,6 @@
     virtual status_t getDevicesForRoleAndStrategy(product_strategy_t strategy,
                                                   device_role_t role,
                                                   AudioDeviceTypeAddrVector &devices) = 0;
-
-    virtual status_t setDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                    device_role_t role,
-                                                    const AudioDeviceTypeAddrVector &devices) = 0;
-
-    virtual status_t addDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                    device_role_t role,
-                                                    const AudioDeviceTypeAddrVector &devices) = 0;
-
-    virtual status_t removeDevicesRoleForCapturePreset(
-            audio_source_t audioSource, device_role_t role,
-            const AudioDeviceTypeAddrVector& devices) = 0;
-
-    virtual status_t clearDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                      device_role_t role) = 0;
-
-    virtual status_t getDevicesForRoleAndCapturePreset(audio_source_t audioSource,
-                                                       device_role_t role,
-                                                       AudioDeviceTypeAddrVector &devices) = 0;
 };
 
 
diff --git a/services/audiopolicy/engine/common/include/EngineBase.h b/services/audiopolicy/engine/common/include/EngineBase.h
index 4510f63..804a802 100755
--- a/services/audiopolicy/engine/common/include/EngineBase.h
+++ b/services/audiopolicy/engine/common/include/EngineBase.h
@@ -127,36 +127,11 @@
 
     status_t restoreOriginVolumeCurve(audio_stream_type_t stream);
 
-    status_t setDevicesRoleForCapturePreset(audio_source_t audioSource, device_role_t role,
-            const AudioDeviceTypeAddrVector &devices) override;
-
-    status_t addDevicesRoleForCapturePreset(audio_source_t audioSource, device_role_t role,
-            const AudioDeviceTypeAddrVector &devices) override;
-
-    /**
-     * Remove devices role for capture preset. When `forceMatched` is true, the devices to be
-     * removed must all show as role for the capture preset. Otherwise, only devices that has shown
-     * as role for the capture preset will be remove.
-     */
-    status_t doRemoveDevicesRoleForCapturePreset(audio_source_t audioSource,
-            device_role_t role, const AudioDeviceTypeAddrVector& devices,
-            bool forceMatched=true);
-
-    status_t removeDevicesRoleForCapturePreset(audio_source_t audioSource,
-            device_role_t role, const AudioDeviceTypeAddrVector& devices) override;
-
-    status_t clearDevicesRoleForCapturePreset(audio_source_t audioSource,
-            device_role_t role) override;
-
-    status_t getDevicesForRoleAndCapturePreset(audio_source_t audioSource,
-            device_role_t role, AudioDeviceTypeAddrVector &devices) const override;
-
 private:
     AudioPolicyManagerObserver *mApmObserver = nullptr;
 
     ProductStrategyMap mProductStrategies;
     ProductStrategyPreferredRoutingMap mProductStrategyPreferredDevices;
-    CapturePresetDevicesRoleMap mCapturePresetDevicesRole;
     VolumeGroupMap mVolumeGroups;
     LastRemovableMediaDevices mLastRemovableMediaDevices;
     audio_mode_t mPhoneState = AUDIO_MODE_NORMAL;  /**< current phone state. */
diff --git a/services/audiopolicy/engine/common/src/EngineBase.cpp b/services/audiopolicy/engine/common/src/EngineBase.cpp
index 1875c10..ae4f7f4 100644
--- a/services/audiopolicy/engine/common/src/EngineBase.cpp
+++ b/services/audiopolicy/engine/common/src/EngineBase.cpp
@@ -19,7 +19,6 @@
 
 #include "EngineBase.h"
 #include "EngineDefaultConfig.h"
-#include "../include/EngineBase.h"
 #include <TypeConverter.h>
 
 namespace android {
@@ -424,171 +423,6 @@
     return NO_ERROR;
 }
 
-status_t EngineBase::setDevicesRoleForCapturePreset(audio_source_t audioSource, device_role_t role,
-        const AudioDeviceTypeAddrVector &devices)
-{
-    // verify if the audio source is valid
-    if (!audio_is_valid_audio_source(audioSource)) {
-        ALOGE("%s unknown audio source %u", __func__, audioSource);
-    }
-
-    switch (role) {
-    case DEVICE_ROLE_PREFERRED:
-        mCapturePresetDevicesRole[audioSource][role] = devices;
-        // When the devices are set as preferred devices, remove them from the disabled devices.
-        doRemoveDevicesRoleForCapturePreset(
-                audioSource, DEVICE_ROLE_DISABLED, devices, false /*forceMatched*/);
-        break;
-    case DEVICE_ROLE_DISABLED:
-        // TODO: support setting devices role as disabled for capture preset.
-        ALOGI("%s no implemented for role as %d", __func__, role);
-        break;
-    case DEVICE_ROLE_NONE:
-        // Intentionally fall-through as it is no need to set device role as none
-    default:
-        ALOGE("%s invalid role %d", __func__, role);
-        return BAD_VALUE;
-    }
-    return NO_ERROR;
-}
-
-status_t EngineBase::addDevicesRoleForCapturePreset(audio_source_t audioSource, device_role_t role,
-        const AudioDeviceTypeAddrVector &devices)
-{
-    // verify if the audio source is valid
-    if (!audio_is_valid_audio_source(audioSource)) {
-        ALOGE("%s unknown audio source %u", __func__, audioSource);
-    }
-
-    switch (role) {
-    case DEVICE_ROLE_PREFERRED:
-        mCapturePresetDevicesRole[audioSource][role] = excludeDeviceTypeAddrsFrom(
-                mCapturePresetDevicesRole[audioSource][role], devices);
-        for (const auto& device : devices) {
-            mCapturePresetDevicesRole[audioSource][role].push_back(device);
-        }
-        // When the devices are set as preferred devices, remove them from the disabled devices.
-        doRemoveDevicesRoleForCapturePreset(
-                audioSource, DEVICE_ROLE_DISABLED, devices, false /*forceMatched*/);
-        break;
-    case DEVICE_ROLE_DISABLED:
-        // TODO: support setting devices role as disabled for capture preset.
-        ALOGI("%s no implemented for role as %d", __func__, role);
-        break;
-    case DEVICE_ROLE_NONE:
-        // Intentionally fall-through as it is no need to set device role as none
-    default:
-        ALOGE("%s invalid role %d", __func__, role);
-        return BAD_VALUE;
-    }
-    return NO_ERROR;
-}
-
-status_t EngineBase::removeDevicesRoleForCapturePreset(
-        audio_source_t audioSource, device_role_t role, const AudioDeviceTypeAddrVector& devices) {
-    return doRemoveDevicesRoleForCapturePreset(audioSource, role, devices);
-}
-
-status_t EngineBase::doRemoveDevicesRoleForCapturePreset(audio_source_t audioSource,
-        device_role_t role, const AudioDeviceTypeAddrVector& devices, bool forceMatched)
-{
-    // verify if the audio source is valid
-    if (!audio_is_valid_audio_source(audioSource)) {
-        ALOGE("%s unknown audio source %u", __func__, audioSource);
-    }
-
-    switch (role) {
-    case DEVICE_ROLE_PREFERRED:
-    case DEVICE_ROLE_DISABLED: {
-        if (mCapturePresetDevicesRole.count(audioSource) == 0 ||
-                mCapturePresetDevicesRole[audioSource].count(role) == 0) {
-            return NAME_NOT_FOUND;
-        }
-        AudioDeviceTypeAddrVector remainingDevices = excludeDeviceTypeAddrsFrom(
-                mCapturePresetDevicesRole[audioSource][role], devices);
-        if (forceMatched && remainingDevices.size() !=
-                mCapturePresetDevicesRole[audioSource][role].size() - devices.size()) {
-            // There are some devices from `devicesToRemove` that are not shown in the cached record
-            return BAD_VALUE;
-        }
-        mCapturePresetDevicesRole[audioSource][role] = remainingDevices;
-        if (mCapturePresetDevicesRole[audioSource][role].empty()) {
-            // Remove the role when device list is empty
-            mCapturePresetDevicesRole[audioSource].erase(role);
-        }
-    } break;
-    case DEVICE_ROLE_NONE:
-        // Intentionally fall-through as it makes no sense to remove devices with
-        // role as DEVICE_ROLE_NONE
-    default:
-        ALOGE("%s invalid role %d", __func__, role);
-        return BAD_VALUE;
-    }
-    return NO_ERROR;
-}
-
-status_t EngineBase::clearDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                      device_role_t role)
-{
-    // verify if the audio source is valid
-    if (!audio_is_valid_audio_source(audioSource)) {
-        ALOGE("%s unknown audio source %u", __func__, audioSource);
-    }
-
-    switch (role) {
-    case DEVICE_ROLE_PREFERRED:
-        if (mCapturePresetDevicesRole.count(audioSource) == 0 ||
-                mCapturePresetDevicesRole[audioSource].erase(role) == 0) {
-            // no preferred device for the given audio source
-            return NAME_NOT_FOUND;
-        }
-        break;
-    case DEVICE_ROLE_DISABLED:
-        // TODO: support remove devices role as disabled for strategy.
-        ALOGI("%s no implemented for role as %d", __func__, role);
-        break;
-    case DEVICE_ROLE_NONE:
-        // Intentionally fall-through as it makes no sense to remove devices with
-        // role as DEVICE_ROLE_NONE for a strategy
-    default:
-        ALOGE("%s invalid role %d", __func__, role);
-        return BAD_VALUE;
-    }
-    return NO_ERROR;
-}
-
-status_t EngineBase::getDevicesForRoleAndCapturePreset(audio_source_t audioSource,
-        device_role_t role, AudioDeviceTypeAddrVector &devices) const
-{
-    // verify if the audio source is valid
-    if (!audio_is_valid_audio_source(audioSource)) {
-        ALOGE("%s unknown audio source %u", __func__, audioSource);
-        return BAD_VALUE;
-    }
-
-    switch (role) {
-    case DEVICE_ROLE_PREFERRED:
-    case DEVICE_ROLE_DISABLED: {
-        if (mCapturePresetDevicesRole.count(audioSource) == 0) {
-            return NAME_NOT_FOUND;
-        }
-        auto devIt = mCapturePresetDevicesRole.at(audioSource).find(role);
-        if (devIt == mCapturePresetDevicesRole.at(audioSource).end()) {
-            ALOGV("%s no devices role(%d) for capture preset %u", __func__, role, audioSource);
-            return NAME_NOT_FOUND;
-        }
-
-        devices = devIt->second;
-    } break;
-    case DEVICE_ROLE_NONE:
-        // Intentionally fall-through as the DEVICE_ROLE_NONE is never set
-    default:
-        ALOGE("%s invalid role %d", __func__, role);
-        return BAD_VALUE;
-    }
-    return NO_ERROR;
-}
-
 void EngineBase::dump(String8 *dst) const
 {
     mProductStrategies.dump(dst, 2);
diff --git a/services/audiopolicy/engine/interface/EngineInterface.h b/services/audiopolicy/engine/interface/EngineInterface.h
index f64608d..d45e71c 100644
--- a/services/audiopolicy/engine/interface/EngineInterface.h
+++ b/services/audiopolicy/engine/interface/EngineInterface.h
@@ -34,8 +34,6 @@
 using DeviceStrategyMap = std::map<product_strategy_t, DeviceVector>;
 using StrategyVector = std::vector<product_strategy_t>;
 using VolumeGroupVector = std::vector<volume_group_t>;
-using CapturePresetDevicesRoleMap =
-        std::map<audio_source_t, std::map<device_role_t, AudioDeviceTypeAddrVector>>;
 
 /**
  * This interface is dedicated to the policy manager that a Policy Engine shall implement.
@@ -334,75 +332,6 @@
     virtual status_t getDevicesForRoleAndStrategy(product_strategy_t strategy, device_role_t role,
             AudioDeviceTypeAddrVector &devices) const = 0;
 
-    /**
-     * @brief setDevicesRoleForCapturePreset sets devices role for a capture preset when available.
-     * To remove devices role, removeDevicesRoleForCapturePreset must be called. Calling
-     * clearDevicesRoleForCapturePreset will remove all devices as role. When devices role is set
-     * successfully, previously set devices for the same role and capture preset will be removed.
-     * @param audioSource the audio capture preset whose routing will be affected
-     * @param role the role of the devices for the capture preset. All device roles are defined at
-     *             system/media/audio/include/system/audio_policy.h. DEVICE_ROLE_NONE is invalid
-     *             for setting.
-     * @param devices the audio devices to be set
-     * @return BAD_VALUE if the capture preset or role is invalid,
-     *     or NO_ERROR if the role of the devices for capture preset was set
-     */
-    virtual status_t setDevicesRoleForCapturePreset(audio_source_t audioSource, device_role_t role,
-            const AudioDeviceTypeAddrVector &devices) = 0;
-
-    /**
-     * @brief addDevicesRoleForCapturePreset adds devices role for a capture preset when available.
-     * To remove devices role, removeDevicesRoleForCapturePreset must be called. Calling
-     * clearDevicesRoleForCapturePreset will remove all devices as role.
-     * @param audioSource the audio capture preset whose routing will be affected
-     * @param role the role of the devices for the capture preset. All device roles are defined at
-     *             system/media/audio/include/system/audio_policy.h. DEVICE_ROLE_NONE is invalid
-     *             for setting.
-     * @param devices the audio devices to be added
-     * @return BAD_VALUE if the capture preset or role is invalid,
-     *     or NO_ERROR if the role of the devices for capture preset was added
-     */
-    virtual status_t addDevicesRoleForCapturePreset(audio_source_t audioSource, device_role_t role,
-            const AudioDeviceTypeAddrVector &devices) = 0;
-
-    /**
-     * @brief removeDevicesRoleForCapturePreset removes the role of device(s) previously set
-     * for the given capture preset
-     * @param audioSource the audio capture preset whose routing will be affected
-     * @param role the role of the devices for the capture preset
-     * @param devices the devices to be removed
-     * @return BAD_VALUE if 1) the capture preset is invalid, 2) role is invalid or 3) the list of
-     *     devices to be removed are not all present as role for a capture preset
-     *     or NO_ERROR if the devices for this role was removed
-     */
-    virtual status_t removeDevicesRoleForCapturePreset(audio_source_t audioSource,
-            device_role_t role, const AudioDeviceTypeAddrVector& devices) = 0;
-
-    /**
-     * @brief clearDevicesRoleForCapturePreset removes the role of all device(s) previously set
-     * for the given capture preset
-     * @param audioSource the audio capture preset whose routing will be affected
-     * @param role the role of the devices for the capture preset
-     * @return BAD_VALUE if the capture preset or role is invalid,
-     *     or NO_ERROR if the devices for this role was removed
-     */
-    virtual status_t clearDevicesRoleForCapturePreset(audio_source_t audioSource,
-            device_role_t role);
-
-    /**
-     * @brief getDevicesForRoleAndCapturePreset queries which devices have the specified role for
-     * the specified capture preset
-     * @param audioSource the capture preset to query
-     * @param role the role of the devices to query
-     * @param devices returns list of devices with matching role for the specified capture preset.
-     *                DEVICE_ROLE_NONE is invalid as input.
-     * @return BAD_VALUE if the capture preset or role is invalid,
-     *     or NAME_NOT_FOUND if no device for the role and capture preset was set
-     *     or NO_ERROR if the devices parameter contains a list of devices
-     */
-    virtual status_t getDevicesForRoleAndCapturePreset(audio_source_t audioSource,
-            device_role_t role, AudioDeviceTypeAddrVector &devices) const = 0;
-
 
     virtual void dump(String8 *dst) const = 0;
 
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index cb3725e..04c5cba 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -3115,7 +3115,7 @@
                 devices[i].mType, devices[i].getAddress(), String8(),
                 AUDIO_FORMAT_DEFAULT, false /*allowToCreate*/, true /*matchAddress*/);
         if (devDesc == nullptr || (predicate != nullptr && !predicate(devices[i].mType))) {
-            ALOGE("%s: device type %#x address %s not supported or not match predicate",
+            ALOGE("%s: device type %#x address %s not supported or not an output device",
                     context, devices[i].mType, devices[i].getAddress());
             return false;
         }
@@ -3223,72 +3223,6 @@
     return mEngine->getDevicesForRoleAndStrategy(strategy, role, devices);
 }
 
-status_t AudioPolicyManager::setDevicesRoleForCapturePreset(
-        audio_source_t audioSource, device_role_t role, const AudioDeviceTypeAddrVector &devices) {
-    ALOGV("%s() audioSource=%d role=%d %s", __func__, audioSource, role,
-            dumpAudioDeviceTypeAddrVector(devices).c_str());
-
-    if (!areAllDevicesSupported(devices, audio_is_input_device, __func__)) {
-        return BAD_VALUE;
-    }
-    status_t status = mEngine->setDevicesRoleForCapturePreset(audioSource, role, devices);
-    ALOGW_IF(status != NO_ERROR,
-            "Engine could not set preferred devices %s for audio source %d role %d",
-            dumpAudioDeviceTypeAddrVector(devices).c_str(), audioSource, role);
-
-    return status;
-}
-
-status_t AudioPolicyManager::addDevicesRoleForCapturePreset(
-        audio_source_t audioSource, device_role_t role, const AudioDeviceTypeAddrVector &devices) {
-    ALOGV("%s() audioSource=%d role=%d %s", __func__, audioSource, role,
-            dumpAudioDeviceTypeAddrVector(devices).c_str());
-
-    if (!areAllDevicesSupported(devices, audio_is_input_device, __func__)) {
-        return BAD_VALUE;
-    }
-    status_t status = mEngine->addDevicesRoleForCapturePreset(audioSource, role, devices);
-    ALOGW_IF(status != NO_ERROR,
-            "Engine could not add preferred devices %s for audio source %d role %d",
-            dumpAudioDeviceTypeAddrVector(devices).c_str(), audioSource, role);
-
-    return status;
-}
-
-status_t AudioPolicyManager::removeDevicesRoleForCapturePreset(
-        audio_source_t audioSource, device_role_t role, const AudioDeviceTypeAddrVector& devices)
-{
-    ALOGV("%s() audioSource=%d role=%d devices=%s", __func__, audioSource, role,
-            dumpAudioDeviceTypeAddrVector(devices).c_str());
-
-    if (!areAllDevicesSupported(devices, audio_is_input_device, __func__)) {
-        return BAD_VALUE;
-    }
-
-    status_t status = mEngine->removeDevicesRoleForCapturePreset(
-            audioSource, role, devices);
-    ALOGW_IF(status != NO_ERROR,
-            "Engine could not remove devices role (%d) for capture preset %d", role, audioSource);
-
-    return status;
-}
-
-status_t AudioPolicyManager::clearDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                              device_role_t role) {
-    ALOGV("%s() audioSource=%d role=%d", __func__, audioSource, role);
-
-    status_t status = mEngine->clearDevicesRoleForCapturePreset(audioSource, role);
-    ALOGW_IF(status != NO_ERROR,
-            "Engine could not clear devices role (%d) for capture preset %d", role, audioSource);
-
-    return status;
-}
-
-status_t AudioPolicyManager::getDevicesForRoleAndCapturePreset(
-        audio_source_t audioSource, device_role_t role, AudioDeviceTypeAddrVector &devices) {
-    return mEngine->getDevicesForRoleAndCapturePreset(audioSource, role, devices);
-}
-
 status_t AudioPolicyManager::setUserIdDeviceAffinities(int userId,
         const AudioDeviceTypeAddrVector& devices) {
     ALOGI("%s() userId=%d num devices %zu", __func__, userId, devices.size());
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h
index 217013f..11077f1 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.h
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h
@@ -281,25 +281,6 @@
                                                       device_role_t role,
                                                       AudioDeviceTypeAddrVector &devices);
 
-        virtual status_t setDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                        device_role_t role,
-                                                        const AudioDeviceTypeAddrVector &devices);
-
-        virtual status_t addDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                        device_role_t role,
-                                                        const AudioDeviceTypeAddrVector &devices);
-
-        virtual status_t removeDevicesRoleForCapturePreset(
-                audio_source_t audioSource, device_role_t role,
-                const AudioDeviceTypeAddrVector& devices);
-
-        virtual status_t clearDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                          device_role_t role);
-
-        virtual status_t getDevicesForRoleAndCapturePreset(audio_source_t audioSource,
-                                                           device_role_t role,
-                                                           AudioDeviceTypeAddrVector &devices);
-
         virtual status_t startAudioSource(const struct audio_port_config *source,
                                           const audio_attributes_t *attributes,
                                           audio_port_handle_t *portId,
diff --git a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
index 14e5236..7d1ad63 100644
--- a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
+++ b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
@@ -1534,55 +1534,4 @@
     return NO_ERROR;
 }
 
-status_t AudioPolicyService::setDevicesRoleForCapturePreset(
-        audio_source_t audioSource, device_role_t role, const AudioDeviceTypeAddrVector &devices)
-{
-    if (mAudioPolicyManager == nullptr) {
-        return NO_INIT;
-    }
-    Mutex::Autolock _l(mLock);
-    return mAudioPolicyManager->setDevicesRoleForCapturePreset(audioSource, role, devices);
-}
-
-status_t AudioPolicyService::addDevicesRoleForCapturePreset(
-        audio_source_t audioSource, device_role_t role, const AudioDeviceTypeAddrVector &devices)
-{
-    if (mAudioPolicyManager == nullptr) {
-        return NO_INIT;
-    }
-    Mutex::Autolock _l(mLock);
-    return mAudioPolicyManager->addDevicesRoleForCapturePreset(audioSource, role, devices);
-}
-
-status_t AudioPolicyService::removeDevicesRoleForCapturePreset(
-        audio_source_t audioSource, device_role_t role, const AudioDeviceTypeAddrVector& devices)
-{
-    if (mAudioPolicyManager == nullptr) {
-        return NO_INIT;
-    }
-    Mutex::Autolock _l(mLock);
-    return mAudioPolicyManager->removeDevicesRoleForCapturePreset(audioSource, role, devices);
-}
-
-status_t AudioPolicyService::clearDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                              device_role_t role)
-{
-    if (mAudioPolicyManager == nullptr) {
-        return NO_INIT;
-    }
-    Mutex::Autolock _l(mLock);
-    return mAudioPolicyManager->clearDevicesRoleForCapturePreset(audioSource, role);
-}
-
-status_t AudioPolicyService::getDevicesForRoleAndCapturePreset(audio_source_t audioSource,
-                                                               device_role_t role,
-                                                               AudioDeviceTypeAddrVector &devices)
-{
-    if (mAudioPolicyManager == nullptr) {
-        return NO_INIT;
-    }
-    Mutex::Autolock _l(mLock);
-    return mAudioPolicyManager->getDevicesForRoleAndCapturePreset(audioSource, role, devices);
-}
-
 } // namespace android
diff --git a/services/audiopolicy/service/AudioPolicyService.h b/services/audiopolicy/service/AudioPolicyService.h
index 0b218c2..a851863 100644
--- a/services/audiopolicy/service/AudioPolicyService.h
+++ b/services/audiopolicy/service/AudioPolicyService.h
@@ -240,25 +240,6 @@
                                                   device_role_t role,
                                                   AudioDeviceTypeAddrVector &devices);
 
-    virtual status_t setDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                    device_role_t role,
-                                                    const AudioDeviceTypeAddrVector &devices);
-
-    virtual status_t addDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                    device_role_t role,
-                                                    const AudioDeviceTypeAddrVector &devices);
-
-    virtual status_t removeDevicesRoleForCapturePreset(
-            audio_source_t audioSource, device_role_t role,
-            const AudioDeviceTypeAddrVector& devices);
-
-    virtual status_t clearDevicesRoleForCapturePreset(audio_source_t audioSource,
-                                                      device_role_t role);
-
-    virtual status_t getDevicesForRoleAndCapturePreset(audio_source_t audioSource,
-                                                       device_role_t role,
-                                                       AudioDeviceTypeAddrVector &devices);
-
     virtual status_t setUserIdDeviceAffinities(int userId,
             const AudioDeviceTypeAddrVector& devices);
 
diff --git a/services/audiopolicy/tests/Android.bp b/services/audiopolicy/tests/Android.bp
index ca03e1f..efdb241 100644
--- a/services/audiopolicy/tests/Android.bp
+++ b/services/audiopolicy/tests/Android.bp
@@ -18,10 +18,7 @@
         "libxml2",
     ],
 
-    static_libs: [
-        "libaudiopolicycomponents",
-        "libgmock"
-    ],
+    static_libs: ["libaudiopolicycomponents"],
 
     header_libs: [
         "libaudiopolicycommon",
diff --git a/services/audiopolicy/tests/audiopolicymanager_tests.cpp b/services/audiopolicy/tests/audiopolicymanager_tests.cpp
index ed9ec8c..a0074bc 100644
--- a/services/audiopolicy/tests/audiopolicymanager_tests.cpp
+++ b/services/audiopolicy/tests/audiopolicymanager_tests.cpp
@@ -20,7 +20,6 @@
 #include <unistd.h>
 
 #include <gtest/gtest.h>
-#include <gmock/gmock.h>
 
 #define LOG_TAG "APM_Test"
 #include <Serializer.h>
@@ -37,7 +36,6 @@
 #include "AudioPolicyTestManager.h"
 
 using namespace android;
-using testing::UnorderedElementsAre;
 
 TEST(AudioPolicyManagerTestInit, EngineFailure) {
     AudioPolicyTestClient client;
@@ -1190,109 +1188,3 @@
     EXPECT_GT(mClient->getAudioPortListUpdateCount(), prevAudioPortListUpdateCount);
     EXPECT_GT(mManager->getAudioPortGeneration(), prevAudioPortGeneration);
 }
-
-using DevicesRoleForCapturePresetParam = std::tuple<audio_source_t, device_role_t>;
-
-class AudioPolicyManagerDevicesRoleForCapturePresetTest
-        : public AudioPolicyManagerTestWithConfigurationFile,
-          public testing::WithParamInterface<DevicesRoleForCapturePresetParam> {
-protected:
-    // The `inputDevice` and `inputDevice2` indicate the audio devices type to be used for setting
-    // device role. They must be declared in the test_audio_policy_configuration.xml
-    AudioDeviceTypeAddr inputDevice = AudioDeviceTypeAddr(AUDIO_DEVICE_IN_BUILTIN_MIC, "");
-    AudioDeviceTypeAddr inputDevice2 = AudioDeviceTypeAddr(AUDIO_DEVICE_IN_HDMI, "");
-};
-
-TEST_P(AudioPolicyManagerDevicesRoleForCapturePresetTest, DevicesRoleForCapturePreset) {
-    const audio_source_t audioSource = std::get<0>(GetParam());
-    const device_role_t role = std::get<1>(GetParam());
-
-    // Test invalid device when setting
-    const AudioDeviceTypeAddr outputDevice(AUDIO_DEVICE_OUT_SPEAKER, "");
-    const AudioDeviceTypeAddrVector outputDevices = {outputDevice};
-    ASSERT_EQ(BAD_VALUE,
-              mManager->setDevicesRoleForCapturePreset(audioSource, role, outputDevices));
-    ASSERT_EQ(BAD_VALUE,
-              mManager->addDevicesRoleForCapturePreset(audioSource, role, outputDevices));
-    AudioDeviceTypeAddrVector devices;
-    ASSERT_EQ(NAME_NOT_FOUND,
-              mManager->getDevicesForRoleAndCapturePreset(audioSource, role, devices));
-    ASSERT_TRUE(devices.empty());
-    ASSERT_EQ(BAD_VALUE,
-              mManager->removeDevicesRoleForCapturePreset(audioSource, role, outputDevices));
-
-    // Without setting, call get/remove/clear must fail
-    ASSERT_EQ(NAME_NOT_FOUND,
-              mManager->getDevicesForRoleAndCapturePreset(audioSource, role, devices));
-    ASSERT_EQ(NAME_NOT_FOUND,
-              mManager->removeDevicesRoleForCapturePreset(audioSource, role, devices));
-    ASSERT_EQ(NAME_NOT_FOUND,
-              mManager->clearDevicesRoleForCapturePreset(audioSource, role));
-
-    // Test set/get devices role
-    const AudioDeviceTypeAddrVector inputDevices = {inputDevice};
-    ASSERT_EQ(NO_ERROR,
-              mManager->setDevicesRoleForCapturePreset(audioSource, role, inputDevices));
-    ASSERT_EQ(NO_ERROR, mManager->getDevicesForRoleAndCapturePreset(audioSource, role, devices));
-    EXPECT_THAT(devices, UnorderedElementsAre(inputDevice));
-
-    // Test setting will change the previously set devices
-    const AudioDeviceTypeAddrVector inputDevices2 = {inputDevice2};
-    ASSERT_EQ(NO_ERROR,
-              mManager->setDevicesRoleForCapturePreset(audioSource, role, inputDevices2));
-    devices.clear();
-    ASSERT_EQ(NO_ERROR, mManager->getDevicesForRoleAndCapturePreset(audioSource, role, devices));
-    EXPECT_THAT(devices, UnorderedElementsAre(inputDevice2));
-
-    // Test add devices
-    ASSERT_EQ(NO_ERROR,
-              mManager->addDevicesRoleForCapturePreset(audioSource, role, inputDevices));
-    devices.clear();
-    ASSERT_EQ(NO_ERROR, mManager->getDevicesForRoleAndCapturePreset(audioSource, role, devices));
-    EXPECT_THAT(devices, UnorderedElementsAre(inputDevice, inputDevice2));
-
-    // Test remove devices
-    ASSERT_EQ(NO_ERROR,
-              mManager->removeDevicesRoleForCapturePreset(audioSource, role, inputDevices));
-    devices.clear();
-    ASSERT_EQ(NO_ERROR, mManager->getDevicesForRoleAndCapturePreset(audioSource, role, devices));
-    EXPECT_THAT(devices, UnorderedElementsAre(inputDevice2));
-
-    // Test remove devices that are not set as the device role
-    ASSERT_EQ(BAD_VALUE,
-              mManager->removeDevicesRoleForCapturePreset(audioSource, role, inputDevices));
-
-    // Test clear devices
-    ASSERT_EQ(NO_ERROR,
-              mManager->clearDevicesRoleForCapturePreset(audioSource, role));
-    devices.clear();
-    ASSERT_EQ(NAME_NOT_FOUND,
-              mManager->getDevicesForRoleAndCapturePreset(audioSource, role, devices));
-}
-
-INSTANTIATE_TEST_CASE_P(
-        DevicesRoleForCapturePresetOperation,
-        AudioPolicyManagerDevicesRoleForCapturePresetTest,
-        testing::Values(
-                DevicesRoleForCapturePresetParam({AUDIO_SOURCE_MIC, DEVICE_ROLE_PREFERRED}),
-                DevicesRoleForCapturePresetParam({AUDIO_SOURCE_VOICE_UPLINK,
-                                                  DEVICE_ROLE_PREFERRED}),
-                DevicesRoleForCapturePresetParam({AUDIO_SOURCE_VOICE_DOWNLINK,
-                                                  DEVICE_ROLE_PREFERRED}),
-                DevicesRoleForCapturePresetParam({AUDIO_SOURCE_VOICE_CALL, DEVICE_ROLE_PREFERRED}),
-                DevicesRoleForCapturePresetParam({AUDIO_SOURCE_CAMCORDER, DEVICE_ROLE_PREFERRED}),
-                DevicesRoleForCapturePresetParam({AUDIO_SOURCE_VOICE_RECOGNITION,
-                                                  DEVICE_ROLE_PREFERRED}),
-                DevicesRoleForCapturePresetParam({AUDIO_SOURCE_VOICE_COMMUNICATION,
-                                                  DEVICE_ROLE_PREFERRED}),
-                DevicesRoleForCapturePresetParam({AUDIO_SOURCE_REMOTE_SUBMIX,
-                                                  DEVICE_ROLE_PREFERRED}),
-                DevicesRoleForCapturePresetParam({AUDIO_SOURCE_UNPROCESSED, DEVICE_ROLE_PREFERRED}),
-                DevicesRoleForCapturePresetParam({AUDIO_SOURCE_VOICE_PERFORMANCE,
-                                                  DEVICE_ROLE_PREFERRED}),
-                DevicesRoleForCapturePresetParam({AUDIO_SOURCE_ECHO_REFERENCE,
-                                                  DEVICE_ROLE_PREFERRED}),
-                DevicesRoleForCapturePresetParam({AUDIO_SOURCE_FM_TUNER, DEVICE_ROLE_PREFERRED}),
-                DevicesRoleForCapturePresetParam({AUDIO_SOURCE_HOTWORD, DEVICE_ROLE_PREFERRED})
-                )
-        );