Sensor.h revision 30d6fd6b28aeacfe06ddc7adaac34e8a0032df40
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2010 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#ifndef ANDROID_GUI_SENSOR_H 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define ANDROID_GUI_SENSOR_H 198c84109b9fbbf473b225707a38261ff5f99d95fbDianne Hackborn 201ce5bd34632e91a928aa12a30b1c160a35db033bDave Bort#include <stdint.h> 211ce5bd34632e91a928aa12a30b1c160a35db033bDave Bort#include <sys/types.h> 221ce5bd34632e91a928aa12a30b1c160a35db033bDave Bort 231ce5bd34632e91a928aa12a30b1c160a35db033bDave Bort#include <utils/Errors.h> 249c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn#include <utils/Flattenable.h> 251ce5bd34632e91a928aa12a30b1c160a35db033bDave Bort#include <utils/String8.h> 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <utils/Timers.h> 271ce5bd34632e91a928aa12a30b1c160a35db033bDave Bort 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <hardware/sensors.h> 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 301ce5bd34632e91a928aa12a30b1c160a35db033bDave Bort#include <android/sensor.h> 311ce5bd34632e91a928aa12a30b1c160a35db033bDave Bort 321ce5bd34632e91a928aa12a30b1c160a35db033bDave Bort// ---------------------------------------------------------------------------- 33c4b11a79fb164310af03c1190622fe52e3695d2bRomain Guy// Concrete types for the NDK 34c4b11a79fb164310af03c1190622fe52e3695d2bRomain Guystruct ASensor { }; 35c4b11a79fb164310af03c1190622fe52e3695d2bRomain Guy 36c4b11a79fb164310af03c1190622fe52e3695d2bRomain Guy// ---------------------------------------------------------------------------- 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectnamespace android { 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// ---------------------------------------------------------------------------- 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass Parcel; 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 429f3155418d0a504e45bc8c0ce47e11c8689ab36cDan Bornstein// ---------------------------------------------------------------------------- 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass Sensor : public ASensor, public LightFlattenable<Sensor> 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic: 47fe067a4cc586631881f51d0fd48100dd0f7cadf2Ian Rogers enum { 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TYPE_ACCELEROMETER = ASENSOR_TYPE_ACCELEROMETER, 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TYPE_MAGNETIC_FIELD = ASENSOR_TYPE_MAGNETIC_FIELD, 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TYPE_GYROSCOPE = ASENSOR_TYPE_GYROSCOPE, 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TYPE_LIGHT = ASENSOR_TYPE_LIGHT, 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TYPE_PROXIMITY = ASENSOR_TYPE_PROXIMITY 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Sensor(); 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Sensor(struct sensor_t const* hwSensor, int halVersion = 0); 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ~Sensor(); 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 593eda9799a162765dd49f481cc303fc5702a9c5feDan Egnor const String8& getName() const; 603eda9799a162765dd49f481cc303fc5702a9c5feDan Egnor const String8& getVendor() const; 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int32_t getHandle() const; 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int32_t getType() const; 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float getMinValue() const; 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float getMaxValue() const; 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float getResolution() const; 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float getPowerUsage() const; 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int32_t getMinDelay() const; 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project nsecs_t getMinDelayNs() const; 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int32_t getVersion() const; 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int32_t getFifoReservedEventCount() const; 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int32_t getFifoMaxEventCount() const; 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // LightFlattenable protocol 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project inline bool isFixedSize() const { return false; } 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project size_t getFlattenedSize() const; 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project status_t flatten(void* buffer, size_t size) const; 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project status_t unflatten(void const* buffer, size_t size); 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectprivate: 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String8 mName; 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String8 mVendor; 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int32_t mHandle; 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int32_t mType; 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float mMinValue; 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float mMaxValue; 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float mResolution; 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float mPower; 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int32_t mMinDelay; 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int32_t mVersion; 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int32_t mFifoReservedEventCount; 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int32_t mFifoMaxEventCount; 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}; 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// ---------------------------------------------------------------------------- 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}; // namespace android 96798e2d3d0c80e269ead1489dbc3f2f762f1e52b5Christian Mehlmauer 97b049e212ab7fe8967893c202efcb30fecfdb82fbJeff Sharkey#endif // ANDROID_GUI_SENSOR_H 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project