summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Kocialkowski <contact@paulk.fr>2012-12-28 21:42:14 +0100
committerPaul Kocialkowski <contact@paulk.fr>2012-12-28 21:42:14 +0100
commitf8d4236a32dcd298ed8c0fd42d5349eae848e0c5 (patch)
tree037338c88c7bab2d1c5d80289218c53cfaa0acf7
parentc8edb6539977c8820d665691d53c33892cfa4fdd (diff)
downloaddevice_samsung_crespo-f8d4236a32dcd298ed8c0fd42d5349eae848e0c5.tar.gz
device_samsung_crespo-f8d4236a32dcd298ed8c0fd42d5349eae848e0c5.tar.bz2
device_samsung_crespo-f8d4236a32dcd298ed8c0fd42d5349eae848e0c5.zip
Sensors: Use Samsung Sensors
Change-Id: Ib06e3bd19fe50f8a9d00439b99b1de9b7f462bd0 Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
-rw-r--r--device_base.mk5
-rw-r--r--libsensors/AkmSensor.cpp42
2 files changed, 25 insertions, 22 deletions
diff --git a/device_base.mk b/device_base.mk
index 94208db..eb37550 100644
--- a/device_base.mk
+++ b/device_base.mk
@@ -141,7 +141,6 @@ PRODUCT_PACKAGES += \
# Libs
PRODUCT_PACKAGES += \
libcamera \
- libakm \
com.android.future.usb.accessory
# RIL/RIL client/libsamsung-ipc
@@ -149,6 +148,10 @@ PRODUCT_PACKAGES += libsamsung-ril \
libsamsung-ril-client \
ipc-modemctrl
+# Sensors
+PRODUCT_PACKAGES += \
+ libsamsung-sensors
+
# Input device calibration files
PRODUCT_COPY_FILES += \
device/samsung/crespo/mxt224_ts_input.idc:system/usr/idc/mxt224_ts_input.idc
diff --git a/libsensors/AkmSensor.cpp b/libsensors/AkmSensor.cpp
index 34a24f2..5a269e4 100644
--- a/libsensors/AkmSensor.cpp
+++ b/libsensors/AkmSensor.cpp
@@ -31,10 +31,10 @@
/*****************************************************************************/
-int (*akm_is_sensor_enabled)(uint32_t sensor_type);
-int (*akm_enable_sensor)(uint32_t sensor_type);
-int (*akm_disable_sensor)(uint32_t sensor_type);
-int (*akm_set_delay)(uint32_t sensor_type, uint64_t delay);
+int (*is_sensor_enabled)(uint32_t sensor_type);
+int (*enable_sensor)(uint32_t sensor_type);
+int (*disable_sensor)(uint32_t sensor_type);
+int (*set_delay)(uint32_t sensor_type, uint64_t delay);
int stub_is_sensor_enabled(uint32_t sensor_type) {
return 0;
@@ -83,7 +83,7 @@ AkmSensor::AkmSensor()
struct input_absinfo absinfo;
short flags = 0;
- if (akm_is_sensor_enabled(SENSOR_TYPE_ACCELEROMETER)) {
+ if (is_sensor_enabled(SENSOR_TYPE_ACCELEROMETER)) {
mEnabled |= 1<<Accelerometer;
if (!ioctl(data_fd, EVIOCGABS(EVENT_TYPE_ACCEL_X), &absinfo)) {
mPendingEvents[Accelerometer].acceleration.x = absinfo.value * CONVERT_A_X;
@@ -95,7 +95,7 @@ AkmSensor::AkmSensor()
mPendingEvents[Accelerometer].acceleration.z = absinfo.value * CONVERT_A_Z;
}
}
- if (akm_is_sensor_enabled(SENSOR_TYPE_MAGNETIC_FIELD)) {
+ if (is_sensor_enabled(SENSOR_TYPE_MAGNETIC_FIELD)) {
mEnabled |= 1<<MagneticField;
if (!ioctl(data_fd, EVIOCGABS(EVENT_TYPE_MAGV_X), &absinfo)) {
mPendingEvents[MagneticField].magnetic.x = absinfo.value * CONVERT_M_X;
@@ -107,7 +107,7 @@ AkmSensor::AkmSensor()
mPendingEvents[MagneticField].magnetic.z = absinfo.value * CONVERT_M_Z;
}
}
- if (akm_is_sensor_enabled(SENSOR_TYPE_ORIENTATION)) {
+ if (is_sensor_enabled(SENSOR_TYPE_ORIENTATION)) {
mEnabled |= 1<<Orientation;
if (!ioctl(data_fd, EVIOCGABS(EVENT_TYPE_YAW), &absinfo)) {
mPendingEvents[Orientation].orientation.azimuth = absinfo.value;
@@ -124,7 +124,7 @@ AkmSensor::AkmSensor()
}
// disable temperature sensor, since it is not supported
- akm_disable_sensor(SENSOR_TYPE_TEMPERATURE);
+ disable_sensor(SENSOR_TYPE_TEMPERATURE);
}
AkmSensor::~AkmSensor()
@@ -159,9 +159,9 @@ int AkmSensor::enable(int32_t handle, int en)
}
short flags = newState;
if (en)
- err = akm_enable_sensor(sensor_type);
+ err = enable_sensor(sensor_type);
else
- err = akm_disable_sensor(sensor_type);
+ err = disable_sensor(sensor_type);
LOGE_IF(err, "Could not change sensor state (%s)", strerror(-err));
if (!err) {
@@ -188,26 +188,26 @@ int AkmSensor::setDelay(int32_t handle, int64_t ns)
if (sensor_type == 0)
return -EINVAL;
- return akm_set_delay(sensor_type, ns);
+ return set_delay(sensor_type, ns);
}
int AkmSensor::loadAKMLibrary()
{
- mLibAKM = dlopen("libakm.so", RTLD_NOW);
+ mLibAKM = dlopen("libsamsung-sensors.so", RTLD_NOW);
if (!mLibAKM) {
- akm_is_sensor_enabled = stub_is_sensor_enabled;
- akm_enable_sensor = stub_enable_disable_sensor;
- akm_disable_sensor = stub_enable_disable_sensor;
- akm_set_delay = stub_set_delay;
- LOGE("AkmSensor: unable to load AKM Library, %s", dlerror());
+ is_sensor_enabled = stub_is_sensor_enabled;
+ enable_sensor = stub_enable_disable_sensor;
+ disable_sensor = stub_enable_disable_sensor;
+ set_delay = stub_set_delay;
+ LOGE("AkmSensor: unable to load Sensors Library, %s", dlerror());
return -ENOENT;
}
- *(void **)&akm_is_sensor_enabled = dlsym(mLibAKM, "akm_is_sensor_enabled");
- *(void **)&akm_enable_sensor = dlsym(mLibAKM, "akm_enable_sensor");
- *(void **)&akm_disable_sensor = dlsym(mLibAKM, "akm_disable_sensor");
- *(void **)&akm_set_delay = dlsym(mLibAKM, "akm_set_delay");
+ *(void **)&is_sensor_enabled = dlsym(mLibAKM, "is_sensor_enabled");
+ *(void **)&enable_sensor = dlsym(mLibAKM, "enable_sensor");
+ *(void **)&disable_sensor = dlsym(mLibAKM, "disable_sensor");
+ *(void **)&set_delay = dlsym(mLibAKM, "set_delay");
return 0;
}