Merge "audioservice: fix hasMediaDynamicPolicy() for loopback and render policies" into qt-r1-dev

This commit is contained in:
Eric Laurent
2019-07-15 15:18:46 +00:00
committed by Android (Google) Code Review

View File

@@ -5577,6 +5577,7 @@ public class AudioService extends IAudioService.Stub
/** /**
* @return true if there is currently a registered dynamic mixing policy that affects media * @return true if there is currently a registered dynamic mixing policy that affects media
* and is not a render + loopback policy
*/ */
/*package*/ boolean hasMediaDynamicPolicy() { /*package*/ boolean hasMediaDynamicPolicy() {
synchronized (mAudioPolicies) { synchronized (mAudioPolicies) {
@@ -5585,7 +5586,8 @@ public class AudioService extends IAudioService.Stub
} }
final Collection<AudioPolicyProxy> appColl = mAudioPolicies.values(); final Collection<AudioPolicyProxy> appColl = mAudioPolicies.values();
for (AudioPolicyProxy app : appColl) { for (AudioPolicyProxy app : appColl) {
if (app.hasMixAffectingUsage(AudioAttributes.USAGE_MEDIA)) { if (app.hasMixAffectingUsage(AudioAttributes.USAGE_MEDIA,
AudioMix.ROUTE_FLAG_LOOP_BACK_RENDER)) {
return true; return true;
} }
} }
@@ -7348,9 +7350,10 @@ public class AudioService extends IAudioService.Stub
Binder.restoreCallingIdentity(identity); Binder.restoreCallingIdentity(identity);
} }
boolean hasMixAffectingUsage(int usage) { boolean hasMixAffectingUsage(int usage, int excludedFlags) {
for (AudioMix mix : mMixes) { for (AudioMix mix : mMixes) {
if (mix.isAffectingUsage(usage)) { if (mix.isAffectingUsage(usage)
&& ((mix.getRouteFlags() & excludedFlags) != excludedFlags)) {
return true; return true;
} }
} }