diff options
| -rw-r--r-- | services/core/java/com/android/server/audio/AudioService.java | 9 |
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; } } |