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

Commit c17d5a14 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge changes Id104edb5,Ie12b72b2

* changes:
  Add unit test for handle device config change
  Fix passing of ExtraAudioDescriptors to audio HAL
parents 87384c50 9334a209
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -72,7 +72,7 @@ public:
    AudioProfileVector &getAudioProfiles() { return mProfiles; }
    AudioProfileVector &getAudioProfiles() { return mProfiles; }


    void setExtraAudioDescriptors(
    void setExtraAudioDescriptors(
            const std::vector<media::audio::common::ExtraAudioDescriptor> extraAudioDescriptors) {
            const std::vector<media::audio::common::ExtraAudioDescriptor>& extraAudioDescriptors) {
        mExtraAudioDescriptors = extraAudioDescriptors;
        mExtraAudioDescriptors = extraAudioDescriptors;
    }
    }
    std::vector<media::audio::common::ExtraAudioDescriptor> &getExtraAudioDescriptors() {
    std::vector<media::audio::common::ExtraAudioDescriptor> &getExtraAudioDescriptors() {
+7 −3
Original line number Original line Diff line number Diff line
@@ -140,8 +140,6 @@ void AudioPolicyManager::broadcastDeviceConnectionState(const sp<DeviceDescripto
status_t AudioPolicyManager::setDeviceConnectionStateInt(
status_t AudioPolicyManager::setDeviceConnectionStateInt(
        audio_policy_dev_state_t state, const android::media::audio::common::AudioPort& port,
        audio_policy_dev_state_t state, const android::media::audio::common::AudioPort& port,
        audio_format_t encodedFormat) {
        audio_format_t encodedFormat) {
    // TODO: b/211601178 Forward 'port' to Audio HAL via mHwModules. For now, only device_type,
    // device_address and device_name are forwarded.
    if (port.ext.getTag() != AudioPortExt::device) {
    if (port.ext.getTag() != AudioPortExt::device) {
        return BAD_VALUE;
        return BAD_VALUE;
    }
    }
@@ -160,7 +158,13 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(
    sp<DeviceDescriptor> device = mHwModules.getDeviceDescriptor(
    sp<DeviceDescriptor> device = mHwModules.getDeviceDescriptor(
            device_type, device_address.c_str(), device_name, encodedFormat,
            device_type, device_address.c_str(), device_name, encodedFormat,
            state == AUDIO_POLICY_DEVICE_STATE_AVAILABLE);
            state == AUDIO_POLICY_DEVICE_STATE_AVAILABLE);
    return device ? setDeviceConnectionStateInt(device, state) : INVALID_OPERATION;
    if (device == nullptr) {
        return INVALID_OPERATION;
    }
    if (state == AUDIO_POLICY_DEVICE_STATE_AVAILABLE) {
        device->setExtraAudioDescriptors(port.extraAudioDescriptors);
    }
    return setDeviceConnectionStateInt(device, state);
}
}


status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceType,
status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceType,
+2 −0
Original line number Original line Diff line number Diff line
@@ -30,6 +30,8 @@ cc_test {
    ],
    ],


    static_libs: [
    static_libs: [
        "android.media.audio.common.types-V1-cpp",
        "audioclient-types-aidl-cpp",
        "libaudiopolicycomponents",
        "libaudiopolicycomponents",
        "libgmock",
        "libgmock",
    ],
    ],
+32 −2
Original line number Original line Diff line number Diff line
@@ -103,8 +103,12 @@ public:
        ++mAudioPortListUpdateCount;
        ++mAudioPortListUpdateCount;
    }
    }


    status_t setDeviceConnectedState(
    status_t setDeviceConnectedState(const struct audio_port_v7 *port, bool connected) override {
            const struct audio_port_v7 *port __unused, bool connected __unused) override {
        if (connected) {
            mConnectedDevicePorts.push_back(*port);
        } else {
            mDisconnectedDevicePorts.push_back(*port);
        }
        return NO_ERROR;
        return NO_ERROR;
    }
    }


@@ -150,6 +154,30 @@ public:
        return NO_ERROR;
        return NO_ERROR;
    }
    }


    size_t getConnectedDevicePortCount() const {
        return mConnectedDevicePorts.size();
    }

    const struct audio_port_v7 *getLastConnectedDevicePort() const {
        if (mConnectedDevicePorts.empty()) {
            return nullptr;
        }
        auto it = --mConnectedDevicePorts.end();
        return &(*it);
    }

    size_t getDisconnectedDevicePortCount() const {
        return mDisconnectedDevicePorts.size();
    }

    const struct audio_port_v7 *getLastDisconnectedDevicePort() const {
        if (mDisconnectedDevicePorts.empty()) {
            return nullptr;
        }
        auto it = --mDisconnectedDevicePorts.end();
        return &(*it);
    }

private:
private:
    audio_module_handle_t mNextModuleHandle = AUDIO_MODULE_HANDLE_NONE + 1;
    audio_module_handle_t mNextModuleHandle = AUDIO_MODULE_HANDLE_NONE + 1;
    audio_io_handle_t mNextIoHandle = AUDIO_IO_HANDLE_NONE + 1;
    audio_io_handle_t mNextIoHandle = AUDIO_IO_HANDLE_NONE + 1;
@@ -158,6 +186,8 @@ private:
    std::set<std::string> mAllowedModuleNames;
    std::set<std::string> mAllowedModuleNames;
    size_t mAudioPortListUpdateCount = 0;
    size_t mAudioPortListUpdateCount = 0;
    size_t mRoutingUpdatedUpdateCount = 0;
    size_t mRoutingUpdatedUpdateCount = 0;
    std::vector<struct audio_port_v7> mConnectedDevicePorts;
    std::vector<struct audio_port_v7> mDisconnectedDevicePorts;
};
};


} // namespace android
} // namespace android
+1 −0
Original line number Original line Diff line number Diff line
@@ -37,6 +37,7 @@ class AudioPolicyTestManager : public AudioPolicyManager {
    using AudioPolicyManager::getDirectProfilesForAttributes;
    using AudioPolicyManager::getDirectProfilesForAttributes;
    using AudioPolicyManager::setDeviceConnectionState;
    using AudioPolicyManager::setDeviceConnectionState;
    using AudioPolicyManager::deviceToAudioPort;
    using AudioPolicyManager::deviceToAudioPort;
    using AudioPolicyManager::handleDeviceConfigChange;
    uint32_t getAudioPortGeneration() const { return mAudioPortGeneration; }
    uint32_t getAudioPortGeneration() const { return mAudioPortGeneration; }
};
};


Loading