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;