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

Commit dff774af authored by Eric Laurent's avatar Eric Laurent
Browse files

audioflinger: improve mmap stream volume

First try to use HW volume control and then fall back
to volume control in AAudio service.

Bug: 37518243
Test: play a sound and check AAudio volume  callback is called
when pressing volume  keys.

Change-Id: Ie18be9f553ae23c247974d8923e7dcddeb1047c8
parent 6534425f
Loading
Loading
Loading
Loading
+16 −14
Original line number Diff line number Diff line
@@ -8296,9 +8296,8 @@ void AudioFlinger::MmapPlaybackThread::processVolume_l()
            mEffectChains[0]->setVolume_l(&vol, &vol);
            volume = (float)vol / (1 << 24);
        }

        mOutput->stream->setVolume(volume, volume);

        // Try to use HW volume control and fall back to SW control if not implemented
        if (mOutput->stream->setVolume(volume, volume) != NO_ERROR) {
            sp<MmapStreamCallback> callback = mCallback.promote();
            if (callback != 0) {
                int channelCount;
@@ -8312,6 +8311,9 @@ void AudioFlinger::MmapPlaybackThread::processVolume_l()
                    values.add(volume);
                }
                callback->onVolumeChanged(mChannelMask, values);
            } else {
                ALOGW("Could not set MMAP stream volume: no volume callback!");
            }
        }
    }
}