1/* 2 * Copyright (C) 2010 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#include "SensorInterface.h" 18#include "SensorDevice.h" 19#include "SensorFusion.h" 20 21#include <stdint.h> 22#include <sys/types.h> 23 24namespace android { 25// --------------------------------------------------------------------------- 26 27namespace { 28const sensor_t DUMMY_SENSOR = { 29 .name = "", .vendor = "", .stringType = "", .requiredPermission = ""}; 30} //unnamed namespace 31 32BaseSensor::BaseSensor(const sensor_t& sensor) : 33 mSensorDevice(SensorDevice::getInstance()), 34 mSensor(&sensor, mSensorDevice.getHalDeviceVersion()) { 35} 36 37BaseSensor::BaseSensor(const sensor_t& sensor, const uint8_t (&uuid)[16]) : 38 mSensorDevice(SensorDevice::getInstance()), 39 mSensor(sensor, Sensor::uuid_t(uuid), mSensorDevice.getHalDeviceVersion()) { 40} 41 42// --------------------------------------------------------------------------- 43 44HardwareSensor::HardwareSensor(const sensor_t& sensor): 45 BaseSensor(sensor) { 46} 47 48HardwareSensor::HardwareSensor(const sensor_t& sensor, const uint8_t (&uuid)[16]): 49 BaseSensor(sensor, uuid) { 50} 51 52HardwareSensor::~HardwareSensor() { 53} 54 55bool HardwareSensor::process(sensors_event_t* outEvent, 56 const sensors_event_t& event) { 57 *outEvent = event; 58 return true; 59} 60 61status_t HardwareSensor::activate(void* ident, bool enabled) { 62 return mSensorDevice.activate(ident, mSensor.getHandle(), enabled); 63} 64 65status_t HardwareSensor::batch(void* ident, int /*handle*/, int flags, 66 int64_t samplingPeriodNs, int64_t maxBatchReportLatencyNs) { 67 return mSensorDevice.batch(ident, mSensor.getHandle(), flags, samplingPeriodNs, 68 maxBatchReportLatencyNs); 69} 70 71status_t HardwareSensor::flush(void* ident, int handle) { 72 return mSensorDevice.flush(ident, handle); 73} 74 75status_t HardwareSensor::setDelay(void* ident, int handle, int64_t ns) { 76 return mSensorDevice.setDelay(ident, handle, ns); 77} 78 79void HardwareSensor::autoDisable(void *ident, int handle) { 80 mSensorDevice.autoDisable(ident, handle); 81} 82 83VirtualSensor::VirtualSensor() : 84 BaseSensor(DUMMY_SENSOR), mSensorFusion(SensorFusion::getInstance()) { 85} 86 87// --------------------------------------------------------------------------- 88}; // namespace android 89