mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 22:04:26 +00:00
Prior to this change, version constants (e.g., Version::ANDROID_S) were public static constants to make the version constants look as if they were enum values. However, this method prevented versions from being constexpr, because the Version type was incomplete by that point in time. This change moves these version constants outside of the Version struct, and makes them constexpr. They have the new names: * Version::ANDROID_OC_MR1 -> kVersionFeatureLevel1 * Version::ANDROID_P -> kVersionFeatureLevel2 * Version::ANDROID_Q -> kVersionFeatureLevel3 * Version::ANDROID_R -> kVersionFeatureLevel4 * Version::ANDROID_S -> kVersionFeatureLevel5 * Version::FEATURE_LEVEL_6 -> kVersionFeatureLevel6 * Version::EXPERIMENTAL -> kVersionFeatureLevelExperimental Bug: 206975939 Test: mma Change-Id: Ibf5f2fdb1459a69c51865aa5fdcd0cb0c3a88ade
63 lines
2.2 KiB
C++
63 lines
2.2 KiB
C++
/*
|
|
* Copyright (C) 2021 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#include "Callbacks.h"
|
|
|
|
#include "Conversions.h"
|
|
#include "PreparedModel.h"
|
|
#include "ProtectCallback.h"
|
|
#include "Utils.h"
|
|
|
|
#include <nnapi/IPreparedModel.h>
|
|
#include <nnapi/Result.h>
|
|
#include <nnapi/Types.h>
|
|
|
|
#include <utility>
|
|
|
|
// See hardware/interfaces/neuralnetworks/utils/README.md for more information on AIDL interface
|
|
// lifetimes across processes and for protecting asynchronous calls across AIDL.
|
|
|
|
namespace aidl::android::hardware::neuralnetworks::utils {
|
|
namespace {
|
|
|
|
// Converts the results of IDevice::prepareModel* to the NN canonical format. On success, this
|
|
// function returns with a non-null nn::SharedPreparedModel with a feature level of
|
|
// nn::kVersionFeatureLevel5. On failure, this function returns with the appropriate
|
|
// nn::GeneralError.
|
|
nn::GeneralResult<nn::SharedPreparedModel> prepareModelCallback(
|
|
ErrorStatus status, const std::shared_ptr<IPreparedModel>& preparedModel) {
|
|
HANDLE_STATUS_AIDL(status) << "model preparation failed with " << toString(status);
|
|
return NN_TRY(PreparedModel::create(preparedModel));
|
|
}
|
|
|
|
} // namespace
|
|
|
|
ndk::ScopedAStatus PreparedModelCallback::notify(
|
|
ErrorStatus status, const std::shared_ptr<IPreparedModel>& preparedModel) {
|
|
mData.put(prepareModelCallback(status, preparedModel));
|
|
return ndk::ScopedAStatus::ok();
|
|
}
|
|
|
|
void PreparedModelCallback::notifyAsDeadObject() {
|
|
mData.put(NN_ERROR(nn::ErrorStatus::DEAD_OBJECT) << "Dead object");
|
|
}
|
|
|
|
PreparedModelCallback::Data PreparedModelCallback::get() {
|
|
return mData.take();
|
|
}
|
|
|
|
} // namespace aidl::android::hardware::neuralnetworks::utils
|