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

Commit 61c0d67b authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "libaudiohal@aidl: update dynamic mix port when disconnecting device."...

Merge "libaudiohal@aidl: update dynamic mix port when disconnecting device." into main am: 19420515

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



Change-Id: Iccf1d3f576adde85c4b6182c126badae6f979f8d
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents ae26159a 19420515
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -247,6 +247,7 @@ void Hal2AidlMapper::eraseConnectedPort(int32_t portId) {
        ALOGD("%s: disconnected port replacement: %s", __func__, port.toString().c_str());
        mDisconnectedPortReplacement = std::pair<int32_t, AudioPort>();
    }
    updateDynamicMixPorts();
}

status_t Hal2AidlMapper::findOrCreatePatch(
@@ -1002,6 +1003,9 @@ status_t Hal2AidlMapper::updateAudioPort(int32_t portId, AudioPort* port) {
    if (status == OK) {
        auto portIt = mPorts.find(portId);
        if (portIt != mPorts.end()) {
            if (port->ext.getTag() == AudioPortExt::Tag::mix && portIt->second != *port) {
                mDynamicMixPortIds.insert(portId);
            }
            portIt->second = *port;
        } else {
            ALOGW("%s, port(%d) returned successfully from the HAL but not it is not cached",
@@ -1050,4 +1054,15 @@ status_t Hal2AidlMapper::updateRoutes() {
    return OK;
}

void Hal2AidlMapper::updateDynamicMixPorts() {
    for (int32_t portId : mDynamicMixPortIds) {
        if (auto it = mPorts.find(portId); it != mPorts.end()) {
            updateAudioPort(portId, &it->second);
        } else {
            // This must not happen
            ALOGE("%s, cannot find port for id=%d", __func__, portId);
        }
    }
}

} // namespace android
+2 −0
Original line number Diff line number Diff line
@@ -185,6 +185,7 @@ class Hal2AidlMapper {
    status_t updateAudioPort(
            int32_t portId, ::aidl::android::media::audio::common::AudioPort* port);
    status_t updateRoutes();
    void updateDynamicMixPorts();

    Ports mPorts;
    // Remote submix "template" ports (no address specified, no profiles).
@@ -202,6 +203,7 @@ class Hal2AidlMapper {
    ConnectedPorts mConnectedPorts;
    std::pair<int32_t, ::aidl::android::media::audio::common::AudioPort>
            mDisconnectedPortReplacement;
    std::set<int32_t> mDynamicMixPortIds;
};

}  // namespace android