SensorInterface.cpp revision 755c451c7861a029e26e5f16e319b629169e656d
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 37// --------------------------------------------------------------------------- 38 39HardwareSensor::HardwareSensor(const sensor_t& sensor): 40 BaseSensor(sensor) { 41} 42 43HardwareSensor::~HardwareSensor() { 44} 45 46bool HardwareSensor::process(sensors_event_t* outEvent, 47 const sensors_event_t& event) { 48 *outEvent = event; 49 return true; 50} 51 52status_t HardwareSensor::activate(void* ident, bool enabled) { 53 return mSensorDevice.activate(ident, mSensor.getHandle(), enabled); 54} 55 56status_t HardwareSensor::batch(void* ident, int /*handle*/, int flags, 57 int64_t samplingPeriodNs, int64_t maxBatchReportLatencyNs) { 58 return mSensorDevice.batch(ident, mSensor.getHandle(), flags, samplingPeriodNs, 59 maxBatchReportLatencyNs); 60} 61 62status_t HardwareSensor::flush(void* ident, int handle) { 63 return mSensorDevice.flush(ident, handle); 64} 65 66status_t HardwareSensor::setDelay(void* ident, int handle, int64_t ns) { 67 return mSensorDevice.setDelay(ident, handle, ns); 68} 69 70void HardwareSensor::autoDisable(void *ident, int handle) { 71 mSensorDevice.autoDisable(ident, handle); 72} 73 74VirtualSensor::VirtualSensor() : 75 BaseSensor(DUMMY_SENSOR), mSensorFusion(SensorFusion::getInstance()) { 76} 77 78// --------------------------------------------------------------------------- 79}; // namespace android 80