summaryrefslogtreecommitdiff
path: root/android/client
diff options
context:
space:
mode:
authorGrzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>2014-11-20 16:34:03 +0100
committerSzymon Janc <szymon.janc@tieto.com>2014-11-21 14:35:47 +0100
commit204a605d9f7b26093e73729903f04dc9dfd9d9df (patch)
tree80ec74bf3444539ab22669871387ce37ef743583 /android/client
parent9d546ac7bbfd67b6152435d96df9f72538ca074d (diff)
downloadbluez-204a605d9f7b26093e73729903f04dc9dfd9d9df.tar.gz
android/client: Add support for gattc scan_filter_param_setup
This is new command introduced in Android 5.0 bluetooth gatt client api.
Diffstat (limited to 'android/client')
-rw-r--r--android/client/if-gatt.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/android/client/if-gatt.c b/android/client/if-gatt.c
index c412d5863..568eba650 100644
--- a/android/client/if-gatt.c
+++ b/android/client/if-gatt.c
@@ -1637,6 +1637,49 @@ static void read_remote_rssi_p(int argc, const char **argv)
EXEC(if_gatt->client->read_remote_rssi, client_if, &bd_addr);
}
+#if ANDROID_VERSION >= PLATFORM_VER(5, 0, 0)
+/* scan filter parameter setup */
+static void scan_filter_param_setup_c(int argc, const char **argv,
+ enum_func *enum_func, void **user)
+{
+ if (argc == 2) {
+ *user = client_if_str;
+ *enum_func = enum_one_string;
+ }
+}
+
+static void scan_filter_param_setup_p(int argc, const char **argv)
+{
+ int client_if;
+ int action;
+ int filt_index;
+ int feat_seln;
+ int list_logic_type, filt_logic_type;
+ int rssi_high_thres, rssi_low_thres;
+ int dely_mode;
+ int found_timeout, lost_timeout, found_timeout_cnt;
+
+ RETURN_IF_NULL(if_gatt);
+ VERIFY_CLIENT_IF(2, client_if);
+ VERIFY_ACTION(3, action);
+ VERIFY_FILT_INDEX(4, filt_index);
+ VERIFY_FEAT_SELN(5, feat_seln);
+ VERIFY_LIST_LOGIC_TYPE(6, list_logic_type);
+ VERIFY_FILT_LOGIC_TYPE(7, filt_logic_type);
+ VERIFY_RSSI_HI_THR(8, rssi_high_thres);
+ VERIFY_RSSI_LOW_THR(9, rssi_low_thres);
+ VERIFY_DELY_MODE(10, dely_mode);
+ VERIFY_FND_TIME(11, found_timeout);
+ VERIFY_LOST_TIME(12, lost_timeout);
+ VERIFY_FND_TIME_CNT(13, found_timeout_cnt);
+
+ EXEC(if_gatt->client->scan_filter_param_setup, client_if, action,
+ filt_index, feat_seln, list_logic_type, filt_logic_type,
+ rssi_high_thres, rssi_low_thres, dely_mode, found_timeout,
+ lost_timeout, found_timeout_cnt);
+}
+#endif
+
/* get_device_type */
static void get_device_type_c(int argc, const char **argv, enum_func *enum_func,
@@ -1703,6 +1746,11 @@ static struct method client_methods[] = {
#if ANDROID_VERSION >= PLATFORM_VER(5, 0, 0)
STD_METHODCH(scan, "[1|0]"),
STD_METHODCH(connect, "<client_if> <addr> [<is_direct>] [<transport]"),
+ STD_METHODCH(scan_filter_param_setup, "<client_if> <action>"
+ " <filt_index> <feat_seln> <list_logic_type>"
+ " <filt_logic_type> <rssi_high_thres> <rssi_low_thres>"
+ " <dely_mode> <found_timeout> <lost_timeout>"
+ " <found_timeout_cnt>"),
#else
STD_METHODCH(scan, "<client_if> [1|0]"),
STD_METHODCH(connect, "<client_if> <addr> [<is_direct>]"),