From 21777f87815a526e4376cf5621040ebbc5b02d05 Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Fri, 6 Dec 2019 18:12:06 -0800 Subject: [PATCH] audio: add call assistant usage Add audio usage for call assistant use cases. Used by apps playing over call uplink path for call screening or other in call assitant features. Add corresponding routing strategy in audio policy manager. The strategy reuses volume group "PATCH" as volume is fixed for call uplink audio. Bug: 135213843 Test: make Change-Id: Iad34c058e96fa5c969e825d3ddb0a82a60accc76 --- media/libmediahelper/TypeConverter.cpp | 1 + .../audiopolicy/engine/common/src/EngineDefaultConfig.h | 7 +++++++ services/audiopolicy/enginedefault/src/Engine.cpp | 5 +++++ services/audiopolicy/enginedefault/src/Engine.h | 1 + services/audiopolicy/managerdefault/AudioPolicyManager.cpp | 1 + 5 files changed, 15 insertions(+) diff --git a/media/libmediahelper/TypeConverter.cpp b/media/libmediahelper/TypeConverter.cpp index 6ea617272a..aa54b8273e 100644 --- a/media/libmediahelper/TypeConverter.cpp +++ b/media/libmediahelper/TypeConverter.cpp @@ -358,6 +358,7 @@ const UsageTypeConverter::Table UsageTypeConverter::mTable[] = { MAKE_STRING_FROM_ENUM(AUDIO_USAGE_GAME), MAKE_STRING_FROM_ENUM(AUDIO_USAGE_VIRTUAL_SOURCE), MAKE_STRING_FROM_ENUM(AUDIO_USAGE_ASSISTANT), + MAKE_STRING_FROM_ENUM(AUDIO_USAGE_CALL_ASSISTANT), TERMINATOR }; diff --git a/services/audiopolicy/engine/common/src/EngineDefaultConfig.h b/services/audiopolicy/engine/common/src/EngineDefaultConfig.h index fede0d93de..20c57ee70d 100644 --- a/services/audiopolicy/engine/common/src/EngineDefaultConfig.h +++ b/services/audiopolicy/engine/common/src/EngineDefaultConfig.h @@ -107,6 +107,13 @@ const engineConfig::ProductStrategies gOrderedStrategies = { } }, }, + {"STRATEGY_CALL_ASSISTANT", + { + {"", AUDIO_STREAM_PATCH, "AUDIO_STREAM_PATCH", + {{AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_CALL_ASSISTANT, AUDIO_SOURCE_DEFAULT, 0, ""}} + } + }, + }, {"STRATEGY_TRANSMITTED_THROUGH_SPEAKER", { {"", AUDIO_STREAM_TTS, "AUDIO_STREAM_TTS", diff --git a/services/audiopolicy/enginedefault/src/Engine.cpp b/services/audiopolicy/enginedefault/src/Engine.cpp index b34928d35f..a3fa974c9c 100755 --- a/services/audiopolicy/enginedefault/src/Engine.cpp +++ b/services/audiopolicy/enginedefault/src/Engine.cpp @@ -53,6 +53,7 @@ static const std::vector gLegacyStrategy = { { "STRATEGY_ACCESSIBILITY", STRATEGY_ACCESSIBILITY }, { "STRATEGY_REROUTING", STRATEGY_REROUTING }, { "STRATEGY_PATCH", STRATEGY_REROUTING }, // boiler to manage stream patch volume + { "STRATEGY_CALL_ASSISTANT", STRATEGY_CALL_ASSISTANT }, }; Engine::Engine() @@ -443,6 +444,10 @@ DeviceVector Engine::getDevicesForStrategyInt(legacy_strategy strategy, } } break; + case STRATEGY_CALL_ASSISTANT: + devices = availableOutputDevices.getDevicesFromType(AUDIO_DEVICE_OUT_TELEPHONY_TX); + break; + default: ALOGW("getDevicesForStrategy() unknown strategy: %d", strategy); break; diff --git a/services/audiopolicy/enginedefault/src/Engine.h b/services/audiopolicy/enginedefault/src/Engine.h index 4360c6fe66..bb9e2df3a4 100644 --- a/services/audiopolicy/enginedefault/src/Engine.h +++ b/services/audiopolicy/enginedefault/src/Engine.h @@ -39,6 +39,7 @@ enum legacy_strategy { STRATEGY_TRANSMITTED_THROUGH_SPEAKER, STRATEGY_ACCESSIBILITY, STRATEGY_REROUTING, + STRATEGY_CALL_ASSISTANT, }; class Engine : public EngineBase diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp index 2e3f2d84f6..9d80a1663d 100644 --- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp +++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp @@ -6113,6 +6113,7 @@ bool AudioPolicyManager::isValidAttributes(const audio_attributes_t *paa) case AUDIO_USAGE_GAME: case AUDIO_USAGE_VIRTUAL_SOURCE: case AUDIO_USAGE_ASSISTANT: + case AUDIO_USAGE_CALL_ASSISTANT: break; default: return false;