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

Commit b1f6e640 authored by Jean-Michel Trivi's avatar Jean-Michel Trivi
Browse files

APM clear AS routing cache on output activity with preferred device

Since playback of output tracks affects routing (and volume
management), AudioService's routing cache must be cleared when
there is activity around outputs associated with tracks with a
preferred device.

Bug: 267412093
Test: dock/undock

Change-Id: I93a340956216bbeafda4dd98813cc91bd4fad1a5
parent b9c410ca
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -2132,6 +2132,10 @@ status_t AudioPolicyManager::startOutput(audio_port_handle_t portId)
        }
    }

    if (client->hasPreferredDevice()) {
        // playback activity with preferred device impacts routing occurred, inform upper layers
        mpClientInterface->onRoutingUpdated();
    }
    if (delayMs != 0) {
        usleep(delayMs * 1000);
    }
@@ -2392,6 +2396,11 @@ status_t AudioPolicyManager::stopOutput(audio_port_handle_t portId)
    }
    sp<TrackClientDescriptor> client = outputDesc->getClient(portId);

    if (client->hasPreferredDevice(true)) {
        // playback activity with preferred device impacts routing occurred, inform upper layers
        mpClientInterface->onRoutingUpdated();
    }

    ALOGV("stopOutput() output %d, stream %d, session %d",
          outputDesc->mIoHandle, client->stream(), client->session());