Merge changes Ia7b57ed5,I7e37a289,I1149f37f
* changes:
Return correct value for virtualizer speaker angle getter
Write unity gain back with successful EFFECT_CMD_SET_VOLUME handling
Add isProxy in effect AIDL conversion helper constructor
diff --git a/media/libaudioprocessing/AudioMixerBase.cpp b/media/libaudioprocessing/AudioMixerBase.cpp
index f30eb54..3c34caa 100644
--- a/media/libaudioprocessing/AudioMixerBase.cpp
+++ b/media/libaudioprocessing/AudioMixerBase.cpp
@@ -453,9 +453,9 @@
&track->mVolume[param - VOLUME0],
&track->mPrevVolume[param - VOLUME0],
&track->mVolumeInc[param - VOLUME0])) {
- ALOGV("setParameter(%s, VOLUME%d: %04x)",
- target == VOLUME ? "VOLUME" : "RAMP_VOLUME", param - VOLUME0,
- track->volume[param - VOLUME0]);
+ ALOGV("setParameter(%s, VOLUME%d: %f)",
+ target == VOLUME ? "VOLUME" : "RAMP_VOLUME", param - VOLUME0,
+ track->mVolume[param - VOLUME0]);
invalidate();
}
} else {
@@ -630,7 +630,7 @@
if (t->volumeInc[0]|t->volumeInc[1]) {
volumeRamp = true;
- } else if (!t->doesResample() && t->volumeRL == 0) {
+ } else if (!t->doesResample() && t->isVolumeMuted()) {
n |= NEEDS_MUTE;
}
t->needs = n;
@@ -730,7 +730,7 @@
for (const int name : mEnabled) {
const std::shared_ptr<TrackBase> &t = mTracks[name];
- if (!t->doesResample() && t->volumeRL == 0) {
+ if (!t->doesResample() && t->isVolumeMuted()) {
t->needs |= NEEDS_MUTE;
t->hook = &TrackBase::track__nop;
} else {
diff --git a/media/libaudioprocessing/include/media/AudioMixerBase.h b/media/libaudioprocessing/include/media/AudioMixerBase.h
index 3419816..0d82255 100644
--- a/media/libaudioprocessing/include/media/AudioMixerBase.h
+++ b/media/libaudioprocessing/include/media/AudioMixerBase.h
@@ -290,6 +290,16 @@
audio_channel_mask_t mMixerChannelMask;
uint32_t mMixerChannelCount;
+ // consider volume muted only if all channel volume (floating point) is 0.f
+ inline bool isVolumeMuted() const {
+ for (const auto volume : mVolume) {
+ if (volume != 0) {
+ return false;
+ }
+ }
+ return true;
+ }
+
protected:
// hooks