17494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall/* 27494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall* Copyright (C) 2012 Invensense, Inc. 37494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall* 47494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall* Licensed under the Apache License, Version 2.0 (the "License"); 57494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall* you may not use this file except in compliance with the License. 67494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall* You may obtain a copy of the License at 77494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall* 87494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall* http://www.apache.org/licenses/LICENSE-2.0 97494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall* 107494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall* Unless required by applicable law or agreed to in writing, software 117494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall* distributed under the License is distributed on an "AS IS" BASIS, 127494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall* See the License for the specific language governing permissions and 147494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall* limitations under the License. 157494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall*/ 167494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall 177494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#ifndef ANDROID_SENSOR_BASE_H 187494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#define ANDROID_SENSOR_BASE_H 197494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall 207494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#include <stdint.h> 217494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#include <errno.h> 227494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#include <sys/cdefs.h> 237494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#include <sys/types.h> 247494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall 257494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#define CALL_MEMBER_FN(pobject, ptrToMember) ((pobject)->*(ptrToMember)) 267494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall 277494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#define MAX_SYSFS_NAME_LEN (100) 288504ee554e5ca7014b3160b1cbeb4506e231338bJP Abgrall#define IIO_BUFFER_LENGTH (480) 297494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall 307494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall/*****************************************************************************/ 317494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall 327494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrallstruct sensors_event_t; 337494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall 347494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrallclass SensorBase { 357494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrallprotected: 367494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall const char *dev_name; 377494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall const char *data_name; 387494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall char input_name[PATH_MAX]; 397494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall int dev_fd; 407494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall int data_fd; 417494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall 427494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall int openInput(const char* inputName); 437494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall 447494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall int open_device(); 457494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall int close_device(); 467494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall 477494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrallpublic: 487494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall SensorBase(const char* dev_name, const char* data_name); 497494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall 507494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall virtual ~SensorBase(); 517494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall 527494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall virtual int readEvents(sensors_event_t* data, int count) = 0; 537494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall virtual bool hasPendingEvents() const; 547494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall virtual int getFd() const; 557494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall virtual int setDelay(int32_t handle, int64_t ns); 567494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall virtual int enable(int32_t handle, int enabled); 577494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall}; 587494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall 597494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall/*****************************************************************************/ 607494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall 617494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#endif // ANDROID_SENSOR_BASE_H 62