diff options
author | Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> | 2017-01-13 11:36:37 +0100 |
---|---|---|
committer | Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> | 2017-01-13 11:36:37 +0100 |
commit | 898b8362ef26d4029d68dce820ce916c40c73981 (patch) | |
tree | 6375b215ce34b9d7e944d32eb302abcd9cb83f9b /libsensors/PressureSensor.cpp | |
parent | 3da293a08c6f53958eb1339dcbead2976bb9949a (diff) | |
download | device_samsung_i9300-898b8362ef26d4029d68dce820ce916c40c73981.zip device_samsung_i9300-898b8362ef26d4029d68dce820ce916c40c73981.tar.gz device_samsung_i9300-898b8362ef26d4029d68dce820ce916c40c73981.tar.bz2 |
Revert "i9300: rewrite libsensors in c++"
This reverts commit 381a05756bdbe474ab76242a4e2934d81b8975e9.
Diffstat (limited to 'libsensors/PressureSensor.cpp')
-rw-r--r-- | libsensors/PressureSensor.cpp | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/libsensors/PressureSensor.cpp b/libsensors/PressureSensor.cpp deleted file mode 100644 index 6539ce0..0000000 --- a/libsensors/PressureSensor.cpp +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include <fcntl.h> -#include <errno.h> -#include <math.h> -#include <poll.h> -#include <unistd.h> -#include <dirent.h> -#include <sys/select.h> -#include <cstring> - -#include <cutils/log.h> - -#include "PressureSensor.h" - -#define LOGTAG "PressureSensor" - -#define PRESSURE_CONVERT(x) (x/4096.0f) - -/*****************************************************************************/ - -PressureSensor::PressureSensor() - : SensorBase(NULL, "barometer_sensor"), - mEnabled(0), - mInputReader(4), - mHasPendingEvent(false) -{ - mPendingEvent.version = sizeof(sensors_event_t); - mPendingEvent.sensor = ID_PR; - mPendingEvent.type = SENSOR_TYPE_PRESSURE; - memset(mPendingEvent.data, 0, sizeof(mPendingEvent.data)); - - if (data_fd) { - strcpy(input_sysfs_path, "/sys/class/input/"); - strcat(input_sysfs_path, input_name); - strcat(input_sysfs_path, "/device/"); - input_sysfs_path_len = strlen(input_sysfs_path); - enable(0, 1); - } -} - -PressureSensor::~PressureSensor() { - if (mEnabled) { - enable(0, 0); - } -} - -int PressureSensor::setInitialState() { - struct input_absinfo absinfo; - if (!ioctl(data_fd, EVIOCGABS(EVENT_TYPE_PRESSURE), &absinfo)) { - // make sure to report an event immediately - mHasPendingEvent = true; - mPendingEvent.pressure = PRESSURE_CONVERT(absinfo.value); - } - return 0; -} - -int PressureSensor::enable(int32_t handle, int en) { - int flags = en ? 1 : 0; - int fd; - if (flags != mEnabled) { - strcpy(&input_sysfs_path[input_sysfs_path_len], "enable"); - fd = open(input_sysfs_path, O_RDWR); - if (fd >= 0) { - write(fd, flags == 1 ? "1" : "0", 2); - close(fd); - mEnabled = flags; - setInitialState(); - return 0; - } - - return -1; - } - return 0; -} - -bool PressureSensor::hasPendingEvents() const { - return mHasPendingEvent; -} - -int PressureSensor::setDelay(int32_t handle, int64_t delay) -{ - int fd; - if (delay < 10000000) - delay = 10; - else - delay = delay / 1000000; - strcpy(&input_sysfs_path[input_sysfs_path_len], "poll_delay"); - fd = open(input_sysfs_path, O_RDWR); - if (fd >= 0) { - char buf[80]; - sprintf(buf, "%lld", delay); - write(fd, buf, strlen(buf)+1); - close(fd); - return 0; - } - return -1; -} - - -int PressureSensor::readEvents(sensors_event_t* data, int count) -{ - if (count < 1) - return -EINVAL; - - if (mHasPendingEvent) { - mHasPendingEvent = false; - mPendingEvent.timestamp = getTimestamp(); - *data = mPendingEvent; - return mEnabled ? 1 : 0; - } - - ssize_t n = mInputReader.fill(data_fd); - if (n < 0) - return n; - - int numEventReceived = 0; - input_event const* event; - - while (count && mInputReader.readEvent(&event)) { - int type = event->type; - if (type == EV_REL) { - if (event->code == REL_X) { - mPendingEvent.pressure = PRESSURE_CONVERT(event->value); - } - } else if (type == EV_SYN) { - mPendingEvent.timestamp = timevalToNano(event->time); - if (mEnabled) { - *data++ = mPendingEvent; - count--; - numEventReceived++; - } - } else { - ALOGE("%s: unknown event (type=%d, code=%d)", LOGTAG, - type, event->code); - } - mInputReader.next(); - } - - return numEventReceived; -} |