summaryrefslogtreecommitdiff
path: root/src/adv_monitor.h
diff options
context:
space:
mode:
authorManish Mandlik <mmandlik@google.com>2020-10-30 17:52:48 -0700
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2020-11-02 09:53:25 -0800
commit058ef5a662160281ae0fdbbc47565a7292c2312d (patch)
tree44c28c1ed451c760fc96a034372e370a93fb0c18 /src/adv_monitor.h
parentdc136054955b4b4fe3c62902358b7b993275a04b (diff)
downloadbluez-058ef5a662160281ae0fdbbc47565a7292c2312d.tar.gz
adv_monitor: Implement RSSI filtering and content matching
This implements the following logic for background scanning. - Implement RSSI tracking based on high/low RSSI thresholds and timers. - Create an entry point in adapter to start the matching of Adv based on all monitors and invoke the RSSI tracking for Adv reporting.
Diffstat (limited to 'src/adv_monitor.h')
-rw-r--r--src/adv_monitor.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/adv_monitor.h b/src/adv_monitor.h
index 5cb372217..2b4f68abf 100644
--- a/src/adv_monitor.h
+++ b/src/adv_monitor.h
@@ -11,13 +11,31 @@
#ifndef __ADV_MONITOR_H
#define __ADV_MONITOR_H
+#include <glib.h>
+
+#include "src/shared/ad.h"
+
struct mgmt;
+struct queue;
+struct btd_device;
struct btd_adapter;
struct btd_adv_monitor_manager;
+struct btd_adv_monitor_pattern;
struct btd_adv_monitor_manager *btd_adv_monitor_manager_create(
struct btd_adapter *adapter,
struct mgmt *mgmt);
void btd_adv_monitor_manager_destroy(struct btd_adv_monitor_manager *manager);
+struct queue *btd_adv_monitor_content_filter(
+ struct btd_adv_monitor_manager *manager,
+ struct bt_ad *ad);
+
+void btd_adv_monitor_notify_monitors(struct btd_adv_monitor_manager *manager,
+ struct btd_device *device, int8_t rssi,
+ struct queue *matched_monitors);
+
+void btd_adv_monitor_device_remove(struct btd_adv_monitor_manager *manager,
+ struct btd_device *device);
+
#endif /* __ADV_MONITOR_H */