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
* 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;
}
}