summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy/managerdefault
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2015-06-18 00:24:45 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-18 00:24:46 +0000
commit3fc792fe36b0b9100f74185665221b37f650ff65 (patch)
tree114160a4b99b0b203d94f4fbc463d9dc12acf4d7 /services/audiopolicy/managerdefault
parent3ecc9db40b1fb9c7f807a5892e5c9625aac1fb06 (diff)
parent093a20cbe70d0033c085ef7be90b9f1bbacb3335 (diff)
downloadframeworks_av-3fc792fe36b0b9100f74185665221b37f650ff65.zip
frameworks_av-3fc792fe36b0b9100f74185665221b37f650ff65.tar.gz
frameworks_av-3fc792fe36b0b9100f74185665221b37f650ff65.tar.bz2
Merge "audio policy: fix explicit routing and accessibility" into mnc-dev
Diffstat (limited to 'services/audiopolicy/managerdefault')
-rw-r--r--services/audiopolicy/managerdefault/AudioPolicyManager.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index 6befb8d..deebc23 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -4069,7 +4069,14 @@ audio_devices_t AudioPolicyManager::getDeviceForStrategy(routing_strategy strate
for (size_t routeIndex = 0; routeIndex < mOutputRoutes.size(); routeIndex++) {
sp<SessionRoute> route = mOutputRoutes.valueAt(routeIndex);
routing_strategy strat = getStrategy(route->mStreamType);
- if (strat == strategy && route->isActive()) {
+ // Special case for accessibility strategy which must follow any strategy it is
+ // currently remapped to
+ bool strategyMatch = (strat == strategy) ||
+ ((strategy == STRATEGY_ACCESSIBILITY) &&
+ ((mEngine->getStrategyForUsage(
+ AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY) == strat) ||
+ (strat == STRATEGY_MEDIA)));
+ if (strategyMatch && route->isActive()) {
return route->mDeviceDescriptor->type();
}
}