Loading audio/aidl/default/CapEngineConfigXmlConverter.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -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_"; Loading Loading @@ -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); } Loading audio/aidl/default/EngineConfigXmlConverter.cpp +1 −15 Original line number Diff line number Diff line Loading @@ -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( Loading Loading @@ -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, Loading audio/aidl/default/XsdcConversion.cpp +19 −0 Original line number Diff line number Diff line Loading @@ -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 audio/aidl/default/include/core-impl/XsdcConversion.h +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
audio/aidl/default/CapEngineConfigXmlConverter.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -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_"; Loading Loading @@ -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); } Loading
audio/aidl/default/EngineConfigXmlConverter.cpp +1 −15 Original line number Diff line number Diff line Loading @@ -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( Loading Loading @@ -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, Loading
audio/aidl/default/XsdcConversion.cpp +19 −0 Original line number Diff line number Diff line Loading @@ -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
audio/aidl/default/include/core-impl/XsdcConversion.h +1 −0 Original line number Diff line number Diff line Loading @@ -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