diff --git a/neuralnetworks/aidl/utils/include/nnapi/hal/aidl/Utils.h b/neuralnetworks/aidl/utils/include/nnapi/hal/aidl/Utils.h index f2ab479e43..1fb694b5ad 100644 --- a/neuralnetworks/aidl/utils/include/nnapi/hal/aidl/Utils.h +++ b/neuralnetworks/aidl/utils/include/nnapi/hal/aidl/Utils.h @@ -19,6 +19,7 @@ #include "nnapi/hal/aidl/Conversions.h" +#include #include #include #include @@ -28,7 +29,19 @@ namespace aidl::android::hardware::neuralnetworks::utils { constexpr auto kDefaultPriority = Priority::MEDIUM; -constexpr auto kVersion = nn::Version::FEATURE_LEVEL_6; + +constexpr std::optional aidlVersionToCanonicalVersion(int aidlVersion) { + switch (aidlVersion) { + case 1: + return nn::Version::ANDROID_S; + case 2: + return nn::Version::FEATURE_LEVEL_6; + default: + return std::nullopt; + } +} + +constexpr auto kVersion = aidlVersionToCanonicalVersion(IDevice::version).value(); template nn::Result validate(const Type& halObject) { diff --git a/neuralnetworks/aidl/utils/src/Service.cpp b/neuralnetworks/aidl/utils/src/Service.cpp index 01772eed53..e48593c38e 100644 --- a/neuralnetworks/aidl/utils/src/Service.cpp +++ b/neuralnetworks/aidl/utils/src/Service.cpp @@ -46,13 +46,11 @@ nn::GeneralResult getAidlServiceFeatureLevel(IDevice* service) { aidlVersion = std::min(aidlVersion, IDevice::version); // Map stable AIDL versions to canonical versions. - switch (aidlVersion) { - case 1: - return nn::Version::ANDROID_S; - case 2: - return nn::Version::FEATURE_LEVEL_6; + auto version = aidlVersionToCanonicalVersion(aidlVersion); + if (!version.has_value()) { + return NN_ERROR() << "Unknown AIDL service version: " << aidlVersion; } - return NN_ERROR() << "Unknown AIDL service version: " << aidlVersion; + return version.value(); } } // namespace