149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* 249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow * Copyright (C) 2012 The Android Open Source Project 349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow * 449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow * Licensed under the Apache License, Version 2.0 (the "License"); 549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow * you may not use this file except in compliance with the License. 649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow * You may obtain a copy of the License at 749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow * 849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow * http://www.apache.org/licenses/LICENSE-2.0 949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow * 1049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow * Unless required by applicable law or agreed to in writing, software 1149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow * distributed under the License is distributed on an "AS IS" BASIS, 1249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow * See the License for the specific language governing permissions and 1449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow * limitations under the License. 1549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow */ 1649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 1749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifndef PRESSURE_SENSOR_H 1849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define PRESSURE_SENSOR_H 1949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 2049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <stdint.h> 2149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <errno.h> 2249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <sys/cdefs.h> 2349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <sys/types.h> 2449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 2549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <stdint.h> 2649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <errno.h> 2749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <sys/cdefs.h> 2849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <sys/types.h> 2949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <poll.h> 3049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <utils/Vector.h> 3149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <utils/KeyedVector.h> 3249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 3349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include "sensors.h" 3449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include "SensorBase.h" 3549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include "InputEventReader.h" 3649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 3749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowclass PressureSensor : public SensorBase { 3849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 3949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowpublic: 4049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow PressureSensor(const char *sysfs_path); 4149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow virtual ~PressureSensor(); 4249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 4349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow virtual int getFd() const; 4449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow virtual int enable(int32_t handle, int enabled); 4549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow virtual int setDelay(int32_t handle, int64_t ns); 4649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow virtual int getEnable(int32_t handle); 4749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow virtual int64_t getDelay(int32_t handle); 4849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow virtual int64_t getMinDelay() { return -1; } // stub 4949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow // only applicable to primary 5049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow virtual int readEvents(sensors_event_t *data, int count) { return 0; } 5149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 5249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow void fillList(struct sensor_t *list); 5349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow // default is integrated for secondary bus 5449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow int isIntegrated() { return (1); } 5549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 5649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowprivate: 5749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow char sensor_name[200]; 5849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 5949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow struct sysfs_attrbs { 604a28f9c897c46c42a255823f7e307169a828a025Rosa Chow char *pressure_enable; 614a28f9c897c46c42a255823f7e307169a828a025Rosa Chow char *pressure_rate; 6249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow } pressureSysFs; 6349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 6449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow int pressure_fd; 6549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow int64_t mDelay; 6649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow int mEnable; 6749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow char* pathP; 6849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow const char* mSysfsPath; 6949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 7049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow int inv_init_sysfs_attributes(void); 7149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow}; 7249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 7349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/*****************************************************************************/ 7449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 7549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif // PRESSURE_SENSOR_H 76