sensor-hal: modify HAL interface for batching
authorMu-Woong Lee <muwoong.lee@samsung.com>
Wed, 3 Feb 2016 07:49:21 +0000 (16:49 +0900)
committerMu-Woong Lee <muwoong.lee@samsung.com>
Wed, 3 Feb 2016 07:49:21 +0000 (16:49 +0900)
* int get_data(id, data, length)
  - return value: the remaining count of data

Change-Id: Ifa952443a115531b8ecd2c08b469a2ffe7dfb8cf
Signed-off-by: kibak.yoon <kibak.yoon@samsung.com>
Signed-off-by: Mu-Woong Lee <muwoong.lee@samsung.com>
src/accel/accel.cpp
src/accel/accel.h
src/sensor_hal.h

index 0f625d413cfc2490e72ba5cd6a88fbcf88106da8..98a9850944831753fec3de7929f39c262a0299e7 100644 (file)
@@ -266,8 +266,9 @@ int accel_device::read_fd(uint16_t **ids)
        return size;
 }
 
-int accel_device::get_data(uint16_t id, sensor_data_t **data)
+int accel_device::get_data(uint16_t id, sensor_data_t **data, int *length)
 {
+       int remains = 1;
        sensor_data_t *sensor_data;
        sensor_data = (sensor_data_t *)malloc(sizeof(sensor_data_t));
 
@@ -281,8 +282,9 @@ int accel_device::get_data(uint16_t id, sensor_data_t **data)
        raw_to_base(sensor_data);
 
        *data = sensor_data;
+       *length = sizeof(sensor_data_t);
 
-       return sizeof(sensor_data_t);
+       return --remains;
 }
 
 bool accel_device::flush(uint16_t id)
index 1c7f7378bcdc40b41b8e17a026e1cc98e5e42eb3..05e856191af9fbc27a5d233fa3befaa34a408fed 100644 (file)
@@ -40,7 +40,7 @@ public:
        bool set_attribute(uint16_t id, int32_t attribute, int32_t value);
 
        int read_fd(uint16_t **ids);
-       int get_data(uint16_t id, sensor_data_t **data);
+       int get_data(uint16_t id, sensor_data_t **data, int *length);
 
        bool flush(uint16_t id);
 
index 19681ed78de4117d4d6904f9fcb7f6581f6a1009..ea3b79544ec4b1d59da3791c87047de4e39b1a41 100644 (file)
@@ -176,8 +176,7 @@ public:
        virtual bool set_attribute(uint16_t id, int32_t attribute, int32_t value) = 0;
 
        virtual int read_fd(uint16_t **ids) = 0;
-       virtual int get_data(uint16_t id, sensor_data_t **data) = 0;
-
+       virtual int get_data(uint16_t id, sensor_data_t **data, int *length) = 0;
        virtual bool flush(uint16_t id) = 0;
 };
 #endif /* __cplusplus */