gattlib: Introduce GATTLIB_DISCOVER_FILTER_NOTIFY_CHANGE

pull/167/head
Olivier Martin 2020-04-09 09:51:27 +02:00 committed by Olivier Martin
parent 4ebc640ddd
commit c0215ee4ce
3 changed files with 7 additions and 1 deletions

View File

@ -120,6 +120,7 @@ GDBusObjectManager *get_device_manager_from_adapter(struct gattlib_adapter *gatt
*/
struct discovered_device_arg {
void *adapter;
uint32_t enabled_filters;
gattlib_discovered_device_t callback;
void *user_data;
GSList** discovered_devices_ptr;
@ -151,7 +152,9 @@ static void device_manager_on_device1_signal(const char* device1_path, struct di
if (item == NULL) {
// Add the device to the list
*arg->discovered_devices_ptr = g_slist_append(*arg->discovered_devices_ptr, g_strdup(address));
}
if ((item == NULL) || (arg->enabled_filters & GATTLIB_DISCOVER_FILTER_NOTIFY_CHANGE)) {
arg->callback(
arg->adapter,
org_bluez_device1_get_address(device1),
@ -255,6 +258,7 @@ int gattlib_adapter_scan_enable_with_filter(void *adapter, uuid_t **uuid_list, i
// Pass the user callback and the discovered device list pointer to the signal handlers
struct discovered_device_arg discovered_device_arg = {
.adapter = adapter,
.enabled_filters = enabled_filters,
.callback = discovered_device_cb,
.user_data = user_data,
.discovered_devices_ptr = &discovered_devices,

View File

@ -5,6 +5,7 @@ from .uuid import gattlib_uuid_to_int
GATTLIB_DISCOVER_FILTER_USE_UUID = (1 << 0)
GATTLIB_DISCOVER_FILTER_USE_RSSI = (1 << 1)
GATTLIB_DISCOVER_FILTER_NOTIFY_CHANGE = (1 << 2)
GATTLIB_EDDYSTONE_TYPE_UID = (1 << 0)
GATTLIB_EDDYSTONE_TYPE_URL = (1 << 1)

View File

@ -2,7 +2,7 @@
*
* GattLib - GATT Library
*
* Copyright (C) 2016-2019 Olivier Martin <olivier@labapart.org>
* Copyright (C) 2016-2020 Olivier Martin <olivier@labapart.org>
*
*
* This program is free software; you can redistribute it and/or modify
@ -111,6 +111,7 @@ extern "C" {
#define GATTLIB_DISCOVER_FILTER_USE_NONE 0
#define GATTLIB_DISCOVER_FILTER_USE_UUID (1 << 0)
#define GATTLIB_DISCOVER_FILTER_USE_RSSI (1 << 1)
#define GATTLIB_DISCOVER_FILTER_NOTIFY_CHANGE (1 << 2)
//@}
/**