summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorJani Suonpera <jasuonpe@gmail.com>2015-10-09 11:45:57 +0300
committerBen Fennema <fennema@google.com>2015-11-30 21:27:27 -0800
commitd4db70a7b8b2d136c46c50f89b276f8150be5fc2 (patch)
treea52cb02edadeacc73359e025251ca262296245ba /services
parent804339a59e4abcbcf5a50a60ff0543e6b404e572 (diff)
downloadframeworks_native-d4db70a7b8b2d136c46c50f89b276f8150be5fc2.zip
frameworks_native-d4db70a7b8b2d136c46c50f89b276f8150be5fc2.tar.gz
frameworks_native-d4db70a7b8b2d136c46c50f89b276f8150be5fc2.tar.bz2
DO NOT MERGE ANYWHERE Add new interface for sensor physical data
This is special solution only for emerald branch. Changes including new const char* value/interface for sensor physical data. Sensor service and manager does not take care of content, structure or other details of string. Sensor HAL is taking care of parsing data from string and setting values to Sensor HW. Change-Id: I3abc3ddc7c6adc4b32a40b9a43f2a94c5af7b2b0 Signed-off-by: Ben Fennema <fennema@google.com>
Diffstat (limited to 'services')
-rw-r--r--services/sensorservice/SensorDevice.cpp15
-rw-r--r--services/sensorservice/SensorDevice.h1
-rw-r--r--services/sensorservice/SensorService.cpp8
-rw-r--r--services/sensorservice/SensorService.h1
4 files changed, 25 insertions, 0 deletions
diff --git a/services/sensorservice/SensorDevice.cpp b/services/sensorservice/SensorDevice.cpp
index dd1bccf..48ae2fb 100644
--- a/services/sensorservice/SensorDevice.cpp
+++ b/services/sensorservice/SensorDevice.cpp
@@ -407,6 +407,21 @@ status_t SensorDevice::setMode(uint32_t mode) {
return mSensorModule->set_operation_mode(mode);
}
+status_t SensorDevice::setSensorPhysicalData(const char* physicaldata)
+{
+ //ALOGD("SensorDevice::setSensorPhysicalData(%s)",physicaldata);
+ Mutex::Autolock _l(mLock);
+ if((mSensorModule->set_sensor_physical_data == NULL) || (getHalDeviceVersion() < SENSORS_DEVICE_API_VERSION_1_3_5))
+ {
+ return NO_INIT;
+ }
+ else
+ {
+ return mSensorModule->set_sensor_physical_data(physicaldata);
+ }
+}
+
+
// ---------------------------------------------------------------------------
int SensorDevice::Info::numActiveClients() {
diff --git a/services/sensorservice/SensorDevice.h b/services/sensorservice/SensorDevice.h
index c484849..f658497 100644
--- a/services/sensorservice/SensorDevice.h
+++ b/services/sensorservice/SensorDevice.h
@@ -104,6 +104,7 @@ public:
void autoDisable(void *ident, int handle);
status_t injectSensorData(const sensors_event_t *event);
void dump(String8& result);
+ status_t setSensorPhysicalData(const char* physicaldata);
};
// ---------------------------------------------------------------------------
diff --git a/services/sensorservice/SensorService.cpp b/services/sensorservice/SensorService.cpp
index fd72b23..2548a3e 100644
--- a/services/sensorservice/SensorService.cpp
+++ b/services/sensorservice/SensorService.cpp
@@ -735,6 +735,14 @@ Vector<Sensor> SensorService::getSensorList(const String16& opPackageName)
return accessibleSensorList;
}
+status_t SensorService::setSensorPhysicalData(const char* physicaldata)
+{
+ SensorDevice& dev(SensorDevice::getInstance());
+
+ //ALOGD("SensorService::setSensorPhysicalData(%s)",physicaldata);
+ return dev.setSensorPhysicalData(physicaldata);
+}
+
sp<ISensorEventConnection> SensorService::createSensorEventConnection(const String8& packageName,
int requestedMode, const String16& opPackageName) {
// Only 2 modes supported for a SensorEventConnection ... NORMAL and DATA_INJECTION.
diff --git a/services/sensorservice/SensorService.h b/services/sensorservice/SensorService.h
index 9a573ae..3a1ffb2 100644
--- a/services/sensorservice/SensorService.h
+++ b/services/sensorservice/SensorService.h
@@ -130,6 +130,7 @@ class SensorService :
virtual sp<ISensorEventConnection> createSensorEventConnection(const String8& packageName,
int requestedMode, const String16& opPackageName);
virtual int isDataInjectionEnabled();
+ virtual status_t setSensorPhysicalData(const char* physicaldata);
virtual status_t dump(int fd, const Vector<String16>& args);
class SensorEventConnection : public BnSensorEventConnection, public LooperCallback {