scanparam: Use configured values when available
authorAlain Michaud <alainm@chromium.org>
Wed, 1 Jul 2020 13:13:28 +0000 (13:13 +0000)
committerAyush Garg <ayush.garg@samsung.com>
Mon, 12 Apr 2021 09:00:49 +0000 (14:30 +0530)
This patch updates the scan parameter service to use the configured scan
parameters when available rather than the hardcoded kernel defaults.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
profiles/scanparam/scan.c

index 9e8f577..d72be3d 100755 (executable)
 #include "src/shared/gatt-db.h"
 #include "src/shared/gatt-client.h"
 #include "attrib/att.h"
+#include "src/hcid.h"
 
 #define SCAN_INTERVAL_WIN_UUID         0x2A4F
 #define SCAN_REFRESH_UUID              0x2A31
 
-#define SCAN_INTERVAL          0x0060
-#define SCAN_WINDOW            0x0030
 #define SERVER_REQUIRES_REFRESH        0x00
 
 struct scan {
@@ -75,8 +74,16 @@ static void write_scan_params(struct scan *scan)
 {
        uint8_t value[4];
 
-       put_le16(SCAN_INTERVAL, &value[0]);
-       put_le16(SCAN_WINDOW, &value[2]);
+       /* Unless scan parameters are configured, use the known kernel default
+        * parameters
+        */
+       put_le16(main_opts.default_params.le_scan_interval_autoconnect ?
+                       main_opts.default_params.le_scan_interval_autoconnect :
+                       0x60, &value[0]);
+
+       put_le16(main_opts.default_params.le_scan_win_autoconnect ?
+                       main_opts.default_params.le_scan_win_autoconnect :
+                       0x30, &value[2]);
 
        bt_gatt_client_write_without_response(scan->client, scan->iwhandle,
                                                false, value, sizeof(value));