From 093a20cbe70d0033c085ef7be90b9f1bbacb3335 Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Thu, 11 Jun 2015 12:33:29 -0700 Subject: audio policy: fix explicit routing and accessibility If a session has an active explicit routing request, this routing must also be applied to accessibility prompts if accessibility usage is currrently remapped to the strategy used by this session. Bug: 20873151. Change-Id: I97c6ece98cf1af9c64c2d2eb1fe382c7c0d657b4 --- services/audiopolicy/managerdefault/AudioPolicyManager.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'services/audiopolicy/managerdefault') diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp index 0adaac9..bded309 100644 --- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp +++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp @@ -4064,7 +4064,14 @@ audio_devices_t AudioPolicyManager::getDeviceForStrategy(routing_strategy strate for (size_t routeIndex = 0; routeIndex < mOutputRoutes.size(); routeIndex++) { sp 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(); } } -- cgit v1.1