add functions to store boolean type sensor data
authorJeonghoon Park <jh1979.park@samsung.com>
Thu, 2 Aug 2018 04:15:10 +0000 (13:15 +0900)
committerJeonghoon Park <jh1979.park@samsung.com>
Thu, 2 Aug 2018 04:15:10 +0000 (13:15 +0900)
inc/sensor-data.h
src/sensor-data.c

index 758b58d..9d68972 100644 (file)
 #ifndef __SENSOR_DATA_H__
 #define  __SENSOR_DATA_H__
 
+#include <stdbool.h>
+
 typedef enum {
        SENSOR_DATA_TYPE_NONE = 0,
        SENSOR_DATA_TYPE_INT,
        SENSOR_DATA_TYPE_UINT,
+       SENSOR_DATA_TYPE_BOOL,
        SENSOR_DATA_TYPE_DOUBLE,
        SENSOR_DATA_TYPE_STR,
 } sensor_data_type_e;
@@ -32,11 +35,13 @@ void sensor_data_free(sensor_data *data);
 
 int sensor_data_set_int(sensor_data *data, int value);
 int sensor_data_set_uint(sensor_data *data, unsigned int value);
+int sensor_data_set_bool(sensor_data *data, bool value);
 int sensor_data_set_double(sensor_data *data, double value);
 int sensor_data_set_string(sensor_data *data, const char *value, unsigned int size);
 
 int sensor_data_get_int(sensor_data *data, int *value);
 int sensor_data_get_uint(sensor_data *data, unsigned int *value);
+int sensor_data_get_bool(sensor_data *data, bool *value);
 int sensor_data_get_double(sensor_data *data, double *value);
 int sensor_data_get_string(sensor_data *data, const char **value);
 
index 9caec1a..87e1ee4 100644 (file)
@@ -24,6 +24,7 @@ struct __sensor_data_s {
        union {
                int int_val;
                unsigned int uint_val;
+               bool b_val;
                double d_val;
                char *str_val;
        } value;
@@ -83,6 +84,18 @@ int sensor_data_set_uint(sensor_data *data, unsigned int value)
        return 0;
 }
 
+int sensor_data_set_bool(sensor_data *data, bool value)
+{
+       retv_if(!data, -1);
+       retv_if(data->type != SENSOR_DATA_TYPE_BOOL, -1);
+
+       pthread_mutex_lock(&data->mutex);
+       data->value.b_val = value;
+       pthread_mutex_unlock(&data->mutex);
+
+       return 0;
+}
+
 int sensor_data_set_double(sensor_data *data, double value)
 {
        retv_if(!data, -1);
@@ -138,6 +151,19 @@ int sensor_data_get_uint(sensor_data *data, unsigned int *value)
        return 0;
 }
 
+int sensor_data_get_bool(sensor_data *data, bool *value)
+{
+       retv_if(!data, -1);
+       retv_if(!value, -1);
+       retv_if(data->type != SENSOR_DATA_TYPE_BOOL, -1);
+
+       pthread_mutex_lock(&data->mutex);
+       *value = data->value.b_val;
+       pthread_mutex_unlock(&data->mutex);
+
+       return 0;
+}
+
 int sensor_data_get_double(sensor_data *data, double *value)
 {
        retv_if(!data, -1);