/* * Copyright (C) 2017 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 "utils.h" #include namespace android { namespace frameworks { namespace sensorservice { namespace V1_0 { namespace implementation { using ::android::Sensor; using ::android::hardware::hidl_string; using ::android::hardware::sensors::V1_0::SensorInfo; SensorInfo convertSensor(const Sensor& src) { SensorInfo dst; const String8& name = src.getName(); const String8& vendor = src.getVendor(); dst.name = hidl_string{name.string(), name.size()}; dst.vendor = hidl_string{vendor.string(), vendor.size()}; dst.version = src.getVersion(); dst.sensorHandle = src.getHandle(); dst.type = static_cast<::android::hardware::sensors::V1_0::SensorType>( src.getType()); // maxRange uses maxValue because ::android::Sensor wraps the // internal sensor_t in this way. dst.maxRange = src.getMaxValue(); dst.resolution = src.getResolution(); dst.power = src.getPowerUsage(); dst.minDelay = src.getMinDelay(); dst.fifoReservedEventCount = src.getFifoReservedEventCount(); dst.fifoMaxEventCount = src.getFifoMaxEventCount(); dst.typeAsString = src.getStringType(); dst.requiredPermission = src.getRequiredPermission(); dst.maxDelay = src.getMaxDelay(); dst.flags = src.getFlags(); return dst; } Result convertResult(status_t status) { switch (status) { case OK: return Result::OK; case NAME_NOT_FOUND: return Result::NOT_EXIST; case NO_MEMORY: return Result::NO_MEMORY; case NO_INIT: return Result::NO_INIT; case PERMISSION_DENIED: return Result::PERMISSION_DENIED; case BAD_VALUE: return Result::BAD_VALUE; case INVALID_OPERATION: return Result::INVALID_OPERATION; default: return Result::UNKNOWN_ERROR; } } ::android::hardware::sensors::V1_0::Event convertEvent(const ::ASensorEvent& src) { ::android::hardware::sensors::V1_0::Event dst; ::android::hardware::sensors::V1_0::implementation::convertFromSensorEvent( reinterpret_cast(src), &dst); return dst; } } // namespace implementation } // namespace V1_0 } // namespace sensorservice } // namespace frameworks } // namespace android