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

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

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

parents 872aa059 255ff7f5
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