Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 21777f87 authored by Eric Laurent's avatar Eric Laurent
Browse files

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
parent 42afea26
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
};

+7 −0
Original line number Diff line number Diff line
@@ -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",
+5 −0
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ static const std::vector<legacy_strategy_map> 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;
+1 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ enum legacy_strategy {
    STRATEGY_TRANSMITTED_THROUGH_SPEAKER,
    STRATEGY_ACCESSIBILITY,
    STRATEGY_REROUTING,
    STRATEGY_CALL_ASSISTANT,
};

class Engine : public EngineBase
+1 −0
Original line number Diff line number Diff line
@@ -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;