Implement set max/min distance
authorCheoleun Moon <chleun.moon@samsung.com>
Mon, 6 Apr 2020 05:20:49 +0000 (14:20 +0900)
committerCheoleun Moon <chleun.moon@samsung.com>
Mon, 6 Apr 2020 05:20:49 +0000 (14:20 +0900)
src/include/wifi-aware-config.h
src/include/wifi-aware-private.h
src/wifi-aware-gdbus.c
src/wifi-aware-private.c
src/wifi-aware.c

index 2d1090f8343d9a85b6cba6d070e8fba2f1a58d5c..51b11979ea530d8789978f0989716e138093308a 100644 (file)
@@ -57,6 +57,8 @@ typedef struct {
        uint16_t specific_info_len;
        uint8_t match_filter[WIFI_AWARE_MAX_MATCH_FILTER_LEN];
        uint16_t match_filter_len;
+       int max_distance;
+       int min_distance;
 } wifi_aware_subscribe_request_s;
 
 #ifdef __cplusplus
index 208d595769599d0526ff9bd2b12fd6c57da9c293..d6d7da78c67acb3e4314b95c41718ecff58a0e4e 100644 (file)
@@ -75,6 +75,8 @@ void _wifi_aware_subscribe_set_service_specific_info(wifi_aware_subscribe_h subs
                const unsigned char *service_specific_info, size_t len);
 void _wifi_aware_subscribe_set_match_filter(wifi_aware_subscribe_h subscribe,
                const unsigned char *match_filter, size_t len);
+void _wifi_aware_subscribe_set_max_distance(wifi_aware_subscribe_h subscribe, int distance);
+void _wifi_aware_subscribe_set_min_distance(wifi_aware_subscribe_h subscribe, int distance);
 wifi_aware_subscribe_request_s *_wifi_aware_subscribe_get_request(wifi_aware_subscribe_h subscribe_handle);
 uint16_t _wifi_aware_session_get_subscribe_id(wifi_aware_session_h session);
 
index ce116fd78683500aa9cc657c2d2bd3be4c06f3bf..6c0350c4c679ffa430ea00badfec09a4c413133a 100644 (file)
@@ -339,6 +339,8 @@ static GVariant *__create_subscribe_request_param(int client_id, wifi_aware_subs
        if (req->match_filter_len > 0)
                g_variant_builder_add(builder, "{sv}", "match_filter",
                                __pack_byte_array(req->match_filter, req->match_filter_len));
+       g_variant_builder_add(builder, "{sv", "max_distance", g_variant_new("i", req->max_distance));
+       g_variant_builder_add(builder, "{sv", "min_distance", g_variant_new("i", req->min_distance));
 
        params = g_variant_new("(ia{sv})", client_id, builder);
        g_variant_builder_unref(builder);
index 4da7288dfdfdcbe7bdd4db3e776287f0575d70ac..353d6605f8d8bf8130ae856e8eeec1544c2a66ed 100644 (file)
@@ -851,6 +851,18 @@ void _wifi_aware_subscribe_set_match_filter(wifi_aware_subscribe_h subscribe,
        req->match_filter_len = len;
 }
 
+void _wifi_aware_subscribe_set_max_distance(wifi_aware_subscribe_h subscribe, int distance)
+{
+       wifi_aware_subscribe_request_s *req = (wifi_aware_subscribe_request_s *)subscribe;
+       req->max_distance = distance;
+}
+
+void _wifi_aware_subscribe_set_min_distance(wifi_aware_subscribe_h subscribe, int distance)
+{
+       wifi_aware_subscribe_request_s *req = (wifi_aware_subscribe_request_s *)subscribe;
+       req->min_distance = distance;
+}
+
 static void __session_set_subscribe_config(wifi_aware_session_h session_handle,
                wifi_aware_subscribe_h subscribe)
 {
index 97072f3a09efc94cb742d9aeb3181786557a3aa6..961f680a8d1a33bc5edd86aefb4c0d1b46498035 100644 (file)
@@ -442,6 +442,30 @@ API int wifi_aware_subscribe_set_match_filter(
        return WIFI_AWARE_ERROR_NONE;
 }
 
+API int wifi_aware_subscribe_set_max_distance(wifi_aware_subscribe_h subscribe, int distance)
+{
+       __WIFI_AWARE_FUNC_ENTER__;
+       CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+       RET_VAL_IF(subscribe == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_subscribe_h is NULL");
+
+       _wifi_aware_subscribe_set_max_distance(subscribe, distance);
+
+       __WIFI_AWARE_FUNC_EXIT__;
+       return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_subscribe_set_min_distance(wifi_aware_subscribe_h subscribe, int distance)
+{
+       __WIFI_AWARE_FUNC_ENTER__;
+       CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+       RET_VAL_IF(subscribe == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_subscribe_h is NULL");
+
+       _wifi_aware_subscribe_set_min_distance(subscribe, distance);
+
+       __WIFI_AWARE_FUNC_EXIT__;
+       return WIFI_AWARE_ERROR_NONE;
+}
+
 API int wifi_aware_session_subscribe(wifi_aware_session_h session,
                wifi_aware_subscribe_h subscribe,
                wifi_aware_subscribed_cb callback, void *user_data)