/**
* @brief Create a Publish request.
* @since_tizen 6.0
+ * @param[in] wifi_aware
* @param[out] publish
* @return 0 on success, otherwise a negative error value
* @retval #WIFI_AWARE_ERROR_NONE
* @see wifi_aware_publish_destroy
*/
-int wifi_aware_publish_create(wifi_aware_publish_h *publish);
+int wifi_aware_publish_create(wifi_aware_h wifi_aware, wifi_aware_publish_h *publish);
/**
* @brief Destroy a Publish request.
* @retval #WIFI_AWARE_ERROR_NONE
* @see wifi_aware_subscribe_destroy
*/
-int wifi_aware_subscribe_create(wifi_aware_subscribe_h *subscribe);
+int wifi_aware_subscribe_create(wifi_aware_h wifi_aware, wifi_aware_subscribe_h *subscribe);
/**
* @brief Destroy a Subscribe request.
/**
* @brief Publish a Wi-Fi Aware service so that neighboring devices can find it.
* @since_tizen 6.0
- * @param[in] wifi_aware
* @param[in] publish
* @param[in] callback
* @param[in] user_data
* @return 0 on success, otherwise a negative error value
* @retval #WIFI_AWARE_ERROR_NONE
*/
-int wifi_aware_start_publish(wifi_aware_h wifi_aware,
- wifi_aware_publish_h publish,
+int wifi_aware_start_publish(wifi_aware_publish_h publish,
wifi_aware_published_cb callback, void *user_data);
/**
* @brief Cancel a published Wi-Fi Aware service so that it cannot be found.
* @since_tizen 6.0
- * @param[in] wifi_aware
* @param[in] publish
* @return 0 on success, otherwise a negative error value
* @retval #WIFI_AWARE_ERROR_NONE
*/
-int wifi_aware_cancel_publish(wifi_aware_h wifi_aware, wifi_aware_publish_h publish);
+int wifi_aware_cancel_publish(wifi_aware_publish_h publish);
/**
* @brief Update the configuration for a Wi-Fi Aware service that has already been published.
* @since_tizen 6.0
- * @param[in] wifi_aware
* @param[in] publish
* @param[in] callback
* @param[in] user_data
* @return 0 on success, otherwise a negative error value
* @retval #WIFI_AWARE_ERROR_NONE
*/
-int wifi_aware_update_publish(wifi_aware_h wifi_aware,
- wifi_aware_publish_h publish,
+int wifi_aware_update_publish(wifi_aware_publish_h publish,
wifi_aware_published_cb callback, void *user_data);
/**
* @brief
* @since_tizen 6.0
* @param[in] error
- * @param[in] subscribe_id
+ * @param[in] subscribe
* @param[in] user_data
* @return 0 on success, otherwise a negative error value
* @retval #WIFI_AWARE_ERROR_NONE
/**
* @brief Start to find Wi-Fi Aware services.
* @since_tizen 6.0
- * @param[in] wifi_aware
* @param[in] subscribe
* @param[in] callback
* @param[in] user_data
* @return 0 on success, otherwise a negative error value
* @retval #WIFI_AWARE_ERROR_NONE
*/
-int wifi_aware_start_subscribe(wifi_aware_h wifi_aware, wifi_aware_subscribe_h subscribe,
+int wifi_aware_start_subscribe(wifi_aware_subscribe_h subscribe,
wifi_aware_subscribed_cb callback, void *user_data);
/**
* @brief Stop finding Wi-Fi Aware services.
* @since_tizen 6.0
- * @param[in] wifi_aware
* @param[in] subscribe
* @return 0 on success, otherwise a negative error value
* @retval #WIFI_AWARE_ERROR_NONE
*/
-int wifi_aware_cancel_subscribe(wifi_aware_h wifi_aware, wifi_aware_subscribe_h subscribe);
+int wifi_aware_cancel_subscribe(wifi_aware_subscribe_h subscribe);
/**
* @brief Update the configuration for a Wi-Fi Aware service that has already been subscribed.
* @since_tizen 6.0
- * @param[in] wifi_aware
* @param[in] subscribe
* @param[in] callback
* @param[in] user_data
* @return 0 on success, otherwise a negative error value
* @retval #WIFI_AWARE_ERROR_NONE
*/
-int wifi_aware_update_subscribe(wifi_aware_h wifi_aware,
- wifi_aware_subscribe_h subscribe,
+int wifi_aware_update_subscribe(wifi_aware_subscribe_h subscribe,
wifi_aware_subscribed_cb callback, void *user_data);
/**
* @brief
* @since_tizen 6.0
- * @param[in] subscribe_id
* @param[in] peer
* @param[in] service_specific_info
* @param[in] service_specific_info_len
* @return 0 on success, otherwise a negative error value
* @retval #WIFI_AWARE_ERROR_NONE
*/
-typedef void(*wifi_aware_discovery_result_cb)(
- unsigned int subscribe_id, wifi_aware_peer_h peer,
+typedef void(*wifi_aware_discovery_result_cb)(wifi_aware_subscribe_h subscribe,
+ wifi_aware_peer_h peer,
unsigned char *service_specific_info, size_t service_specific_info_len,
void *user_data);
/**
* @brief
* @since_tizen 6.0
- * @param[in] wifi_aware
+ * @param[in] subscribe
* @param[in] callback
* @param[in] user_data
* @return 0 on success, otherwise a negative error value
* @retval #WIFI_AWARE_ERROR_NONE
*/
-int wifi_aware_set_discovery_result_cb(wifi_aware_h wifi_aware,
+int wifi_aware_set_discovery_result_cb(wifi_aware_subscribe_h subscribe,
wifi_aware_discovery_result_cb callback, void *user_data);
/**
* @brief
* @since_tizen 6.0
- * @param[in] wifi_aware
* @param[in] peer
* @param[in] message
* @param[in] len
* @return 0 on success, otherwise a negative error value
* @retval #WIFI_AWARE_ERROR_NONE
*/
-int wifi_aware_send_message(wifi_aware_h wifi_aware,
- wifi_aware_peer_h peer, unsigned char *message, size_t len);
+int wifi_aware_send_message(wifi_aware_peer_h peer, unsigned char *message, size_t len);
/**
* @retval #WIFI_AWARE_ERROR_NONE
*/
typedef void(*wifi_aware_received_message_cb)(wifi_aware_peer_h peer,
- unsigned char *message, size_t len);
+ unsigned char *message, size_t len, void *user_data);
/**
* @brief TODO: This callback is registered to wifi_aware handle, not publish/subscribe sessions
* @retval #WIFI_AWARE_ERROR_NONE
*/
int wifi_aware_set_received_message_cb(wifi_aware_h wifi_aware,
- wifi_aware_received_message_cb callback);
+ wifi_aware_received_message_cb callback, void *user_data);
// Can APIs to get peer information using wifi_aware_peer_h?
//
// What should be used for the first parameter???
+/*
typedef void(*wifi_aware_changed_mac_address_cb)(unsigned char *mac, size_t len);
int wifi_aware_set_changed_mac_address_cb(wifi_aware_h wifi_aware,
wifi_aware_changed_mac_address_cb callback);
+*/
/**
* @}
SET(WIFI_AWARE_SOURCES
${WIFI_AWARE_PATH}/wifi-aware.c
- ${WIFI_AWARE_PATH}/wifi-aware-config.c
- ${WIFI_AWARE_PATH}/wifi-aware-enable.c
${WIFI_AWARE_PATH}/wifi-aware-gdbus.c
${WIFI_AWARE_PATH}/wifi-aware-peer.c
- ${WIFI_AWARE_PATH}/wifi-aware-publish.c
${WIFI_AWARE_PATH}/wifi-aware-private.c
- ${WIFI_AWARE_PATH}/wifi-aware-subscribe.c
)
ADD_DEFINITIONS("-fvisibility=default")
} while (0)
+typedef enum {
+ SERVICE_DISCOVERED_SIGNAL = 0,
+} wifi_aware_signal_e;
+
int wifi_aware_gdbus_init();
int wifi_aware_gdbus_deinit();
-void wifi_aware_gdbus_register_signal();
+guint wifi_aware_gdbus_register_signal(wifi_aware_signal_e signal,
+ GDBusSignalCallback callback, void *user_data);
int wifi_aware_gdbus_enable(wifi_aware_h wifi_aware,
wifi_aware_enable_request_s *req, GAsyncReadyCallback cb);
extern "C" {
#endif
-int wifi_aware_peer_create(wifi_aware_peer_h *peer, unsigned int peer_id);
+int _wifi_aware_peer_create(wifi_aware_peer_h *peer, unsigned int peer_id);
#ifdef __cplusplus
}
#include <gio/gio.h>
#include "wifi-aware.h"
+#include "wifi-aware-config.h"
#include "wifi-aware-log.h"
#ifdef __cplusplus
#define WIFI_AWARE_HANDLE_UNLOCK
const char *_wifi_aware_convert_error_type_to_string(wifi_aware_error_e err);
-bool _wifi_aware_handle_is_valid(wifi_aware_h wifi_aware);
+
int _wifi_aware_handle_create(wifi_aware_h *wifi_aware);
int _wifi_aware_init();
-void _add_enabled_callback(wifi_aware_h wifi_aware,
- wifi_aware_enabled_cb callback, void *user_data);
-void _add_subscribed_callback(wifi_aware_h wifi_aware,
- wifi_aware_subscribed_cb, void *user_data);
+void _add_enabled_callback(wifi_aware_h wifi_aware, wifi_aware_enabled_cb callback, void *user_data);
int _wifi_aware_enable_request(wifi_aware_h wifi_aware);
-int _wifi_aware_publish_request(wifi_aware_h wifi_aware,
- wifi_aware_publish_h publish);
-int _wifi_aware_cancel_publish_request(wifi_aware_h wifi_aware, wifi_aware_publish_h publish);
-int _wifi_aware_update_publish_request(wifi_aware_h wifi_aware, wifi_aware_publish_h publish);
-int _wifi_aware_subscribe_request(wifi_aware_h wifi_aware, wifi_aware_subscribe_h subscribe);
-int _wifi_aware_update_subscribe_request(wifi_aware_h wifi_aware, wifi_aware_subscribe_h subscribe);
-int _wifi_aware_cancel_subscribe_request(wifi_aware_h wifi_aware, wifi_aware_subscribe_h subscribe);
-void _set_discovery_result_cb(wifi_aware_h wifi_aware,
- wifi_aware_discovery_result_cb callback, void *user_data);
+int _wifi_aware_publish_handle_create(wifi_aware_h wifi_aware, wifi_aware_publish_h *publish);
+void _wifi_aware_publish_request_set_default_values(wifi_aware_publish_h publish);
+void _wifi_aware_publish_set_ttl(wifi_aware_publish_h publish, unsigned short ttl);
+void _wifi_aware_publish_set_type(wifi_aware_publish_h publish,
+ wifi_aware_publish_type_e publish_type);
+void _wifi_aware_publish_set_service_name(wifi_aware_publish_h publish, const char *service_name);
+void _wifi_aware_publish_set_service_specific_info(wifi_aware_publish_h publish,
+ unsigned char *service_specific_info, size_t len);
+void _wifi_aware_publish_set_match_filter(wifi_aware_publish_h publish,
+ unsigned char *match_filter, size_t len);
+void _wifi_aware_publish_set_enable_termination_event(wifi_aware_publish_h publish, bool enable);
+void _wifi_aware_publish_set_enable_ranging(wifi_aware_publish_h publish, bool enable);
+int _wifi_aware_publish_request(wifi_aware_publish_h publish,
+ wifi_aware_published_cb callback, void *user_data);
+int _wifi_aware_cancel_publish_request(wifi_aware_publish_h publish);
+int _wifi_aware_update_publish_request(wifi_aware_publish_h publish,
+ wifi_aware_published_cb callback, void *user_data);
+wifi_aware_publish_request_s *_wifi_aware_publish_get_request(wifi_aware_publish_h publish_handle);
+unsigned int _wifi_aware_publish_get_id(wifi_aware_publish_h publish);
-void _mac_address_changed(GDBusConnection *connection,
- const gchar *object_path, GVariant *parameters);
-void _service_discovered(GDBusConnection *connection,
- const gchar *object_path, GVariant *parameters);
+int _wifi_aware_subscribe_handle_create(wifi_aware_h wifi_aware, wifi_aware_subscribe_h *subscribe);
+void _wifi_aware_subscribe_set_default_values(wifi_aware_subscribe_h subscribe);
+void _wifi_aware_subscribe_set_ttl(wifi_aware_subscribe_h subscribe, unsigned short ttl);
+void _wifi_aware_subscribe_set_type(wifi_aware_subscribe_h subscribe,
+ wifi_aware_subscribe_type_e subscribe_type);
+void _wifi_aware_subscribe_set_service_name(wifi_aware_subscribe_h subscribe, const char *service_name);
+void _wifi_aware_subscribe_set_service_specific_info(wifi_aware_subscribe_h subscribe,
+ unsigned char *service_specific_info, size_t len);
+void _wifi_aware_subscribe_set_match_filter(wifi_aware_subscribe_h subscribe,
+ unsigned char *match_filter, size_t len);
+void _wifi_aware_subscribe_set_enable_termination_event(wifi_aware_subscribe_h subscribe, bool enable);
+int _wifi_aware_subscribe_request(wifi_aware_subscribe_h subscribe,
+ wifi_aware_subscribed_cb callback, void *user_data);
+int _wifi_aware_cancel_subscribe_request(wifi_aware_subscribe_h subscribe);
+int _wifi_aware_update_subscribe_request(wifi_aware_subscribe_h subscribe,
+ wifi_aware_subscribed_cb callback, void *user_data);
+wifi_aware_subscribe_request_s *_wifi_aware_subscribe_get_request(wifi_aware_subscribe_h subscribe_handle);
+unsigned int _wifi_aware_subscribe_get_id(wifi_aware_subscribe_h subscribe);
+
+void _wifi_aware_set_discovery_result_cb(wifi_aware_subscribe_h subscribe,
+ wifi_aware_discovery_result_cb callback, void *user_data);
+//void _mac_address_changed(GDBusConnection *connection,
+// const gchar *object_path, GVariant *parameters);
#ifdef __cplusplus
}
+++ /dev/null
-/*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-#ifndef __TIZEN_NET_WIFI_AWARE_PUBLISH_PRIVATE_H__
-#define __TIZEN_NET_WIFI_AWARE_PUBLISH_PRIVATE_H__
-
-#include <tizen.h>
-#include <gio/gio.h>
-
-#include "wifi-aware.h"
-#include "wifi-aware-config.h"
-#include "wifi-aware-log.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-wifi_aware_publish_request_s *_wifi_aware_publish_get_request(wifi_aware_publish_h publish_handle);
-unsigned int _wifi_aware_publish_get_id(wifi_aware_publish_h publish);
-void _wifi_aware_publish_set_id(wifi_aware_publish_h publish_handle, unsigned int publish_id);
-void _wifi_aware_publish_invoke_callback(wifi_aware_error_e error, wifi_aware_publish_h publish_handle);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TIZEN_NET_WIFI_AWARE_PUBLISH_PRIVATE_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-#ifndef __TIZEN_NET_WIFI_AWARE_SUBSCRIBE_PRIVATE_H__
-#define __TIZEN_NET_WIFI_AWARE_SUBSCRIBE_PRIVATE_H__
-
-#include <tizen.h>
-#include <gio/gio.h>
-
-#include "wifi-aware.h"
-#include "wifi-aware-config.h"
-#include "wifi-aware-log.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-wifi_aware_subscribe_request_s *_wifi_aware_subscribe_get_request(wifi_aware_subscribe_h subscribe_handle);
-unsigned int _wifi_aware_subscribe_get_id(wifi_aware_subscribe_h subscribe);
-void _wifi_aware_subscribe_set_id(wifi_aware_subscribe_h subscribe_handle, unsigned int subscribe_id);
-void _wifi_aware_subscribe_invoke_callback(wifi_aware_error_e error, wifi_aware_subscribe_h subscribe_handle);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TIZEN_NET_WIFI_AWARE_SUBSCRIBE_PRIVATE_H__ */
} \
} while (0)
-
-#define RET_ERR_IF_HANDLE_IS_NOT_VALID_OR_NOT_INITIALIZED(arg)\
- do {\
- if (!arg) \
- return WIFI_AWARE_ERROR_INVALID_PARAMETER;\
- if (!_wifi_aware_handle_is_valid((arg))) {\
- __WIFI_AWARE_FUNC_EXIT__;\
- return WIFI_AWARE_ERROR_NOT_INITIALIZED;\
- } \
- } while (0)
-
#ifdef __cplusplus
}
#endif
+++ /dev/null
-/* Wi-Fi Aware connection module
- *
- * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <glib.h>
-
-#include "wifi-aware.h"
-#include "wifi-aware-log.h"
-#include "wifi-aware-utils.h"
-
-
+++ /dev/null
-/* Wi-Fi Aware
- *
- * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <glib.h>
-
-#include "wifi-aware.h"
-
-#include "wifi-aware-config.h"
-#include "wifi-aware-gdbus.h"
-#include "wifi-aware-log.h"
-#include "wifi-aware-private.h"
-#include "wifi-aware-utils.h"
-
-API int wifi_aware_enable(wifi_aware_h wifi_aware,
- wifi_aware_enabled_cb callback, void *user_data)
-{
- int ret = WIFI_AWARE_ERROR_NONE;
-
- __WIFI_AWARE_FUNC_ENTER__;
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_ERR_IF_HANDLE_IS_NOT_VALID_OR_NOT_INITIALIZED(wifi_aware);
-
- _add_enabled_callback(wifi_aware, callback, user_data);
-
- ret = _wifi_aware_enable_request(wifi_aware);
- RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_enable_request");
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
#include "wifi-aware-log.h"
#include "wifi-aware.h"
#include "wifi-aware-private.h"
-#include "wifi-aware-publish-private.h"
-#include "wifi-aware-subscribe-private.h"
#include "wifi-aware-utils.h"
#include "wifi-aware-gdbus.h"
typedef struct {
GDBusConnection *connection;
GCancellable *cancellable;
- guint signal_subscribe_id;
} wifi_aware_gdbus_data;
-static wifi_aware_gdbus_data gdbus_data = {NULL, NULL, -1};
+static wifi_aware_gdbus_data gdbus_data = {NULL, NULL};
static struct {
const char *interface;
const char *member;
- void (*function) (GDBusConnection *connection,
- const gchar *object_path,
- GVariant *parameters);
} wifi_aware_gdbus_signal_map[] = {
+ /*
{
WIFI_AWARE_DISCOVERY_INTERFACE,
"MacAddressChanged",
_mac_address_changed
},
- {
+ */
+ [SERVICE_DISCOVERED_SIGNAL] = {
WIFI_AWARE_DISCOVERY_INTERFACE,
"ServiceDiscovered",
- _service_discovered
},
- {
- NULL,
- NULL,
- NULL
- }
};
-static void __gdbus_signal_cb(GDBusConnection *connection,
- const gchar *sender, const gchar *object_path,
- const gchar *interface, const gchar *signal,
- GVariant *parameters, gpointer user_data)
-{
- int i = 0;
-
- WIFI_AWARE_LOGD("Signal Name [%s]", signal);
- DBUS_DEBUG_VARIANT(parameters);
-
- for (i = 0; wifi_aware_gdbus_signal_map[i].member != NULL; ++i) {
- if (!g_strcmp0(signal, wifi_aware_gdbus_signal_map[i].member) &&
- !g_strcmp0(interface, wifi_aware_gdbus_signal_map[i].interface) &&
- wifi_aware_gdbus_signal_map[i].function != NULL) {
- wifi_aware_gdbus_signal_map[i].function(connection, object_path, parameters);
- break;
- }
- }
-}
-
-void wifi_aware_gdbus_register_signal()
+guint wifi_aware_gdbus_register_signal(wifi_aware_signal_e signal,
+ GDBusSignalCallback callback, void *user_data)
{
__WIFI_AWARE_FUNC_ENTER__;
- gdbus_data.signal_subscribe_id = g_dbus_connection_signal_subscribe(
- gdbus_data.connection,
- WIFI_AWARE_INTERFACE,
- NULL,
- NULL,
- NULL,
- NULL,
- G_DBUS_SIGNAL_FLAGS_NONE,
- __gdbus_signal_cb,
- NULL,
- NULL);
-
- WIFI_AWARE_LOGI("Signal subscribe ID %u", gdbus_data.signal_subscribe_id);
- __WIFI_AWARE_FUNC_ENTER__;
+ return g_dbus_connection_signal_subscribe(
+ gdbus_data.connection,
+ WIFI_AWARE_INTERFACE,
+ wifi_aware_gdbus_signal_map[signal].interface,
+ wifi_aware_gdbus_signal_map[signal].member,
+ NULL,
+ NULL,
+ G_DBUS_SIGNAL_FLAGS_NONE,
+ callback,
+ user_data,
+ NULL);
}
int wifi_aware_gdbus_init(wifi_aware_h wifi_aware)
#include "wifi-aware-log.h"
#include "wifi-aware-peer.h"
-int wifi_aware_peer_create(wifi_aware_peer_h *peer, unsigned int peer_id)
+int _wifi_aware_peer_create(wifi_aware_peer_h *peer, unsigned int peer_id)
{
// Check peer_id validation
return WIFI_AWARE_ERROR_NONE;
#include "wifi-aware-log.h"
#include "wifi-aware-peer.h"
#include "wifi-aware-private.h"
-#include "wifi-aware-publish-private.h"
-#include "wifi-aware-subscribe-private.h"
#include "wifi-aware-utils.h"
-typedef struct {
- int client_id;
- wifi_aware_enabled_cb enabled_cb;
- void *enabled_cb_data;
- wifi_aware_published_cb published_cb;
- void *published_cb_data;
- wifi_aware_subscribed_cb subscribed_cb;
- void *subscribed_cb_data;
-
- wifi_aware_discovery_result_cb discovered_cb;
- void *discovered_cb_data;
-} wifi_aware_s;
-
/**
* These enum values has dependency with nan-manager daemon.
* If the daemon changes error enum, It also must be changed.
NAN_ERROR_UNKNOWN,
} nan_manager_error_e;
+typedef struct {
+ int client_id;
+ wifi_aware_enabled_cb enabled_cb;
+ void *enabled_cb_data;
+} wifi_aware_s;
+
+typedef struct {
+ wifi_aware_s *aware_handle;
+ uint32_t publish_id;
+ wifi_aware_publish_request_s req;
+
+ wifi_aware_published_cb published_cb;
+ void *published_cb_data;
+} wifi_aware_publish_s;
+
+typedef struct {
+ wifi_aware_s *aware_handle;
+ uint32_t subscribe_id;
+ wifi_aware_subscribe_request_s req;
+
+ wifi_aware_subscribed_cb subscribed_cb;
+ void *subscribed_cb_data;
+
+ wifi_aware_discovery_result_cb discovered_cb;
+ void *discovered_cb_data;
+ guint discovered_signal_id;
+} wifi_aware_subscribe_s;
+
static bool __is_init = false;
static GList *__wifi_aware_handle_list = NULL;
return true;
}
-static int __get_client_id(wifi_aware_h wifi_aware)
+static int __get_client_id_with_publish(wifi_aware_publish_h publish)
{
- wifi_aware_s *aware = (wifi_aware_s *)wifi_aware;
- return aware->client_id;
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ return handle->aware_handle->client_id;
+}
+
+static int __get_client_id_with_subscribe(wifi_aware_subscribe_h subscribe)
+{
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
+ return handle->aware_handle->client_id;
}
static wifi_aware_error_e __parse_enable_reply(GVariant *reply, wifi_aware_s *aware)
aware->enabled_cb(error, aware->enabled_cb_data);
}
+static void __add_published_callback(wifi_aware_publish_h publish,
+ wifi_aware_published_cb callback, void *user_data)
+{
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ handle->published_cb = callback;
+ handle->published_cb_data = user_data;
+}
+
+static void __wifi_aware_publish_set_id(wifi_aware_publish_h publish, unsigned int publish_id)
+{
+ RET_IF(publish == NULL, "wifi_aware_publish_h is NULL");
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ handle->publish_id = publish_id;
+}
+
+static void __wifi_aware_publish_invoke_callback(wifi_aware_error_e error, wifi_aware_publish_h publish)
+{
+ RET_IF(publish == NULL, "wifi_aware_publish_h is NULL");
+
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ if (handle->published_cb)
+ handle->published_cb(error, publish, handle->published_cb_data);
+}
+
static void __publish_request_reply(GObject *src, GAsyncResult *res, gpointer user_data)
{
GDBusConnection *conn = NULL;
WIFI_AWARE_LOGI("Publish ID: %u, error: %d", publish_id, error);
}
- _wifi_aware_publish_set_id(publish, publish_id);
- _wifi_aware_publish_invoke_callback(
+ __wifi_aware_publish_set_id(publish, publish_id);
+ __wifi_aware_publish_invoke_callback(
_wifi_aware_convert_nan_manager_error(error),
publish);
}
+static void __add_subscribed_callback(wifi_aware_subscribe_h subscribe,
+ wifi_aware_subscribed_cb callback, void *user_data)
+{
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
+ handle->subscribed_cb = callback;
+ handle->subscribed_cb_data = user_data;
+}
+
+static void __wifi_aware_subscribe_invoke_callback(wifi_aware_error_e error, wifi_aware_subscribe_h subscribe)
+{
+ RET_IF(subscribe == NULL, "wifi_aware_subscribe_h is NULL");
+
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
+ if (handle->subscribed_cb)
+ handle->subscribed_cb(error, subscribe, handle->subscribed_cb_data);
+}
+
+static void __wifi_aware_subscribe_set_id(wifi_aware_subscribe_h subscribe, unsigned int subscribe_id)
+{
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
+ handle->subscribe_id = subscribe_id;
+}
+
+wifi_aware_subscribe_request_s *_wifi_aware_subscribe_get_request(wifi_aware_subscribe_h subscribe)
+{
+ RET_VAL_IF(subscribe == NULL, NULL, "wifi_aware_subscribe_h is NULL");
+
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
+ return &(handle->req);
+}
+
static void __subscribe_request_reply(GObject *src, GAsyncResult *res, gpointer user_data)
{
GDBusConnection *conn = NULL;
WIFI_AWARE_LOGI("Subscribe ID: %u, error: %d", subscribe_id, error);
}
- _wifi_aware_subscribe_set_id(subscribe, subscribe_id);
- _wifi_aware_subscribe_invoke_callback(
+ __wifi_aware_subscribe_set_id(subscribe, subscribe_id);
+ __wifi_aware_subscribe_invoke_callback(
_wifi_aware_convert_nan_manager_error(error),
subscribe);
}
ret = wifi_aware_gdbus_init();
RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "wifi_aware_gdbus_init() failed");
- wifi_aware_gdbus_register_signal();
__is_init = true;
return WIFI_AWARE_ERROR_NONE;
aware->enabled_cb_data = user_data;
}
-void _add_subscribed_callback(wifi_aware_h wifi_aware,
- wifi_aware_subscribed_cb callback, void *user_data)
-{
- wifi_aware_s *aware = (wifi_aware_s *)wifi_aware;
- aware->subscribed_cb = callback;
- aware->subscribed_cb_data = user_data;
-}
-
static void __wifi_aware_enable_request_set_default_values(wifi_aware_enable_request_s *req)
{
req->master_pref = 0x2;
return wifi_aware_gdbus_enable(wifi_aware, req, __enable_request_reply);
}
-int _wifi_aware_publish_request(wifi_aware_h wifi_aware,
- wifi_aware_publish_h publish)
+int _wifi_aware_publish_handle_create(wifi_aware_h wifi_aware, wifi_aware_publish_h *publish)
+{
+ wifi_aware_s *handle = (wifi_aware_s *)wifi_aware;
+ wifi_aware_publish_s *pub_handle =
+ (wifi_aware_publish_s *)g_try_malloc0(sizeof(wifi_aware_publish_s));
+ RET_VAL_IF(pub_handle == NULL, WIFI_AWARE_ERROR_OUT_OF_MEMORY, "Out of memory");
+
+ pub_handle->aware_handle = handle;
+ *publish = (wifi_aware_publish_h)pub_handle;
+
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+void _wifi_aware_publish_request_set_default_values(wifi_aware_publish_h publish)
{
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ handle->req.ttl = 0;
+ handle->req.publish_type = WIFI_AWARE_PUBLISH_TYPE_UNSOLICITED;
+ //memset(req->specific_info[WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN], 0, WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN);
+ handle->req.specific_info_len = 0;
+ //memset(req->match_filter[WIFI_AWARE_MAX_MATCH_FILTER_LEN], 0, WIFI_AWARE_MAX_MATCH_FILTER_LEN);
+ handle->req.match_filter_len = 0;
+ handle->req.enable_termination_event = false;
+ handle->req.enable_ranging = false;
+}
+
+void _wifi_aware_publish_set_ttl(wifi_aware_publish_h publish, unsigned short ttl)
+{
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ handle->req.ttl = ttl;
+}
+
+void _wifi_aware_publish_set_type(wifi_aware_publish_h publish,
+ wifi_aware_publish_type_e publish_type)
+{
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ handle->req.publish_type = publish_type;
+
+}
+
+void _wifi_aware_publish_set_service_name(wifi_aware_publish_h publish, const char *service_name)
+{
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ strncpy(handle->req.service_name, service_name, WIFI_AWARE_MAX_SERVICE_NAME_LEN);
+}
+
+void _wifi_aware_publish_set_service_specific_info(wifi_aware_publish_h publish,
+ unsigned char *service_specific_info, size_t len)
+{
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ memcpy(handle->req.specific_info, service_specific_info, len);
+ handle->req.specific_info_len = len;
+}
+
+void _wifi_aware_publish_set_match_filter(wifi_aware_publish_h publish,
+ unsigned char *match_filter, size_t len)
+{
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ memcpy(handle->req.match_filter, match_filter, len);
+ handle->req.match_filter_len = len;
+}
+
+void _wifi_aware_publish_set_enable_termination_event(wifi_aware_publish_h publish, bool enable)
+{
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ handle->req.enable_termination_event = enable;
+}
+
+void _wifi_aware_publish_set_enable_ranging(wifi_aware_publish_h publish, bool enable)
+{
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ handle->req.enable_ranging = enable;
+}
+
+wifi_aware_publish_request_s *_wifi_aware_publish_get_request(wifi_aware_publish_h publish)
+{
+ RET_VAL_IF(publish == NULL, NULL, "wifi_aware_publish_h is NULL");
+
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ return &(handle->req);
+}
+
+unsigned int _wifi_aware_publish_get_id(wifi_aware_publish_h publish)
+{
+ RET_VAL_IF(publish == NULL, 0, "wifi_aware_publish_h is NULL");
+
+ wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
+ return handle->publish_id;
+}
+
+int _wifi_aware_publish_request(wifi_aware_publish_h publish,
+ wifi_aware_published_cb callback, void *user_data)
+{
+ __add_published_callback(publish, callback, user_data);
+
return wifi_aware_gdbus_publish(publish,
- __get_client_id(wifi_aware),
+ __get_client_id_with_publish(publish),
__publish_request_reply);
}
-int _wifi_aware_cancel_publish_request(wifi_aware_h wifi_aware,
- wifi_aware_publish_h publish)
+int _wifi_aware_cancel_publish_request(wifi_aware_publish_h publish)
{
return wifi_aware_gdbus_cancel_publish(publish,
- __get_client_id(wifi_aware));
+ __get_client_id_with_publish(publish));
}
-int _wifi_aware_update_publish_request(wifi_aware_h wifi_aware,
- wifi_aware_publish_h publish)
+int _wifi_aware_update_publish_request(wifi_aware_publish_h publish,
+ wifi_aware_published_cb callback, void *user_data)
{
+ __add_published_callback(publish, callback, user_data);
+
return wifi_aware_gdbus_update_publish(publish,
- __get_client_id(wifi_aware),
+ __get_client_id_with_publish(publish),
__publish_request_reply);
}
-int _wifi_aware_subscribe_request(wifi_aware_h wifi_aware,
- wifi_aware_subscribe_h subscribe)
+
+int _wifi_aware_subscribe_handle_create(wifi_aware_h wifi_aware, wifi_aware_subscribe_h *subscribe)
{
- return wifi_aware_gdbus_subscribe(subscribe,
- __get_client_id(wifi_aware),
- __subscribe_request_reply);
+ wifi_aware_s *handle = (wifi_aware_s *)wifi_aware;
+ wifi_aware_subscribe_s *sub_handle =
+ (wifi_aware_subscribe_s *)g_try_malloc0(sizeof(wifi_aware_subscribe_s));
+ RET_VAL_IF(sub_handle == NULL, WIFI_AWARE_ERROR_OUT_OF_MEMORY, "Out of memory");
+
+ sub_handle->aware_handle = handle;
+ *subscribe = (wifi_aware_subscribe_h)sub_handle;
+
+ return WIFI_AWARE_ERROR_NONE;
}
-int _wifi_aware_cancel_subscribe_request(wifi_aware_h wifi_aware,
+void _wifi_aware_subscribe_set_default_values(
wifi_aware_subscribe_h subscribe)
{
- return wifi_aware_gdbus_cancel_subscribe(subscribe,
- __get_client_id(wifi_aware));
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
+ handle->req.ttl = 0;
+ handle->req.subscribe_type = WIFI_AWARE_SUBSCRIBE_TYPE_PASSIVE;
+ //memset(req->specific_info[WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN], 0, WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN);
+ handle->req.specific_info_len = 0;
+ //memset(req->match_filter[WIFI_AWARE_MAX_MATCH_FILTER_LEN], 0, WIFI_AWARE_MAX_MATCH_FILTER_LEN);
+ handle->req.match_filter_len = 0;
+ handle->req.enable_termination_event = false;
}
-int _wifi_aware_update_subscribe_request(wifi_aware_h wifi_aware,
- wifi_aware_subscribe_h subscribe)
+void _wifi_aware_subscribe_set_ttl(wifi_aware_subscribe_h subscribe, unsigned short ttl)
{
- return wifi_aware_gdbus_update_subscribe(subscribe,
- __get_client_id(wifi_aware),
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
+ handle->req.ttl = ttl;
+}
+
+void _wifi_aware_subscribe_set_type(wifi_aware_subscribe_h subscribe,
+ wifi_aware_subscribe_type_e subscribe_type)
+{
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
+ handle->req.subscribe_type = subscribe_type;
+
+}
+
+void _wifi_aware_subscribe_set_service_name(wifi_aware_subscribe_h subscribe, const char *service_name)
+{
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
+ strncpy(handle->req.service_name, service_name, WIFI_AWARE_MAX_SERVICE_NAME_LEN);
+}
+
+void _wifi_aware_subscribe_set_service_specific_info(wifi_aware_subscribe_h subscribe,
+ unsigned char *service_specific_info, size_t len)
+{
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
+ memcpy(handle->req.specific_info, service_specific_info, len);
+ handle->req.specific_info_len = len;
+
+}
+
+void _wifi_aware_subscribe_set_match_filter(wifi_aware_subscribe_h subscribe,
+ unsigned char *match_filter, size_t len)
+{
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
+ memcpy(handle->req.match_filter, match_filter, len);
+ handle->req.match_filter_len = len;
+}
+
+void _wifi_aware_subscribe_set_enable_termination_event(wifi_aware_subscribe_h subscribe, bool enable)
+{
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
+ handle->req.enable_termination_event = enable;
+}
+
+unsigned int _wifi_aware_subscribe_get_id(wifi_aware_subscribe_h subscribe)
+{
+ RET_VAL_IF(subscribe == NULL, 0, "wifi_aware_subscribe_h is NULL");
+
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
+ return handle->subscribe_id;
+}
+
+int _wifi_aware_subscribe_request(wifi_aware_subscribe_h subscribe,
+ wifi_aware_subscribed_cb callback, void *user_data)
+{
+ __add_subscribed_callback(subscribe, callback, user_data);
+
+ return wifi_aware_gdbus_subscribe(subscribe,
+ __get_client_id_with_subscribe(subscribe),
__subscribe_request_reply);
}
-void _set_discovery_result_cb(wifi_aware_h wifi_aware,
- wifi_aware_discovery_result_cb callback, void *user_data)
+int _wifi_aware_cancel_subscribe_request(wifi_aware_subscribe_h subscribe)
{
- __WIFI_AWARE_FUNC_ENTER__;
+ return wifi_aware_gdbus_cancel_subscribe(subscribe,
+ __get_client_id_with_subscribe(subscribe));
+}
- wifi_aware_s *aware = (wifi_aware_s *)wifi_aware;
+int _wifi_aware_update_subscribe_request(wifi_aware_subscribe_h subscribe,
+ wifi_aware_subscribed_cb callback, void *user_data)
+{
+ __add_subscribed_callback(subscribe, callback, user_data);
- aware->discovered_cb = callback;
- aware->discovered_cb_data = user_data;
+ return wifi_aware_gdbus_update_subscribe(subscribe,
+ __get_client_id_with_subscribe(subscribe),
+ __subscribe_request_reply);
}
+/*
void _mac_address_changed(GDBusConnection *connection,
const gchar *object_path, GVariant *parameters)
{
__WIFI_AWARE_FUNC_ENTER__;
WIFI_AWARE_LOGD("MAC Address is changed");
}
+*/
static void __parsing_service_discovered_event(GVariant *parameters,
unsigned int *sub_id, unsigned int *peer_id,
memcpy(specific_info, info_value, *specific_info_len);
}
-void _service_discovered(GDBusConnection *connection,
- const gchar *object_path, GVariant *parameters)
+static void __service_discovered_cb(GDBusConnection *connection,
+ const gchar *sender, const gchar *object_path,
+ const gchar *interface, const gchar *signal,
+ GVariant *parameters, gpointer user_data)
{
__WIFI_AWARE_FUNC_ENTER__;
unsigned char *specific_info = NULL;
size_t specific_info_len = 0;
- wifi_aware_h peer = NULL;
- GList *list;
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)user_data;
+ wifi_aware_peer_h peer = NULL;
+
+ RET_IF(handle == NULL, "wifi_aware_subscribe_h is NULL");
__parsing_service_discovered_event(parameters,
&sub_id, &peer_id,
specific_info, &specific_info_len);
- if (sub_id == 0) {
- WIFI_AWARE_LOGE("Invalid subscribe ID");
+ if (sub_id == 0 || handle->subscribe_id != sub_id) {
+ WIFI_AWARE_LOGE("Invalid subscribe ID (%u:%u)", handle->subscribe_id, sub_id);
return;
}
WIFI_AWARE_LOGD("Peer ID: %u", peer_id);
- if (wifi_aware_peer_create(&peer, peer_id) != WIFI_AWARE_ERROR_NONE) {
+ if (_wifi_aware_peer_create(&peer, peer_id) != WIFI_AWARE_ERROR_NONE) {
WIFI_AWARE_LOGE("Fail to create peer");
return;
}
// TODO: Add peer list to wifi_aware_s
- // TODO: Need to consider thread safety
- for (list = __wifi_aware_handle_list; list; list = list->next) {
- wifi_aware_s *aware = (wifi_aware_s *)list;
- if (aware->discovered_cb)
- aware->discovered_cb(sub_id, peer,
- specific_info, specific_info_len,
- aware->discovered_cb_data);
- }
+ if (handle->discovered_cb)
+ handle->discovered_cb(handle, peer,
+ specific_info, specific_info_len,
+ handle->discovered_cb_data);
+}
+
+void _wifi_aware_set_discovery_result_cb(wifi_aware_subscribe_h subscribe,
+ wifi_aware_discovery_result_cb callback, void *user_data)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+
+ wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
+ handle->discovered_cb = callback;
+ handle->discovered_cb_data = user_data;
+ handle->discovered_signal_id =
+ wifi_aware_gdbus_register_signal(SERVICE_DISCOVERED_SIGNAL,
+ __service_discovered_cb, handle);
}
+++ /dev/null
-/* Wi-Fi Aware
- *
- * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/**
- * This file implements Wi-Fi Aware user library.
- *
- * @file wifi-aware-client.c
- * @author Jiung Yu (jiung.yu@samsung.com)
- */
-
-
-#include <glib.h>
-
-#include "wifi-aware.h"
-
-#include "wifi-aware-config.h"
-#include "wifi-aware-gdbus.h"
-#include "wifi-aware-log.h"
-#include "wifi-aware-private.h"
-#include "wifi-aware-publish-private.h"
-#include "wifi-aware-utils.h"
-
-typedef struct {
- uint32_t publish_id;
- wifi_aware_publish_request_s req;
-
- wifi_aware_published_cb published_cb;
- void *published_cb_data;
-} wifi_aware_publish_s;
-
-static void __add_published_callback(wifi_aware_publish_h publish,
- wifi_aware_published_cb callback, void *user_data)
-{
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- handle->published_cb = callback;
- handle->published_cb_data = user_data;
-}
-
-static void _wifi_aware_publish_request_set_default_values(wifi_aware_publish_request_s *req)
-{
- req->ttl = 0;
- req->publish_type = WIFI_AWARE_PUBLISH_TYPE_UNSOLICITED;
- //memset(req->specific_info[WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN], 0, WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN);
- req->specific_info_len = 0;
- //memset(req->match_filter[WIFI_AWARE_MAX_MATCH_FILTER_LEN], 0, WIFI_AWARE_MAX_MATCH_FILTER_LEN);
- req->match_filter_len = 0;
- req->enable_termination_event = false;
- req->enable_ranging = false;
-}
-
-wifi_aware_publish_request_s *_wifi_aware_publish_get_request(wifi_aware_publish_h publish)
-{
- RET_VAL_IF(publish == NULL, NULL, "wifi_aware_publish_h is NULL");
-
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- return &(handle->req);
-}
-
-unsigned int _wifi_aware_publish_get_id(wifi_aware_publish_h publish)
-{
- RET_VAL_IF(publish == NULL, 0, "wifi_aware_publish_h is NULL");
-
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- return handle->publish_id;
-}
-
-void _wifi_aware_publish_invoke_callback(wifi_aware_error_e error, wifi_aware_publish_h publish)
-{
- RET_IF(publish == NULL, "wifi_aware_publish_h is NULL");
-
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- if (handle->published_cb)
- handle->published_cb(error, publish, handle->published_cb_data);
-}
-
-void _wifi_aware_publish_set_id(wifi_aware_publish_h publish, unsigned int publish_id)
-{
- RET_IF(publish == NULL, "wifi_aware_publish_h is NULL");
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- handle->publish_id = publish_id;
-}
-
-API int wifi_aware_publish_create(wifi_aware_publish_h *publish)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
-
- wifi_aware_publish_s *handle =
- (wifi_aware_publish_s *)g_try_malloc0(sizeof(wifi_aware_publish_s));
- RET_VAL_IF(handle == NULL, WIFI_AWARE_ERROR_OUT_OF_MEMORY, "Out of memory");
-
- _wifi_aware_publish_request_set_default_values(&handle->req);
-
- *publish = (wifi_aware_publish_h)handle;
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_publish_destroy(wifi_aware_publish_h publish)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
-
- g_free(publish);
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_publish_set_ttl(wifi_aware_publish_h publish, unsigned short ttl)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
-
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- handle->req.ttl = ttl;
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_publish_set_type(wifi_aware_publish_h publish,
- wifi_aware_publish_type_e publish_type)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
-
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- handle->req.publish_type = publish_type;
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_publish_set_service_name(wifi_aware_publish_h publish,
- const char *service_name)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- int len = 0;
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
-
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- len = strlen(service_name);
- if (len > WIFI_AWARE_MAX_SERVICE_NAME_LEN) {
- WIFI_AWARE_LOGE("The length of service_name should be equal to or less than %d",
- WIFI_AWARE_MAX_SERVICE_NAME_LEN);
- return WIFI_AWARE_ERROR_INVALID_PARAMETER;
- }
-
- strncpy(handle->req.service_name, service_name, WIFI_AWARE_MAX_SERVICE_NAME_LEN);
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_publish_set_service_specific_info(wifi_aware_publish_h publish,
- unsigned char *service_specific_info, size_t len)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
-
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- memcpy(handle->req.specific_info, service_specific_info, len);
- handle->req.specific_info_len = len;
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_publish_set_match_filter(wifi_aware_publish_h publish,
- unsigned char *match_filter, size_t len)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
-
- // TODO: Check if len is valid
-
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- memcpy(handle->req.match_filter, match_filter, len);
- handle->req.match_filter_len = len;
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_publish_set_enable_termination_event(
- wifi_aware_publish_h publish,
- bool enable)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
-
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- handle->req.enable_termination_event = enable;
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_publish_set_enable_ranging(
- wifi_aware_publish_h publish,
- bool enable)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
-
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- handle->req.enable_ranging = enable;
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_start_publish(wifi_aware_h wifi_aware,
- wifi_aware_publish_h publish,
- wifi_aware_published_cb callback, void *user_data)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- int ret = WIFI_AWARE_ERROR_NONE;
-
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_ERR_IF_HANDLE_IS_NOT_VALID_OR_NOT_INITIALIZED(wifi_aware);
- RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
-
- __add_published_callback(publish, callback, user_data);
-
- ret = _wifi_aware_publish_request(wifi_aware, publish);
- RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_publish_request");
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_cancel_publish(wifi_aware_h wifi_aware, wifi_aware_publish_h publish)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- int ret = WIFI_AWARE_ERROR_NONE;
-
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_ERR_IF_HANDLE_IS_NOT_VALID_OR_NOT_INITIALIZED(wifi_aware);
- RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
-
- ret = _wifi_aware_cancel_publish_request(wifi_aware, publish);
- RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_cancel_publish_request");
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_update_publish(wifi_aware_h wifi_aware,
- wifi_aware_publish_h publish,
- wifi_aware_published_cb callback, void *user_data)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- int ret = WIFI_AWARE_ERROR_NONE;
-
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_ERR_IF_HANDLE_IS_NOT_VALID_OR_NOT_INITIALIZED(wifi_aware);
- RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
-
- __add_published_callback(publish, callback, user_data);
-
- ret = _wifi_aware_update_publish_request(wifi_aware, publish);
- RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_update_publish_request");
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
+++ /dev/null
-/* Wi-Fi Aware
- *
- * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/**
- * This file implements Wi-Fi Aware user library.
- *
- * @file wifi-aware-client.c
- * @author Jiung Yu (jiung.yu@samsung.com)
- */
-
-
-#include <glib.h>
-
-#include "wifi-aware.h"
-
-#include "wifi-aware-handle.h"
-#include "wifi-aware-gdbus.h"
-#include "wifi-aware-log.h"
-#include "wifi-aware-private.h"
-#include "wifi-aware-subscribe-private.h"
-#include "wifi-aware-utils.h"
-
-typedef struct {
- uint32_t subscribe_id;
- wifi_aware_subscribe_request_s req;
-
- wifi_aware_subscribed_cb subscribed_cb;
- void *subscribed_cb_data;
-} wifi_aware_subscribe_s;
-
-static void __add_subscribed_callback(wifi_aware_subscribe_h subscribe,
- wifi_aware_subscribed_cb callback, void *user_data)
-{
- wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
- handle->subscribed_cb = callback;
- handle->subscribed_cb_data = user_data;
-}
-
-static void __wifi_aware_subscribe_set_default_values(
- wifi_aware_subscribe_request_s *req)
-{
- req->ttl = 0;
- req->subscribe_type = WIFI_AWARE_SUBSCRIBE_TYPE_PASSIVE;
- //memset(req->specific_info[WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN], 0, WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN);
- req->specific_info_len = 0;
- //memset(req->match_filter[WIFI_AWARE_MAX_MATCH_FILTER_LEN], 0, WIFI_AWARE_MAX_MATCH_FILTER_LEN);
- req->match_filter_len = 0;
- req->enable_termination_event = false;
-}
-
-wifi_aware_subscribe_request_s *_wifi_aware_subscribe_get_request(wifi_aware_subscribe_h subscribe)
-{
- RET_VAL_IF(subscribe == NULL, NULL, "wifi_aware_subscribe_h is NULL");
-
- wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
- return &(handle->req);
-}
-
-unsigned int _wifi_aware_subscribe_get_id(wifi_aware_subscribe_h subscribe)
-{
- RET_VAL_IF(subscribe == NULL, 0, "wifi_aware_subscribe_h is NULL");
-
- wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
- return handle->subscribe_id;
-}
-
-void _wifi_aware_subscribe_invoke_callback(wifi_aware_error_e error, wifi_aware_subscribe_h subscribe)
-{
- RET_IF(subscribe == NULL, "wifi_aware_subscribe_h is NULL");
-
- wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
- if (handle->subscribed_cb)
- handle->subscribed_cb(error, subscribe, handle->subscribed_cb_data);
-}
-
-void _wifi_aware_subscribe_set_id(wifi_aware_subscribe_h subscribe, unsigned int subscribe_id)
-{
- RET_IF(subscribe == NULL, "wifi_aware_subscribe_h is NULL");
- wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
- handle->subscribe_id = subscribe_id;
-}
-
-API int wifi_aware_subscribe_create(
- wifi_aware_subscribe_h *subscribe)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
-
- wifi_aware_subscribe_s *handle =
- (wifi_aware_subscribe_s *) g_try_malloc0(sizeof(wifi_aware_subscribe_s));
- RET_VAL_IF(handle == NULL, WIFI_AWARE_ERROR_OUT_OF_MEMORY, "Out of memory");
-
- __wifi_aware_subscribe_set_default_values(&handle->req);
-
- *subscribe = (wifi_aware_subscribe_h)handle;
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_subscribe_destroy(
- wifi_aware_subscribe_h subscribe)
-{
- __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");
-
- g_free(subscribe);
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_subscribe_set_ttl(
- wifi_aware_subscribe_h subscribe,
- unsigned short ttl)
-{
- __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_s *handle = (wifi_aware_subscribe_s *)subscribe;
- handle->req.ttl = ttl;
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_subscribe_set_type(
- wifi_aware_subscribe_h subscribe,
- wifi_aware_subscribe_type_e subscribe_type)
-{
- __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_s *handle = (wifi_aware_subscribe_s *)subscribe;
- handle->req.subscribe_type = subscribe_type;
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_subscribe_set_service_name(
- wifi_aware_subscribe_h subscribe,
- const char *service_name)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- int len = 0;
- 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_s *handle = (wifi_aware_subscribe_s *)subscribe;
- len = strlen(service_name);
- if (len > WIFI_AWARE_MAX_SERVICE_NAME_LEN) {
- WIFI_AWARE_LOGE("The length of service_name should be equal to or less than %d",
- WIFI_AWARE_MAX_SERVICE_NAME_LEN);
- return WIFI_AWARE_ERROR_INVALID_PARAMETER;
- }
-
- strncpy(handle->req.service_name, service_name, WIFI_AWARE_MAX_SERVICE_NAME_LEN);
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_subscribe_set_service_specific_info(
- wifi_aware_subscribe_h subscribe,
- unsigned char *service_specific_info, size_t len)
-{
- __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_s *handle = (wifi_aware_subscribe_s *)subscribe;
- memcpy(handle->req.specific_info, service_specific_info, len);
- handle->req.specific_info_len = len;
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_subscribe_set_match_filter(
- wifi_aware_subscribe_h subscribe,
- unsigned char *match_filter, size_t len)
-{
- __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_s *handle = (wifi_aware_subscribe_s *)subscribe;
- memcpy(handle->req.match_filter, match_filter, len);
- handle->req.match_filter_len = len;
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_subscribe_set_enable_termination_event(
- wifi_aware_subscribe_h subscribe,
- bool enable)
-{
- __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_s *handle = (wifi_aware_subscribe_s *)subscribe;
- handle->req.enable_termination_event = enable;
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_start_subscribe(wifi_aware_h wifi_aware,
- wifi_aware_subscribe_h subscribe,
- wifi_aware_subscribed_cb callback, void *user_data)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- int ret = WIFI_AWARE_ERROR_NONE;
-
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_ERR_IF_HANDLE_IS_NOT_VALID_OR_NOT_INITIALIZED(wifi_aware);
- RET_VAL_IF(subscribe == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_subscribe_h is NULL");
-
- __add_subscribed_callback(wifi_aware, callback, user_data);
-
- ret = _wifi_aware_subscribe_request(wifi_aware, subscribe);
- RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_subscribe_request");
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_cancel_subscribe(wifi_aware_h wifi_aware, wifi_aware_subscribe_h subscribe)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- int ret = WIFI_AWARE_ERROR_NONE;
-
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_ERR_IF_HANDLE_IS_NOT_VALID_OR_NOT_INITIALIZED(wifi_aware);
-
- ret = _wifi_aware_cancel_subscribe_request(wifi_aware, subscribe);
- RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_cancel_subscribe_request");
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_update_subscribe(wifi_aware_h wifi_aware,
- wifi_aware_subscribe_h subscribe,
- wifi_aware_subscribed_cb callback, void *user_data)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- int ret = WIFI_AWARE_ERROR_NONE;
-
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_ERR_IF_HANDLE_IS_NOT_VALID_OR_NOT_INITIALIZED(wifi_aware);
- RET_VAL_IF(subscribe == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_subscribe_h is NULL");
-
- __add_subscribed_callback(subscribe, callback, user_data);
-
- ret = _wifi_aware_update_subscribe_request(wifi_aware, subscribe);
- RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_update_subscribe_request");
-
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
-
-API int wifi_aware_set_discovery_result_cb(wifi_aware_h wifi_aware,
- wifi_aware_discovery_result_cb callback, void *user_data)
-{
- __WIFI_AWARE_FUNC_ENTER__;
- CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_ERR_IF_HANDLE_IS_NOT_VALID_OR_NOT_INITIALIZED(wifi_aware);
-
- _set_discovery_result_cb(wifi_aware, callback, user_data);
- __WIFI_AWARE_FUNC_EXIT__;
- return WIFI_AWARE_ERROR_NONE;
-}
return WIFI_AWARE_ERROR_NONE;
}
-API int wifi_aware_send_message(wifi_aware_h wifi_aware,
- wifi_aware_peer_h peer, unsigned char *message, size_t len)
+API int wifi_aware_enable(wifi_aware_h wifi_aware,
+ wifi_aware_enabled_cb callback, void *user_data)
+{
+ int ret = WIFI_AWARE_ERROR_NONE;
+
+ __WIFI_AWARE_FUNC_ENTER__;
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+
+ _add_enabled_callback(wifi_aware, callback, user_data);
+
+ ret = _wifi_aware_enable_request(wifi_aware);
+ RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_enable_request");
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_publish_create(wifi_aware_h wifi_aware, wifi_aware_publish_h *publish)
+{
+ int ret = WIFI_AWARE_ERROR_NONE;
+
+ __WIFI_AWARE_FUNC_ENTER__;
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+
+ ret = _wifi_aware_publish_handle_create(wifi_aware, publish);
+ RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "Fail to create publish handle");
+
+ _wifi_aware_publish_request_set_default_values(publish);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_publish_destroy(wifi_aware_publish_h publish)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+ RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
+
+ g_free(publish);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_publish_set_ttl(wifi_aware_publish_h publish, unsigned short ttl)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+ RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
+
+ _wifi_aware_publish_set_ttl(publish, ttl);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_publish_set_type(wifi_aware_publish_h publish,
+ wifi_aware_publish_type_e publish_type)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+ RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
+
+ _wifi_aware_publish_set_type(publish, publish_type);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_publish_set_service_name(wifi_aware_publish_h publish,
+ const char *service_name)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ int len = 0;
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+ RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
+
+ len = strlen(service_name);
+ if (len > WIFI_AWARE_MAX_SERVICE_NAME_LEN) {
+ WIFI_AWARE_LOGE("The length of service_name should be equal to or less than %d",
+ WIFI_AWARE_MAX_SERVICE_NAME_LEN);
+ return WIFI_AWARE_ERROR_INVALID_PARAMETER;
+ }
+
+ _wifi_aware_publish_set_service_name(publish, service_name);
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_publish_set_service_specific_info(wifi_aware_publish_h publish,
+ unsigned char *service_specific_info, size_t len)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+ RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
+
+ if (len > WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN) {
+ WIFI_AWARE_LOGE("The length of service_specific_info should be equal to or less than %d",
+ WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN);
+ return WIFI_AWARE_ERROR_INVALID_PARAMETER;
+ }
+
+ _wifi_aware_publish_set_service_specific_info(publish, service_specific_info, len);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_publish_set_match_filter(wifi_aware_publish_h publish,
+ unsigned char *match_filter, size_t len)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+ RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
+
+ if (len > WIFI_AWARE_MAX_MATCH_FILTER_LEN) {
+ WIFI_AWARE_LOGE("The length of match_filter should be equal to or less than %d",
+ WIFI_AWARE_MAX_MATCH_FILTER_LEN);
+ return WIFI_AWARE_ERROR_INVALID_PARAMETER;
+ }
+
+ _wifi_aware_publish_set_match_filter(publish, match_filter, len);
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_publish_set_enable_termination_event(
+ wifi_aware_publish_h publish,
+ bool enable)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+ RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
+
+ _wifi_aware_publish_set_enable_termination_event(publish, enable);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_publish_set_enable_ranging(
+ wifi_aware_publish_h publish,
+ bool enable)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+ RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
+
+ _wifi_aware_publish_set_enable_ranging(publish, enable);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_start_publish(wifi_aware_publish_h publish,
+ wifi_aware_published_cb callback, void *user_data)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ int ret = WIFI_AWARE_ERROR_NONE;
+
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+ RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
+
+ ret = _wifi_aware_publish_request(publish, callback, user_data);
+ RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_publish_request");
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_cancel_publish(wifi_aware_publish_h publish)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ int ret = WIFI_AWARE_ERROR_NONE;
+
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+ RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
+
+ ret = _wifi_aware_cancel_publish_request(publish);
+ RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_cancel_publish_request");
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_update_publish(wifi_aware_publish_h publish,
+ wifi_aware_published_cb callback, void *user_data)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ int ret = WIFI_AWARE_ERROR_NONE;
+
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+ RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
+
+ ret = _wifi_aware_update_publish_request(publish, callback, user_data);
+ RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_update_publish_request");
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_subscribe_create(wifi_aware_h wifi_aware,
+ wifi_aware_subscribe_h *subscribe)
+{
+ int ret = WIFI_AWARE_ERROR_NONE;
+
+ __WIFI_AWARE_FUNC_ENTER__;
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+
+ ret = _wifi_aware_subscribe_handle_create(wifi_aware, subscribe);
+ RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "Fail to create subscribe handle");
+
+ _wifi_aware_subscribe_set_default_values(subscribe);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_subscribe_destroy(
+ wifi_aware_subscribe_h subscribe)
+{
+ __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");
+
+ g_free(subscribe);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_subscribe_set_ttl(
+ wifi_aware_subscribe_h subscribe,
+ unsigned short ttl)
+{
+ __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_ttl(subscribe, ttl);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_subscribe_set_type(
+ wifi_aware_subscribe_h subscribe,
+ wifi_aware_subscribe_type_e subscribe_type)
+{
+ __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_type(subscribe, subscribe_type);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_subscribe_set_service_name(
+ wifi_aware_subscribe_h subscribe,
+ const char *service_name)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ int len = 0;
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+ RET_VAL_IF(subscribe == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_subscribe_h is NULL");
+
+ len = strlen(service_name);
+ if (len > WIFI_AWARE_MAX_SERVICE_NAME_LEN) {
+ WIFI_AWARE_LOGE("The length of service_name should be equal to or less than %d",
+ WIFI_AWARE_MAX_SERVICE_NAME_LEN);
+ return WIFI_AWARE_ERROR_INVALID_PARAMETER;
+ }
+
+ _wifi_aware_subscribe_set_service_name(subscribe, service_name);
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_subscribe_set_service_specific_info(
+ wifi_aware_subscribe_h subscribe,
+ unsigned char *service_specific_info, size_t len)
+{
+ __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");
+
+ if (len > WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN) {
+ WIFI_AWARE_LOGE("The length of service_specific_info should be equal to or less than %d",
+ WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN);
+ return WIFI_AWARE_ERROR_INVALID_PARAMETER;
+ }
+
+ _wifi_aware_subscribe_set_service_specific_info(subscribe, service_specific_info, len);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_subscribe_set_match_filter(
+ wifi_aware_subscribe_h subscribe,
+ unsigned char *match_filter, size_t len)
+{
+ __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");
+
+ if (len > WIFI_AWARE_MAX_MATCH_FILTER_LEN) {
+ WIFI_AWARE_LOGE("The length of match_filter should be equal to or less than %d",
+ WIFI_AWARE_MAX_MATCH_FILTER_LEN);
+ return WIFI_AWARE_ERROR_INVALID_PARAMETER;
+ }
+
+ _wifi_aware_subscribe_set_match_filter(subscribe, match_filter, len);
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_subscribe_set_enable_termination_event(
+ wifi_aware_subscribe_h subscribe,
+ bool enable)
+{
+ __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_enable_termination_event(subscribe, enable);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_start_subscribe(wifi_aware_subscribe_h subscribe,
+ wifi_aware_subscribed_cb callback, void *user_data)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ int ret = WIFI_AWARE_ERROR_NONE;
+
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+ RET_VAL_IF(subscribe == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_subscribe_h is NULL");
+
+ ret = _wifi_aware_subscribe_request(subscribe, callback, user_data);
+ RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_subscribe_request");
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_cancel_subscribe(wifi_aware_subscribe_h subscribe)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ int ret = WIFI_AWARE_ERROR_NONE;
+
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+
+ ret = _wifi_aware_cancel_subscribe_request(subscribe);
+ RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_cancel_subscribe_request");
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_update_subscribe(wifi_aware_subscribe_h subscribe,
+ wifi_aware_subscribed_cb callback, void *user_data)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ int ret = WIFI_AWARE_ERROR_NONE;
+
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+ RET_VAL_IF(subscribe == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_subscribe_h is NULL");
+
+ ret = _wifi_aware_update_subscribe_request(subscribe, callback, user_data);
+ RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_update_subscribe_request");
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_set_discovery_result_cb(wifi_aware_subscribe_h subscribe,
+ wifi_aware_discovery_result_cb callback, void *user_data)
+{
+ __WIFI_AWARE_FUNC_ENTER__;
+ CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
+
+ _wifi_aware_set_discovery_result_cb(subscribe, callback, user_data);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return WIFI_AWARE_ERROR_NONE;
+}
+
+API int wifi_aware_send_message(wifi_aware_peer_h peer,
+ unsigned char *message, size_t len)
{
__WIFI_AWARE_FUNC_ENTER__;
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
}
API int wifi_aware_set_received_message_cb(wifi_aware_h wifi_aware,
- wifi_aware_received_message_cb callback)
+ wifi_aware_received_message_cb callback, void *user_data)
{
__WIFI_AWARE_FUNC_ENTER__;
CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
- RET_ERR_IF_HANDLE_IS_NOT_VALID_OR_NOT_INITIALIZED(wifi_aware);
__WIFI_AWARE_FUNC_EXIT__;
return WIFI_AWARE_ERROR_NONE;
RET_IF_LOOP_IS_NULL();
RET_IF_HANDLE_IS_NULL();
- ret = wifi_aware_publish_create(&publish);
+ ret = wifi_aware_publish_create(g_wifi_aware_handle, &publish);
__print_result(ret, "wifi_aware_publish_create");
__set_publish_config(publish);
g_publish_handle = publish;
- ret = wifi_aware_start_publish(g_wifi_aware_handle, publish, __published_cb, NULL);
+ ret = wifi_aware_start_publish(publish, __published_cb, NULL);
__print_result(ret, "wifi_aware_publish");
//ret = wifi_aware_publish_destroy(publish);
return;
}
- ret = wifi_aware_cancel_publish(g_wifi_aware_handle, g_publish_handle);
+ ret = wifi_aware_cancel_publish(g_publish_handle);
__print_result(ret, "wifi_aware_cancel_publish");
}
if (ret != WIFI_AWARE_ERROR_NONE)
return;
- ret = wifi_aware_update_publish(g_wifi_aware_handle, g_publish_handle, __updated_publish_cb, NULL);
+ ret = wifi_aware_update_publish(g_publish_handle, __updated_publish_cb, NULL);
__print_result(ret, "wifi_aware_update_publish");
}
printf("Subscirbe Request fails. Error: %s\n", __print_error(error));
}
-static void __discovery_result_cb(unsigned int subscribe_id, wifi_aware_peer_h peer,
+static void __discovery_result_cb(wifi_aware_subscribe_h subscribe,
+ wifi_aware_peer_h peer,
unsigned char *service_specific_info, size_t service_specific_info_len,
void *user_data)
{
printf("Find A Wi-Fi Aware Peer\n");
- printf("Subscribe ID: %u\n", subscribe_id);
+// printf("Subscribe ID: %u\n", subscribe_id);
printf("Service Specific Info\n");
__print_byte_array(service_specific_info, service_specific_info_len);
}
RET_IF_LOOP_IS_NULL();
RET_IF_HANDLE_IS_NULL();
- ret = wifi_aware_set_discovery_result_cb(g_wifi_aware_handle, __discovery_result_cb, NULL);
+ ret = wifi_aware_set_discovery_result_cb(g_subscribe_handle, __discovery_result_cb, NULL);
__print_result(ret, "wifi_aware_set_discovery_result_cb");
- ret = wifi_aware_subscribe_create(&subscribe);
+ ret = wifi_aware_subscribe_create(g_wifi_aware_handle, &subscribe);
__print_result(ret, "wifi_aware_subscribe_create");
__set_subscribe_config(subscribe);
- ret = wifi_aware_start_subscribe(g_wifi_aware_handle, subscribe, __subscribed_cb, NULL);
+ ret = wifi_aware_start_subscribe(subscribe, __subscribed_cb, NULL);
__print_result(ret, "wifi_aware_subscribe");
ret = wifi_aware_subscribe_destroy(subscribe);
return;
}
- ret = wifi_aware_cancel_subscribe(g_wifi_aware_handle, g_subscribe_handle);
+ ret = wifi_aware_cancel_subscribe(g_subscribe_handle);
__print_result(ret, "wifi_aware_cancel_subscribe");
}