summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Eric Laurent <elaurent@google.com> 2019-07-15 15:18:46 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-07-15 15:18:46 +0000
commitaa8b8ecec25873f9882a8c49057f99cd2279dc60 (patch)
tree560c153e025cdd8a9b6f4b285d3228cbe901aa98
parentd5e7e0753ca91ad21502e33ac426134277a4c56d (diff)
parent6a3d2565c3b06d90048bee1cf8e1347f9494a77d (diff)
Merge "audioservice: fix hasMediaDynamicPolicy() for loopback and render policies" into qt-r1-dev
-rw-r--r--services/core/java/com/android/server/audio/AudioService.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 4b08db6be047..7e2dcae658af 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -5577,6 +5577,7 @@ public class AudioService extends IAudioService.Stub
/**
* @return true if there is currently a registered dynamic mixing policy that affects media
+ * and is not a render + loopback policy
*/
/*package*/ boolean hasMediaDynamicPolicy() {
synchronized (mAudioPolicies) {
@@ -5585,7 +5586,8 @@ public class AudioService extends IAudioService.Stub
}
final Collection<AudioPolicyProxy> appColl = mAudioPolicies.values();
for (AudioPolicyProxy app : appColl) {
- if (app.hasMixAffectingUsage(AudioAttributes.USAGE_MEDIA)) {
+ if (app.hasMixAffectingUsage(AudioAttributes.USAGE_MEDIA,
+ AudioMix.ROUTE_FLAG_LOOP_BACK_RENDER)) {
return true;
}
}
@@ -7348,9 +7350,10 @@ public class AudioService extends IAudioService.Stub
Binder.restoreCallingIdentity(identity);
}
- boolean hasMixAffectingUsage(int usage) {
+ boolean hasMixAffectingUsage(int usage, int excludedFlags) {
for (AudioMix mix : mMixes) {
- if (mix.isAffectingUsage(usage)) {
+ if (mix.isAffectingUsage(usage)
+ && ((mix.getRouteFlags() & excludedFlags) != excludedFlags)) {
return true;
}
}