policy-hal: extend getDeviceForStrategy for WFD use-cases
Need to extend getDeviceForStrategy function in
custom audio policy so that WFD use-case selects
proxy for needed strategies.
Change-Id: Ib5ca3d70eaeeecfa78529b939674d766388b133e
diff --git a/policy_hal/AudioPolicyManager.cpp b/policy_hal/AudioPolicyManager.cpp
index 39386bb..1f961cb 100644
--- a/policy_hal/AudioPolicyManager.cpp
+++ b/policy_hal/AudioPolicyManager.cpp
@@ -1684,6 +1684,33 @@
return status;
}
+audio_devices_t AudioPolicyManagerCustom::getDeviceForStrategy(routing_strategy strategy, bool fromCache)
+{
+ audio_devices_t availableOutputDeviceTypes = mAvailableOutputDevices.types();
+ audio_devices_t device = AUDIO_DEVICE_NONE;
+ switch (strategy) {
+ case STRATEGY_SONIFICATION:
+ case STRATEGY_ENFORCED_AUDIBLE:
+ case STRATEGY_ACCESSIBILITY:
+ case STRATEGY_REROUTING:
+ case STRATEGY_MEDIA:
+ if (strategy != STRATEGY_SONIFICATION){
+ // no sonification on WFD sink
+ device |= availableOutputDeviceTypes & AUDIO_DEVICE_OUT_PROXY;
+ if (device != AUDIO_DEVICE_NONE) {
+ ALOGV("Found proxy for strategy %d", strategy);
+ return device;
+ }
+ }
+ break;
+ default:
+ ALOGV("getDeviceForStrategy() unknown strategy: %d", strategy);
+ break;
+ }
+ device = AudioPolicyManager::getDeviceForStrategy(strategy, fromCache);
+ return device;
+}
+
AudioPolicyManagerCustom::AudioPolicyManagerCustom(AudioPolicyClientInterface *clientInterface)
: AudioPolicyManager(clientInterface)
{