1ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/* 2ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * Copyright (C) 2011 The Android Open Source Project 3ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * 4ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * Licensed under the Apache License, Version 2.0 (the "License"); 5ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * you may not use this file except in compliance with the License. 6ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * You may obtain a copy of the License at 7ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * 8ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * http://www.apache.org/licenses/LICENSE-2.0 9ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * 10ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * Unless required by applicable law or agreed to in writing, software 11ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * distributed under the License is distributed on an "AS IS" BASIS, 12ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * See the License for the specific language governing permissions and 14ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * limitations under the License. 15ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda */ 16ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 17ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#ifndef ANDROID_KIONIX_SENSOR_H 18ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#define ANDROID_KIONIX_SENSOR_H 19ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 20ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#include <stdint.h> 21ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#include <errno.h> 22ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#include <sys/cdefs.h> 23ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#include <sys/types.h> 24ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 25ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#include "sensors.h" 26ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#include "SensorBase.h" 27ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#include "InputEventReader.h" 28ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 29ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/*****************************************************************************/ 30ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 31ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudastruct input_event; 32ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 33ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudaclass KionixSensor : public SensorBase { 34ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda int mEnabled; 35ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda int64_t mDelay; 36ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda InputEventCircularReader mInputReader; 37ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda sensors_event_t mPendingEvent; 38ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda bool mHasPendingEvent; 39ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda char input_sysfs_path[PATH_MAX]; 40ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda int input_sysfs_path_len; 41ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 42ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda int setInitialState(); 43ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 44ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudapublic: 45ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda KionixSensor(); 46ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda virtual ~KionixSensor(); 47ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda virtual int readEvents(sensors_event_t* data, int count); 48ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda virtual bool hasPendingEvents() const; 49ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda virtual int setDelay(int32_t handle, int64_t ns); 50ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda virtual int setEnable(int32_t handle, int enabled); 51ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda virtual int64_t getDelay(int32_t handle); 52ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda virtual int getEnable(int32_t handle); 53ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda}; 54ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 55ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/*****************************************************************************/ 56ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda 57ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#endif // ANDROID_KIONIX_SENSOR_H 58