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

Commit 29dc73f2 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "audio: capEngine: Allow built-in strategies to omit the 'id' attribute"...

Merge "audio: capEngine: Allow built-in strategies to omit the 'id' attribute" into main am: 6a34ae50 am: 9bded4b3

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/3455328



Change-Id: Ia0b7ad2092e52048cf934d3e43b68d5c18ca77cc
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 1bb1fb19 9bded4b3
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ static constexpr const char* gStreamsParameter = "streams";
static constexpr const char* gOutputDevicesParameter = "selected_output_devices";
static constexpr const char* gOutputDeviceAddressParameter = "device_address";
static constexpr const char* gStrategyPrefix = "vx_";
static constexpr const char* gLegacyStrategyPrefix = "STRATEGY_";
static constexpr const char* gLegacyOutputDevicePrefix = "AUDIO_DEVICE_OUT_";
static constexpr const char* gLegacyInputDevicePrefix = "AUDIO_DEVICE_IN_";
static constexpr const char* gLegacyStreamPrefix = "AUDIO_STREAM_";
@@ -159,6 +160,17 @@ ConversionResult<int> getAudioProductStrategyId(const std::string& path) {
            }
            return strategyId;
        }
        pos = stringToken.find(gLegacyStrategyPrefix);
        if (pos != std::string::npos) {
            std::string legacyStrategyIdLiteral = stringToken.substr(pos);
            const auto legacyStrategies = getLegacyProductStrategyMap();
            if (const auto& it = legacyStrategies.find(legacyStrategyIdLiteral);
                    it != legacyStrategies.end()) {
                return it->second;
            }
            LOG(ERROR) << "Invalid legacy strategy " << stringToken << " from path " << path;
            return unexpected(BAD_VALUE);
        }
    }
    return unexpected(BAD_VALUE);
}
+1 −15
Original line number Diff line number Diff line
@@ -59,20 +59,6 @@ namespace aidl::android::hardware::audio::core::internal {
static constexpr char kCapEngineConfigFileName[] =
        "/parameter-framework/Settings/Policy/PolicyConfigurableDomains.xml";

void EngineConfigXmlConverter::initProductStrategyMap() {
#define STRATEGY_ENTRY(name) {"STRATEGY_" #name, static_cast<int>(AudioProductStrategyType::name)}

    mProductStrategyMap = {STRATEGY_ENTRY(MEDIA),
                           STRATEGY_ENTRY(PHONE),
                           STRATEGY_ENTRY(SONIFICATION),
                           STRATEGY_ENTRY(SONIFICATION_RESPECTFUL),
                           STRATEGY_ENTRY(DTMF),
                           STRATEGY_ENTRY(ENFORCED_AUDIBLE),
                           STRATEGY_ENTRY(TRANSMITTED_THROUGH_SPEAKER),
                           STRATEGY_ENTRY(ACCESSIBILITY)};
#undef STRATEGY_ENTRY
}

ConversionResult<int> EngineConfigXmlConverter::convertProductStrategyNameToAidl(
        const std::string& xsdcProductStrategyName) {
    const auto [it, success] = mProductStrategyMap.insert(
@@ -242,7 +228,7 @@ AudioHalEngineConfig& EngineConfigXmlConverter::getAidlEngineConfig() {
}

void EngineConfigXmlConverter::init() {
    initProductStrategyMap();
    mProductStrategyMap = getLegacyProductStrategyMap();
    if (getXsdcConfig()->hasProductStrategies()) {
        mAidlEngineConfig.productStrategies = VALUE_OR_FATAL(
                (convertWrappedCollectionToAidl<eng_xsd::ProductStrategies,
+19 −0
Original line number Diff line number Diff line
@@ -816,4 +816,23 @@ ConversionResult<AudioHalVolumeCurve::CurvePoint> convertCurvePointToAidl(
    }
    return aidlCurvePoint;
}

/**
 * The hard coded id must be in sync with policy.h definition of legacy strategy ids.
 */
std::unordered_map<std::string, int> getLegacyProductStrategyMap() {
#define STRATEGY_ENTRY(name, id) {"STRATEGY_" #name, static_cast<int>(id)}

        return {STRATEGY_ENTRY(MEDIA, 5),
                STRATEGY_ENTRY(PHONE, 0),
                STRATEGY_ENTRY(SONIFICATION, 1),
                STRATEGY_ENTRY(SONIFICATION_RESPECTFUL, 4),
                STRATEGY_ENTRY(DTMF, 6),
                STRATEGY_ENTRY(ENFORCED_AUDIBLE, 2),
                STRATEGY_ENTRY(CALL_ASSISTANT, 7),
                STRATEGY_ENTRY(TRANSMITTED_THROUGH_SPEAKER,8),
                STRATEGY_ENTRY(ACCESSIBILITY, 3)};
#undef STRATEGY_ENTRY
}

}  // namespace aidl::android::hardware::audio::core::internal
+1 −0
Original line number Diff line number Diff line
@@ -64,4 +64,5 @@ ConversionResult<aidlaudiocommon::AudioStreamType> convertAudioStreamTypeToAidl(
        const engineconfiguration::Stream& xsdStreamType);
ConversionResult<int32_t> convertAudioFlagsToAidl(
        const std::vector<engineconfiguration::FlagType>& xsdcFlagTypeVec);
std::unordered_map<std::string, int> getLegacyProductStrategyMap();
}  // namespace aidl::android::hardware::audio::core::internal