From: himanshu Date: Thu, 24 Oct 2019 05:52:33 +0000 (+0530) Subject: Adapt unregister all scan filters functionality into BT-HAL framework X-Git-Tag: accepted/tizen/unified/20191101.042113~5^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F82%2F216382%2F2;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git Adapt unregister all scan filters functionality into BT-HAL framework This API unregisters all registered scan filters. Change-Id: I1d68b123a89469ff37e78fc0b33e466b0ff2791a Signed-off-by: himanshu --- diff --git a/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c b/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c index cd62f3f..9774f17 100644 --- a/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c +++ b/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c @@ -770,6 +770,34 @@ int _bt_unregister_scan_filter(const char *sender, int slot_id) return BLUETOOTH_ERROR_NONE; } +int _bt_unregister_all_scan_filters(const char* sender) +{ + int ret; + bt_adapter_le_scanner_t *scanner = NULL; + bluetooth_le_scan_filter_t *filter_data = NULL; + GSList *l; + + scanner = __bt_find_scanner_from_list(sender); + + if (scanner == NULL) { + BT_ERR("There is NO available scanner."); + return BLUETOOTH_ERROR_NOT_FOUND; + } + for (l = scanner->filter_list; l != NULL; l = g_slist_next(l)) { + filter_data = l->data; + + ret = gattc_unregister_scan_filter(filter_data->slot_id); + + if (OAL_STATUS_SUCCESS != ret) + BT_ERR("gattc_unregister_scan_filter failed for slot_id = [%d]", filter_data->slot_id); + } + + g_slist_free_full(scanner->filter_list, g_free); + scanner->filter_list = NULL; + + return BLUETOOTH_ERROR_NONE; +} + int _bt_le_init(void) { BT_DBG("+"); diff --git a/bt-service-adaptation/services/bt-request-handler.c b/bt-service-adaptation/services/bt-request-handler.c index 635efc7..58ac62e 100644 --- a/bt-service-adaptation/services/bt-request-handler.c +++ b/bt-service-adaptation/services/bt-request-handler.c @@ -3148,6 +3148,17 @@ normal: break; } + case BT_UNREGISTER_ALL_SCAN_FILTERS: { + char *sender = NULL; + + sender = (char *)g_dbus_method_invocation_get_sender(context); + + BT_DBG("Remove all scan filters [Sender : %s]", sender); + + result = _bt_unregister_all_scan_filters(sender); + + break; + } case BT_DISCONNECT_DEVICE: { bluetooth_device_address_t address = { {0} }; diff --git a/bt-service-adaptation/services/include/bt-service-core-adapter-le.h b/bt-service-adaptation/services/include/bt-service-core-adapter-le.h index 8807201..5107892 100644 --- a/bt-service-adaptation/services/include/bt-service-core-adapter-le.h +++ b/bt-service-adaptation/services/include/bt-service-core-adapter-le.h @@ -102,6 +102,8 @@ int _bt_set_white_list(bluetooth_device_address_t *device_address, int address_t int _bt_set_manufacturer_data(bluetooth_manufacturer_data_t *m_data); int _bt_unregister_scan_filter(const char *sender, int slot_id); + +int _bt_unregister_all_scan_filters(const char *sender); #ifdef __cplusplus } #endif /* __cplusplus */