Home | History | Annotate | Download | only in sensorservice
      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 
     24 namespace android {
     25 // ---------------------------------------------------------------------------
     26 
     27 namespace {
     28 const sensor_t DUMMY_SENSOR = {
     29         .name = "", .vendor = "", .stringType = "", .requiredPermission = ""};
     30 } //unnamed namespace
     31 
     32 BaseSensor::BaseSensor(const sensor_t& sensor) :
     33         mSensorDevice(SensorDevice::getInstance()),
     34         mSensor(&sensor, mSensorDevice.getHalDeviceVersion()) {
     35 }
     36 
     37 BaseSensor::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 
     44 HardwareSensor::HardwareSensor(const sensor_t& sensor):
     45         BaseSensor(sensor) {
     46 }
     47 
     48 HardwareSensor::HardwareSensor(const sensor_t& sensor, const uint8_t (&uuid)[16]):
     49         BaseSensor(sensor, uuid) {
     50 }
     51 
     52 HardwareSensor::~HardwareSensor() {
     53 }
     54 
     55 bool HardwareSensor::process(sensors_event_t* outEvent,
     56         const sensors_event_t& event) {
     57     *outEvent = event;
     58     return true;
     59 }
     60 
     61 status_t HardwareSensor::activate(void* ident, bool enabled) {
     62     return mSensorDevice.activate(ident, mSensor.getHandle(), enabled);
     63 }
     64 
     65 status_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 
     71 status_t HardwareSensor::flush(void* ident, int handle) {
     72     return mSensorDevice.flush(ident, handle);
     73 }
     74 
     75 status_t HardwareSensor::setDelay(void* ident, int handle, int64_t ns) {
     76     return mSensorDevice.setDelay(ident, handle, ns);
     77 }
     78 
     79 void HardwareSensor::autoDisable(void *ident, int handle) {
     80     mSensorDevice.autoDisable(ident, handle);
     81 }
     82 
     83 VirtualSensor::VirtualSensor() :
     84         BaseSensor(DUMMY_SENSOR), mSensorFusion(SensorFusion::getInstance()) {
     85 }
     86 
     87 // ---------------------------------------------------------------------------
     88 }; // namespace android
     89