From 3d0dceb08a27b8837427c9e8e5f4c751c344c0c4 Mon Sep 17 00:00:00 2001 From: Abhay Agarwal Date: Fri, 22 Jan 2021 09:57:48 +0530 Subject: Modify monitor API's This patch modifies monitor based API's and callbacks (renames/parameter modifications) New API's to be used in place of deprecated API's - ua_monitor_start_scan_devices() => ua_monitor_start_scan() - ua_monitor_stop_scan_devices() => ua_monitor_stop_scan() - Added service_handle in ua_presence_detected_cb - Added service_handle in ua_absence_detected_cb Change-Id: I603952908ce2d7ece527e0ee15cfb1aeca7945ea Signed-off-by: Abhay Agarwal --- src/user-awareness-monitors.c | 79 ++++++++++++++++++++++++++++++++----------- 1 file changed, 60 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/user-awareness-monitors.c b/src/user-awareness-monitors.c index b542588..466c3de 100755 --- a/src/user-awareness-monitors.c +++ b/src/user-awareness-monitors.c @@ -406,17 +406,32 @@ static void __ua_send_presence_detection(char *svc_name) for (l = ua_monitor_list; NULL != l; l = g_slist_next(l)) { ua_monitor_s *monitor = l->data; + ua_service_info_s *service = NULL; + ua_service_h service_handle = NULL; if (!monitor || g_strcmp0(monitor->service, svc_name)) continue; if (monitor->presence_mode != UA_DETECT_MODE_ANY_SENSOR) { - UA_INFO("monitor->sensor_bitmask: 0x%8.8X, monitor->presence_detected_bitmask: 0x%8.8X", - monitor->sensor_bitmask, monitor->presence_detected_bitmask); - if (monitor->sensor_bitmask == monitor->presence_detected_bitmask) { - if (monitor->presence_cb) + /* Send callbacks for 'ALL' mode */ + UA_INFO("monitor->sensor_bitmask: 0x%8.8X, " \ + "monitor->presence_detected_bitmask: 0x%8.8X", + monitor->sensor_bitmask, + monitor->presence_detected_bitmask); + + if (monitor->sensor_bitmask + == monitor->presence_detected_bitmask) { + if (monitor->presence_cb) { + service = __ua_get_service_from_list( + monitor->service); + if (service) + service_handle = service->service_handle; + monitor->presence_cb(UA_ERROR_NONE, monitor, - monitor->presence_detected_bitmask, NULL, NULL, monitor->user_data); + monitor->presence_detected_bitmask, + service_handle, NULL, NULL, + monitor->user_data); + } } } @@ -446,6 +461,8 @@ static void __ua_monitor_send_sensor_presence_cb(ua_monitor_s *monitor, FUNC_ENTRY; ua_sensor_e bitmask = sensor_info->bitmask; ua_sensor_h sensor_handle; + ua_service_info_s *service = NULL; + ua_service_h service_handle = NULL; int ret; ret = ua_sensor_get_by_sensor_info(sensor_info, &sensor_handle); @@ -465,9 +482,12 @@ static void __ua_monitor_send_sensor_presence_cb(ua_monitor_s *monitor, UA_INFO("UA_DETECT_MODE_ALL_SENSOR [%d][%d]", bitmask, monitor->presence_detected_bitmask); - if (((bitmask == UA_SENSOR_BLE) && (monitor->sensor_bitmask & UA_SENSOR_WIFI)) - || ((bitmask == UA_SENSOR_WIFI) && (monitor->sensor_bitmask & UA_SENSOR_BLE))) - monitor->presence_detected_bitmask |= (UA_SENSOR_BLE | UA_SENSOR_WIFI); + if (((bitmask == UA_SENSOR_BLE) + && (monitor->sensor_bitmask & UA_SENSOR_WIFI)) + || ((bitmask == UA_SENSOR_WIFI) + && (monitor->sensor_bitmask & UA_SENSOR_BLE))) + monitor->presence_detected_bitmask |= + (UA_SENSOR_BLE | UA_SENSOR_WIFI); else monitor->presence_detected_bitmask |= bitmask; @@ -485,9 +505,14 @@ static void __ua_monitor_send_sensor_presence_cb(ua_monitor_s *monitor, UA_INFO("UA_DETECT_MODE_ANY_SENSOR [%d][%d]", bitmask, monitor->presence_detected_bitmask); - if (monitor->presence_cb) + if (monitor->presence_cb) { + service = __ua_get_service_from_list(monitor->service); + if (service) + service_handle = service->service_handle; monitor->presence_cb(UA_ERROR_NONE, monitor, - bitmask, device_handle, sensor_handle, monitor->user_data); + bitmask, service_handle, device_handle, + sensor_handle, monitor->user_data); + } } break; @@ -660,6 +685,8 @@ static void __ua_send_absence_detection(char *svc_name) for (l = ua_monitor_list; NULL != l; l = g_slist_next(l)) { ua_monitor_s *monitor = l->data; + ua_service_info_s *service = NULL; + ua_service_h service_handle = NULL; if (!monitor || g_strcmp0(monitor->service, svc_name)) continue; @@ -682,13 +709,18 @@ static void __ua_send_absence_detection(char *svc_name) monitor->sensor_bitmask, monitor->absence_detected_bitmask); if (monitor->sensor_bitmask == monitor->absence_detected_bitmask) { - if (monitor->absence_cb) - monitor->absence_cb(UA_ERROR_NONE, monitor, - monitor->absence_detected_bitmask, NULL, monitor->user_data); + if (monitor->absence_cb) { + service = __ua_get_service_from_list(monitor->service); + if (service) + service_handle = service->service_handle; + + monitor->absence_cb(UA_ERROR_NONE, monitor, + service_handle, monitor->absence_detected_bitmask, + NULL, monitor->user_data); + } } } - if (monitor->absence_user_cb.callback) { for (l1 = monitor->user_state; NULL != l1; l1 = g_slist_next(l1)) { ua_user_state_info_s *user_state = l1->data; @@ -719,6 +751,8 @@ static void __ua_sensor_absence_detected(ua_monitor_s *monitor, ua_sensor_e bitmask = sensor_info->bitmask; ret_if(NULL == monitor); ua_sensor_h sensor_handle; + ua_service_info_s *service = NULL; + ua_service_h service_handle = NULL; if (account) { for (l = monitor->user_state; l; l = g_slist_next(l)) { @@ -750,23 +784,30 @@ static void __ua_sensor_absence_detected(ua_monitor_s *monitor, _ua_get_error_string(ret)); } + service = __ua_get_service_from_list(monitor->service); + if (service) + service_handle = service->service_handle; + switch (monitor->absence_mode) { case UA_DETECT_MODE_ALL_SENSOR: break; case UA_DETECT_MODE_ANY_SENSOR: /* First add user info to local users list and then invoke callback */ if (account) { - all_absence = __ua_check_all_users_absence_state(monitor->user_state, bitmask); + all_absence = __ua_check_all_users_absence_state( + monitor->user_state, bitmask); if (all_absence) { if (monitor->absence_cb) monitor->absence_cb(UA_ERROR_NONE, monitor, - bitmask, sensor_handle, monitor->user_data); + service_handle, bitmask, sensor_handle, + monitor->user_data); } } else { if (monitor->absence_cb) monitor->absence_cb(UA_ERROR_NONE, monitor, - bitmask, sensor_handle, monitor->user_data); + service_handle, bitmask, sensor_handle, + monitor->user_data); } break; @@ -1318,7 +1359,7 @@ int ua_monitor_foreach_sensor( return UA_ERROR_NONE; } -int ua_monitor_start_scan_devices( +int ua_monitor_start_scan( ua_monitor_h handle, int scan_time, ua_scan_completed_cb callback, @@ -1357,7 +1398,7 @@ int ua_monitor_start_scan_devices( return UA_ERROR_NONE; } -int ua_monitor_stop_scan_devices(ua_monitor_h handle) +int ua_monitor_stop_scan(ua_monitor_h handle) { FUNC_ENTRY; int ret; -- cgit v1.2.3