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

Commit e6cbccae authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Refactor audio device type in audio flinger."

parents 484d6119 c52b1ffe
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -50,6 +50,10 @@ const DeviceTypeSet& getAudioDeviceInAllSet() {
}

bool deviceTypesToString(const DeviceTypeSet &deviceTypes, std::string &str) {
    if (deviceTypes.empty()) {
        str = "Empty device types";
        return true;
    }
    bool ret = true;
    for (auto it = deviceTypes.begin(); it != deviceTypes.end();) {
        std::string deviceTypeStr;
@@ -83,4 +87,10 @@ std::string dumpDeviceTypes(const DeviceTypeSet &deviceTypes) {
    return ret;
}

std::string toString(const DeviceTypeSet& deviceTypes) {
    std::string ret;
    deviceTypesToString(deviceTypes, ret);
    return ret;
}

} // namespace android
+14 −0
Original line number Diff line number Diff line
@@ -26,6 +26,11 @@ bool AudioDeviceTypeAddr::equals(const AudioDeviceTypeAddr& other) const {
    return mType == other.mType && mAddress == other.mAddress;
}

void AudioDeviceTypeAddr::reset() {
    mType = AUDIO_DEVICE_NONE;
    mAddress = "";
}

status_t AudioDeviceTypeAddr::readFromParcel(const Parcel *parcel) {
    status_t status;
    if ((status = parcel->readUint32(&mType)) != NO_ERROR) return status;
@@ -40,4 +45,13 @@ status_t AudioDeviceTypeAddr::writeToParcel(Parcel *parcel) const {
    return status;
}


DeviceTypeSet getAudioDeviceTypes(const AudioDeviceTypeAddrVector& deviceTypeAddrs) {
    DeviceTypeSet deviceTypes;
    for (const auto& deviceTypeAddr : deviceTypeAddrs) {
        deviceTypes.insert(deviceTypeAddr.mType);
    }
    return deviceTypes;
}

}
 No newline at end of file
+21 −0
Original line number Diff line number Diff line
@@ -147,4 +147,25 @@ status_t DeviceDescriptorBase::readFromParcel(const Parcel *parcel)
    return status;
}

std::string toString(const DeviceDescriptorBaseVector& devices)
{
    std::string ret;
    for (const auto& device : devices) {
        if (device != *devices.begin()) {
            ret += ";";
        }
        ret += device->toString();
    }
    return ret;
}

AudioDeviceTypeAddrVector deviceTypeAddrsFromDescriptors(const DeviceDescriptorBaseVector& devices)
{
    AudioDeviceTypeAddrVector deviceTypeAddrs;
    for (const auto& device : devices) {
        deviceTypeAddrs.push_back(device->getDeviceTypeAddr());
    }
    return deviceTypeAddrs;
}

} // namespace android
+5 −0
Original line number Diff line number Diff line
@@ -123,5 +123,10 @@ bool deviceTypesToString(const DeviceTypeSet& deviceTypes, std::string &str);

std::string dumpDeviceTypes(const DeviceTypeSet& deviceTypes);

/**
 * Return human readable string for device types.
 */
std::string toString(const DeviceTypeSet& deviceTypes);


} // namespace android
 No newline at end of file
+11 −0
Original line number Diff line number Diff line
@@ -17,9 +17,11 @@
#pragma once

#include <string>
#include <vector>

#include <binder/Parcelable.h>
#include <binder/Parcel.h>
#include <media/AudioContainers.h>
#include <system/audio.h>
#include <utils/Errors.h>

@@ -35,6 +37,8 @@ struct AudioDeviceTypeAddr : public Parcelable {

    bool equals(const AudioDeviceTypeAddr& other) const;

    void reset();

    status_t readFromParcel(const Parcel *parcel) override;

    status_t writeToParcel(Parcel *parcel) const override;
@@ -43,4 +47,11 @@ struct AudioDeviceTypeAddr : public Parcelable {
    std::string mAddress;
};

using AudioDeviceTypeAddrVector = std::vector<AudioDeviceTypeAddr>;

/**
 * Return a collection of audio device types from a collection of AudioDeviceTypeAddr
 */
DeviceTypeSet getAudioDeviceTypes(const AudioDeviceTypeAddrVector& deviceTypeAddrs);

}
Loading