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

Commit b3d326de authored by Eric Laurent's avatar Eric Laurent Committed by Steve Kondik
Browse files

DO NOT MERGE - audio policy: fix output device command after clearing audio patch

Make sure that a valid audio patch is created again on an output stream
following the disconnection and reconnection of the same output device.

Bug: 18144611.
Change-Id: I72387ad8e93f8fb2571da2a6c58a6e167ac7fc4d
parent ebfaafc6
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -5159,11 +5159,15 @@ uint32_t AudioPolicyManager::setOutputDevice(audio_io_handle_t output,
    muteWaitMs = checkDeviceMuteStrategies(outputDesc, prevDevice, delayMs);

    // Do not change the routing if:
    //  - the requested device is AUDIO_DEVICE_NONE
    //  - the requested device is the same as current device and force is not specified.
    //      the requested device is AUDIO_DEVICE_NONE
    //      OR the requested device is the same as current device
    //  AND force is not specified
    //  AND the output is connected by a valid audio patch.
    // Doing this check here allows the caller to call setOutputDevice() without conditions
    if ((device == AUDIO_DEVICE_NONE || device == prevDevice) && !force) {
        ALOGV("setOutputDevice() setting same device %04x or null device for output %d", device, output);
    if ((device == AUDIO_DEVICE_NONE || device == prevDevice) && !force &&
            outputDesc->mPatchHandle != 0) {
        ALOGV("setOutputDevice() setting same device %04x or null device for output %d",
              device, output);
        return muteWaitMs;
    }