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

Commit 8dbd241e authored by Jiabin Huang's avatar Jiabin Huang Committed by Android (Google) Code Review
Browse files

Merge "Revert "Support device role for capture preset.""

parents bf1d0a62 bcfb2ce2
Loading
Loading
Loading
Loading
+0 −53
Original line number Diff line number Diff line
@@ -1635,59 +1635,6 @@ status_t AudioSystem::getDevicesForRoleAndStrategy(product_strategy_t strategy,
    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:
+1 −165
Original line number Diff line number Diff line
@@ -119,11 +119,6 @@ enum {
    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 @@ public:
        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 @@ status_t BnAudioPolicyService::onTransact(
        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 @@ status_t BnAudioPolicyService::onTransact(
            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);
    }
+0 −16
Original line number Diff line number Diff line
@@ -433,22 +433,6 @@ public:
    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);

+0 −19
Original line number Diff line number Diff line
@@ -252,25 +252,6 @@ public:
                                                  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(
+0 −23
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@
#include <arpa/inet.h>
#include <iostream>
#include <regex>
#include <set>
#include <sstream>

namespace android {
@@ -81,14 +80,6 @@ bool AudioDeviceTypeAddr::operator<(const AudioDeviceTypeAddr& other) const {
    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 @@ DeviceTypeSet getAudioDeviceTypes(const AudioDeviceTypeAddrVector& deviceTypeAdd
    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;
Loading