Merge "sensorhal: Add support for humidity sensor"
diff --git a/sensorhal/hubconnection.cpp b/sensorhal/hubconnection.cpp
index 199bae5..5c5db92 100644
--- a/sensorhal/hubconnection.cpp
+++ b/sensorhal/hubconnection.cpp
@@ -220,6 +220,7 @@
     mSensorState[COMMS_SENSOR_GAZE].rate = SENSOR_RATE_ONESHOT;
     mSensorState[COMMS_SENSOR_UNGAZE].sensorType = SENS_TYPE_UNGAZE;
     mSensorState[COMMS_SENSOR_UNGAZE].rate = SENSOR_RATE_ONESHOT;
+    mSensorState[COMMS_SENSOR_HUMIDITY].sensorType = SENS_TYPE_HUMIDITY;
 
 #ifdef LID_STATE_REPORTING_ENABLED
     initializeUinputNode();
@@ -482,6 +483,9 @@
     case COMMS_SENSOR_PRESSURE:
         initEv(&nev[cnt++], timestamp, type, sensor)->pressure = sample->fdata;
         break;
+    case COMMS_SENSOR_HUMIDITY:
+        initEv(&nev[cnt++], timestamp, type, sensor)->relative_humidity = sample->fdata;
+        break;
     case COMMS_SENSOR_TEMPERATURE:
         initEv(&nev[cnt++], timestamp, type, sensor)->temperature = sample->fdata;
         break;
@@ -850,6 +854,11 @@
             sensor = COMMS_SENSOR_PRESSURE;
             one = true;
             break;
+        case SENS_TYPE_TO_EVENT(SENS_TYPE_HUMIDITY):
+            type = SENSOR_TYPE_RELATIVE_HUMIDITY;
+            sensor = COMMS_SENSOR_HUMIDITY;
+            one = true;
+            break;
         case SENS_TYPE_TO_EVENT(SENS_TYPE_TEMP):
             // nanohub only has one temperature sensor type, which is mapped to
             // internal temp because we currently don't have ambient temp
@@ -1112,7 +1121,7 @@
         float sw[3];
     } gyro, accel;
     int32_t proximity, proximity_array[4];
-    float barometer, mag[3], light;
+    float barometer, humidity, mag[3], light;
     bool gyro_hw_cal_exists, gyro_sw_cal_exists;
     bool accel_hw_cal_exists, accel_sw_cal_exists;
 
@@ -1143,6 +1152,9 @@
     if (settings->getFloat("barometer", &barometer))
         queueDataInternal(COMMS_SENSOR_PRESSURE, &barometer, sizeof(barometer));
 
+    if (settings->getFloat("humidity", &humidity))
+        queueDataInternal(COMMS_SENSOR_HUMIDITY, &humidity, sizeof(humidity));
+
     if (settings->getInt32("proximity", &proximity))
         queueDataInternal(COMMS_SENSOR_PROXIMITY, &proximity, sizeof(proximity));
 
diff --git a/sensorhal/hubdefs.h b/sensorhal/hubdefs.h
index 4aac677..ba1f6e9 100644
--- a/sensorhal/hubdefs.h
+++ b/sensorhal/hubdefs.h
@@ -82,6 +82,8 @@
     COMMS_SENSOR_DOUBLE_TOUCH                = 44,
     COMMS_SENSOR_GAZE                        = 45,
     COMMS_SENSOR_UNGAZE                      = 46,
+    COMMS_SENSOR_ACCEL_UNCALIBRATED          = 47,
+    COMMS_SENSOR_HUMIDITY                    = 48,
 
     NUM_COMMS_SENSORS_PLUS_1,