Check sensors of monitor when setting AND/OR condition
authorLokesh <l.kasana@samsung.com>
Thu, 5 Dec 2019 09:17:51 +0000 (14:47 +0530)
committersaerome.kim <saerome.kim@samsung.com>
Thu, 5 Dec 2019 12:16:25 +0000 (21:16 +0900)
Instead of global avialable sensors.

Change-Id: Ib7210dae128e3e627b027cfb1b877132046fb07b
Signed-off-by: Lokesh <l.kasana@samsung.com>
src/user-awareness-monitors.c

index 735642b15c3fb52adadd77c4e5db8ace02524450..04f69ce664d777c212e56c9f38da9542927c8098 100644 (file)
@@ -1257,7 +1257,6 @@ int ua_monitor_set_user_presence_condition(
 {
        FUNC_ENTRY;
        ua_monitor_s *monitor = (ua_monitor_s *)handle;
-       unsigned int available_sensors = 0;
 
        UA_VALIDATE_INPUT_PARAMETER(handle);
        UA_VALIDATE_HANDLE(handle, ua_monitor_list);
@@ -1276,15 +1275,13 @@ int ua_monitor_set_user_presence_condition(
                return UA_ERROR_INVALID_PARAMETER;
        }
 
-       _uam_get_available_sensors(&available_sensors);
-
-       if (bitmask_and != (available_sensors & bitmask_and)) {
+       if (bitmask_and != (monitor->sensor_bitmask & bitmask_and)) {
                UA_ERR("AND bitmask out of range");
                FUNC_EXIT;
                return UA_ERROR_INVALID_PARAMETER;
        }
 
-       if (bitmask_or != (available_sensors & bitmask_or)) {
+       if (bitmask_or != (monitor->sensor_bitmask & bitmask_or)) {
                UA_ERR("OR bitmask out of range");
                FUNC_EXIT;
                return UA_ERROR_INVALID_PARAMETER;
@@ -1306,7 +1303,6 @@ int ua_monitor_set_user_absence_condition(
 {
        FUNC_ENTRY;
        ua_monitor_s *monitor = (ua_monitor_s *)handle;
-       unsigned int available_sensors = 0;
 
        UA_VALIDATE_INPUT_PARAMETER(handle);
        UA_VALIDATE_HANDLE(handle, ua_monitor_list);
@@ -1325,15 +1321,13 @@ int ua_monitor_set_user_absence_condition(
                return UA_ERROR_INVALID_PARAMETER;
        }
 
-       _uam_get_available_sensors(&available_sensors);
-
-       if (bitmask_and != (available_sensors & bitmask_and)) {
+       if (bitmask_and != (monitor->sensor_bitmask & bitmask_and)) {
                UA_ERR("AND bitmask out of range");
                FUNC_EXIT;
                return UA_ERROR_INVALID_PARAMETER;
        }
 
-       if (bitmask_or != (available_sensors & bitmask_or)) {
+       if (bitmask_or != (monitor->sensor_bitmask & bitmask_or)) {
                UA_ERR("OR bitmask out of range");
                FUNC_EXIT;
                return UA_ERROR_INVALID_PARAMETER;