4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Sungsik Jang <sungsik.jang@samsung.com>, Dongwook Lee <dwmax.lee@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
21 #ifndef __TIZEN_NET_WIFI_DIRECT_H__
22 #define __TIZEN_NET_WIFI_DIRECT_H__
31 * @addtogroup CAPI_NETWORK_WIFI_DIRECT_MODULE
36 * @brief Wi-Fi Direct Device Name maximum length.
39 #define WIFI_DIRECT_MAX_DEVICE_NAME_LEN 32
42 * @brief Wi-Fi Direct MAC Address length.
45 #define WIFI_DIRECT_MAC_ADDRESS_LEN 18
48 * @brief Enumeration for Wi-Fi Direct error code.
52 WIFI_DIRECT_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */
53 WIFI_DIRECT_ERROR_NOT_PERMITTED = TIZEN_ERROR_NOT_PERMITTED, /**< Operation not permitted(1) */
54 WIFI_DIRECT_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory(12) */
55 WIFI_DIRECT_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied(13) */
56 WIFI_DIRECT_ERROR_RESOURCE_BUSY = TIZEN_ERROR_RESOURCE_BUSY, /**< Device or resource busy(16) */
57 WIFI_DIRECT_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid function parameter(22) */
58 WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT = TIZEN_ERROR_CONNECTION_TIME_OUT, /**< Connection timed out(110) */
59 WIFI_DIRECT_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported */
60 WIFI_DIRECT_ERROR_NOT_INITIALIZED = TIZEN_ERROR_WIFI_DIRECT|0x01, /**< Not initialized */
61 WIFI_DIRECT_ERROR_COMMUNICATION_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x02, /**< I/O error */
62 WIFI_DIRECT_ERROR_WIFI_USED = TIZEN_ERROR_WIFI_DIRECT|0x03, /**< WiFi is being used */
63 WIFI_DIRECT_ERROR_MOBILE_AP_USED = TIZEN_ERROR_WIFI_DIRECT|0x04, /**< Mobile AP is being used */
64 WIFI_DIRECT_ERROR_CONNECTION_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x05, /**< Connection failed */
65 WIFI_DIRECT_ERROR_AUTH_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x06, /**< Authentication failed */
66 WIFI_DIRECT_ERROR_OPERATION_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x07, /**< Operation failed */
67 WIFI_DIRECT_ERROR_TOO_MANY_CLIENT = TIZEN_ERROR_WIFI_DIRECT|0x08, /**< Too many client */
68 WIFI_DIRECT_ERROR_ALREADY_INITIALIZED = TIZEN_ERROR_WIFI_DIRECT|0x09, /**< Already initialized client */
69 WIFI_DIRECT_ERROR_CONNECTION_CANCELED = TIZEN_ERROR_WIFI_DIRECT|0x10, /**< Connection canceled by local device */
70 } wifi_direct_error_e;
74 * @brief Enumeration for Wi-Fi Direct link status.
76 * @see wifi_direct_state_changed_cb()
77 * @see wifi_direct_get_state()
80 WIFI_DIRECT_STATE_DEACTIVATED, /**< Deactivated */
81 WIFI_DIRECT_STATE_DEACTIVATING, /**< Deactivating */
82 WIFI_DIRECT_STATE_ACTIVATING, /**< Activating */
83 WIFI_DIRECT_STATE_ACTIVATED, /**< Activated */
84 WIFI_DIRECT_STATE_DISCOVERING, /**< Discovering */
85 WIFI_DIRECT_STATE_CONNECTING, /**< Connecting */
86 WIFI_DIRECT_STATE_DISCONNECTING, /**< Disconnecting */
87 WIFI_DIRECT_STATE_CONNECTED, /**< Connected */
88 WIFI_DIRECT_STATE_GROUP_OWNER /**< Group owner */
89 } wifi_direct_state_e;
93 * @brief Enumeration for Wi-Fi Direct device state.
95 * @see wifi_direct_device_state_changed_cb()
98 WIFI_DIRECT_DEVICE_STATE_ACTIVATED, /**< Activated */
99 WIFI_DIRECT_DEVICE_STATE_DEACTIVATED, /**< Deactivated */
100 } wifi_direct_device_state_e;
104 * @brief Enumeration for Wi-Fi Direct discovery state.
106 * @see wifi_direct_discovery_state_chagned_cb()
107 * @see wifi_direct_peer_found_cb()
110 WIFI_DIRECT_ONLY_LISTEN_STARTED, /**< Only listen started */
111 WIFI_DIRECT_DISCOVERY_STARTED, /**< Discovery started */
112 WIFI_DIRECT_DISCOVERY_FOUND, /**< A remote peer is found */
113 WIFI_DIRECT_DISCOVERY_FINISHED, /**< Discovery finished */
114 WIFI_DIRECT_DISCOVERY_LOST, /**< A remote peer is lost (Since 3.0)*/
115 } wifi_direct_discovery_state_e;
119 * @brief Enumeration for Wi-Fi Direct connection state.
121 * @see wifi_direct_connection_state_changed_cb()
124 WIFI_DIRECT_CONNECTION_REQ, /**< Connection is requested */
125 WIFI_DIRECT_CONNECTION_WPS_REQ, /**< WPS is requested */
126 WIFI_DIRECT_CONNECTION_IN_PROGRESS, /**< Connection in progress */
127 WIFI_DIRECT_CONNECTION_RSP, /**< Connection response */
128 WIFI_DIRECT_DISASSOCIATION_IND, /**< Disconnected by remote Group Client */
129 WIFI_DIRECT_DISCONNECTION_RSP, /**< Disconnected by local device */
130 WIFI_DIRECT_DISCONNECTION_IND, /**< Disconnected by remote Group Owner */
131 WIFI_DIRECT_GROUP_CREATED, /**< Group is created */
132 WIFI_DIRECT_GROUP_DESTROYED, /**< Group is destroyed */
133 } wifi_direct_connection_state_e;
136 * @brief Enumeration for WPS Config Method type.
140 WIFI_DIRECT_CONFIG_METHOD_DEFAULT = 0x00, /**< Use default config method */
141 WIFI_DIRECT_CONFIG_METHOD_PBC = 0x01, /**< Push Button Configuration */
142 WIFI_DIRECT_CONFIG_METHOD_PIN_DISPLAY = 0x02, /**< Display PIN code */
143 WIFI_DIRECT_CONFIG_METHOD_PIN_KEYPAD = 0x04, /**< Provide the keypad to input the PIN */
144 } wifi_direct_config_method_type_e;
147 * @brief Enumeration for Wi-Fi Direct secondary device type.
149 * @see wifi_direct_get_secondary_device_type()
152 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_COMPUTER_PC = 1, /**< PC */
153 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_COMPUTER_SERVER = 2, /**< Server */
154 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_COMPUTER_MEDIA_CENTER = 3, /**< Media Center */
155 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_COMPUTER_UMPC = 4, /**< UMPC */
156 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_COMPUTER_NOTEBOOK = 5, /**< Notebook */
157 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_COMPUTER_DESKTOP = 6, /**< Desktop */
158 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_COMPUTER_MID = 7, /**< MID */
159 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_COMPUTER_NETBOOK = 8, /**< Netbook */
160 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_INPUT_KEYBOARD = 1, /**< Keyboard */
161 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_INPUT_MOUSE = 2, /**< Mouse */
162 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_INPUT_JOYSTICK = 3, /**< Joystick */
163 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_INPUT_TRACKBALL = 4, /**< Trackball */
164 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_INPUT_CONTROLLER = 5, /**< Controller */
165 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_INPUT_REMOTE = 6, /**< Remote */
166 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_INPUT_TOUCHSCREEN = 7, /**< Touchscreen */
167 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_INPUT_BIOMETRIC_READER = 8, /**< Biometric reader */
168 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_INPUT_BARCODE_READER = 9, /**< Barcode reader */
169 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_PRINTER_PRINTER = 1, /**< Printer */
170 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_PRINTER_SCANNER = 2, /**< Scanner */
171 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_PRINTER_FAX = 3, /**< Fax */
172 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_PRINTER_COPIER = 4, /**< Copier */
173 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_PRINTER_ALL_IN_ONE = 5, /**< All-in-one */
174 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_CAMERA_DIGITAL_STILL = 1, /**< Digital still camera */
175 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_CAMERA_VIDEO = 2, /**< Video camera */
176 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_CAMERA_WEBCAM = 3, /**< Webcam */
177 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_CAMERA_SECURITY = 4, /**< Security camera */
178 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_STORAGE_NAS = 1, /**< NAS */
179 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_NETWORK_INFRA_AP = 1, /**< AP */
180 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_NETWORK_INFRA_ROUTER = 2, /**< Router */
181 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_NETWORK_INFRA_SWITCH = 3, /**< Switch */
182 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_NETWORK_INFRA_GATEWAY = 4, /**< Gateway */
183 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_DISPLAY_TV = 1, /**< TV */
184 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_DISPLAY_PIC_FRAME = 2, /**< Picture frame */
185 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_DISPLAY_PROJECTOR = 3, /**< Projector */
186 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_DISPLAY_MONITOR = 4, /**< Monitor */
187 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_MULTIMEDIA_DAR = 1, /**< DAR */
188 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_MULTIMEDIA_PVR = 2, /**< PVR */
189 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_MULTIMEDIA_MCX = 3, /**< MCX */
190 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_MULTIMEDIA_STB = 4, /**< Set-top box */
191 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_MULTIMEDIA_MS_MA_ME = 5, /**< Media Server / Media Adapter / Media Extender */
192 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_MULTIMEDIA_PVP = 6, /**< Portable video player */
193 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_GAME_XBOX = 1, /**< Xbox */
194 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_GAME_XBOX_360 = 2, /**< Xbox 360 */
195 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_GAME_PS = 3, /**< Playstation */
196 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_GAME_CONSOLE = 4, /**< Console */
197 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_GAME_PORTABLE = 5, /**< Portable */
198 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_TELEPHONE_WINDOWS_MOBILE = 1, /**< Windows Mobile */
199 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_TELEPHONE_PHONE_SINGLE = 2, /**< Phone - single mode */
200 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_TELEPHONE_PHONE_DUAL = 3, /**< Phone - dual mode */
201 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_TELEPHONE_SMARTPHONE_SINGLE = 4, /**< Smart Phone - single mode */
202 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_TELEPHONE_SMARTPHONE_DUAL = 5, /**< Smart Phone - dual mode */
203 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_AUDIO_TUNER = 1, /**< Tuner */
204 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_AUDIO_SPEAKER = 2, /**< Speaker */
205 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_AUDIO_PMP = 3, /**< Portable Music Player */
206 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_AUDIO_HEADSET = 4, /**< Headset */
207 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_AUDIO_HEADPHONE = 5, /**< Headphone */
208 WIFI_DIRECT_SECONDARY_DEVICE_TYPE_AUDIO_MIC = 6, /**< Microphone */
209 } wifi_direct_secondary_device_type_e;
213 * @brief Enumeration for Wi-Fi Direct primary device type.
215 * @see wifi_direct_get_primary_device_type()
218 WIFI_DIRECT_PRIMARY_DEVICE_TYPE_COMPUTER = 1, /**< Computer */
219 WIFI_DIRECT_PRIMARY_DEVICE_TYPE_INPUT_DEVICE = 2, /**< Input device */
220 WIFI_DIRECT_PRIMARY_DEVICE_TYPE_PRINTER = 3, /**< Printer */
221 WIFI_DIRECT_PRIMARY_DEVICE_TYPE_CAMERA = 4, /**< Camera */
222 WIFI_DIRECT_PRIMARY_DEVICE_TYPE_STORAGE = 5, /**< Storage */
223 WIFI_DIRECT_PRIMARY_DEVICE_TYPE_NETWORK_INFRA = 6, /**< Network Infrastructure */
224 WIFI_DIRECT_PRIMARY_DEVICE_TYPE_DISPLAY = 7, /**< Display */
225 WIFI_DIRECT_PRIMARY_DEVICE_TYPE_MULTIMEDIA_DEVICE = 8, /**< Multimedia device */
226 WIFI_DIRECT_PRIMARY_DEVICE_TYPE_GAME_DEVICE = 9, /**< Game device */
227 WIFI_DIRECT_PRIMARY_DEVICE_TYPE_TELEPHONE = 10, /**< Telephone */
228 WIFI_DIRECT_PRIMARY_DEVICE_TYPE_AUDIO = 11, /**< Audio */
229 WIFI_DIRECT_PRIMARY_DEVICE_TYPE_OTHER = 255 /**< Others */
230 } wifi_direct_primary_device_type_e;
234 * @brief Enumeration for Wi-Fi WPS type.
236 * @see wifi_direct_supported_wps_type_cb()
237 * @see wifi_direct_get_local_wps_type()
238 * @see wifi_direct_set_req_wps_type()
239 * @see wifi_direct_get_req_wps_type()
242 WIFI_DIRECT_WPS_TYPE_NONE = 0x00, /**< No WPS type */
243 WIFI_DIRECT_WPS_TYPE_PBC = 0x01, /**< Push Button Configuration */
244 WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY = 0x02, /**< Display PIN code */
245 WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD = 0x04, /**< Provide the keypad to input the PIN */
246 } wifi_direct_wps_type_e;
250 * @deprecated Deprecated since 5.0. Use #wifi_direct_display_type_e instead.
251 * @brief Enumeration for Wi-Fi Display device type.
255 WIFI_DISPLAY_TYPE_NONE, /**< Configure as WFD Source*/
256 WIFI_DISPLAY_TYPE_SINK, /**< Configure as WFD Primary Sink */
257 WIFI_DISPLAY_TYPE_SRC, /**< Configure as WFD Secondary Sink */
258 WIFI_DISPLAY_TYPE_DUAL, /**< Configure as WFD Dual Role */
259 WIFI_DISPLAY_TYPE_MAX, /**< Not configured */
260 } wifi_display_type_e;
264 * @brief Enumeration for Service Discovery type.
266 * @see wifi_direct_service_state_changed_cb()
267 * @see wifi_direct_start_service_discovery()
268 * @see wifi_direct_cancel_service_discovery()
269 * @see wifi_direct_register_service()
272 WIFI_DIRECT_SERVICE_TYPE_ALL, /**< Service discovery type all */
273 WIFI_DIRECT_SERVICE_TYPE_BONJOUR, /**< Service discovery type bonjour */
274 WIFI_DIRECT_SERVICE_TYPE_UPNP, /**< Service discovery type UPNP */
275 WIFI_DIRECT_SERVICE_TYPE_WS_DISCOVERY, /**< Service discovery type ws discovery */
276 WIFI_DIRECT_SERVICE_TYPE_WIFI_DISPLAY, /**< Service discovery type wifi-display */
277 WIFI_DIRECT_SERVICE_TYPE_BT_ADDR, /**< Service discovery type bt address */
278 WIFI_DIRECT_SERVICE_TYPE_CONTACT_INFO, /**< Service discovery type contact info */
279 WIFI_DIRECT_SERVICE_TYPE_VENDOR = 0xff, /**< Service discovery type vendor-specific */
280 } wifi_direct_service_type_e;
284 * @brief Enumeration for Wi-Fi Display device type.
286 * @see wifi_direct_set_display()
287 * @see wifi_direct_get_peer_display_type()
290 WIFI_DIRECT_DISPLAY_TYPE_SOURCE, /**< Configure as WFD Source*/
291 WIFI_DIRECT_DISPLAY_TYPE_PRISINK, /**< Configure as WFD Primary Sink */
292 WIFI_DIRECT_DISPLAY_TYPE_SECSINK, /**< Configure as WFD Secondary Sink */
293 WIFI_DIRECT_DISPLAY_TYPE_DUAL, /**< Configure as WFD Dual Role */
294 WIFI_DIRECT_DISPLAY_TYPE_MAX, /**< Not configured */
295 } wifi_direct_display_type_e;
299 * @brief Enumeration for Wi-Fi Direct service Discovery state.
301 * @see wifi_direct_service_state_changed_cb()
304 WIFI_DIRECT_SERVICE_DISCOVERY_STARTED, /**< Service discovery started */
305 WIFI_DIRECT_SERVICE_DISCOVERY_FOUND, /**< Service discovery found */
306 WIFI_DIRECT_SERVICE_DISCOVERY_FINISHED, /**< Service discovery finished */
307 } wifi_direct_service_discovery_state_e;
311 * @brief Enumeration for Wi-Fi Direct Discovery Channel.
313 * @see wifi_direct_start_discovery_specific_channel()
316 WIFI_DIRECT_DISCOVERY_FULL_SCAN = 0, /**< Scan full channel */
317 WIFI_DIRECT_DISCOVERY_SOCIAL_CHANNEL = 1611, /**< Scan social channel */
318 WIFI_DIRECT_DISCOVERY_CHANNEL1 = 1, /**< Scan channel 1 */
319 WIFI_DIRECT_DISCOVERY_CHANNEL6 = 6, /**< Scan channel 6 */
320 WIFI_DIRECT_DISCOVERY_CHANNEL11 = 11, /**< Scan channel 11 */
321 } wifi_direct_discovery_channel_e;
324 * @brief Enumeration for Wi-Fi Frame type.
326 * @see wifi_direct_add_vsie()
327 * @see wifi_direct_remove_vsie()
328 * @see wifi_direct_get_vsie()
332 * P2P probe request frame
334 WIFI_DIRECT_VSIE_FRAME_P2P_PROBE_REQ,
337 * P2P probe response frame
339 WIFI_DIRECT_VSIE_FRAME_P2P_PROBE_RESP,
342 * P2P group owner probe response frame
344 WIFI_DIRECT_VSIE_FRAME_P2P_GO_PROBE_RESP,
347 * P2P probe request frame
349 WIFI_DIRECT_VSIE_FRAME_P2P_GO_BEACON,
352 * P2P provision discovery request frame
354 WIFI_DIRECT_VSIE_FRAME_P2P_PD_REQ,
357 * P2P provision discovery response frame
359 WIFI_DIRECT_VSIE_FRAME_P2P_PD_RESP,
362 * P2P probe request frame
364 WIFI_DIRECT_VSIE_FRAME_P2P_GO_NEG_REQ,
367 * P2P group owner negotiation response frame
369 WIFI_DIRECT_VSIE_FRAME_P2P_GO_NEG_RESP,
372 * P2P group owner negotiation confirmation frame
374 WIFI_DIRECT_VSIE_FRAME_P2P_GO_NEG_CONF,
377 * P2P invitation request frame
379 WIFI_DIRECT_VSIE_FRAME_P2P_INV_REQ,
382 * P2P invitation response frame
384 WIFI_DIRECT_VSIE_FRAME_P2P_INV_RESP,
387 * P2P association request frame
389 WIFI_DIRECT_VSIE_FRAME_P2P_ASSOC_REQ,
392 * P2P association response frame
394 WIFI_DIRECT_VSIE_FRAME_P2P_ASSOC_RESP,
397 * Association request frame
399 WIFI_DIRECT_VSIE_FRAME_ASSOC_REQ,
400 } wifi_direct_vsie_frames_e;
403 * @brief Wi-Fi Direct connection state structure to store result of new connection state callback.
407 char device_name[WIFI_DIRECT_MAX_DEVICE_NAME_LEN+1]; /**< Null-terminated device friendly name. */
408 char mac_address[WIFI_DIRECT_MAC_ADDRESS_LEN+1]; /**< Null-terminated Device's P2P Device Address */
409 } wifi_direct_connection_state_cb_data_s;
412 * @brief Wi-Fi Direct buffer structure to store result of peer discovery.
414 * @remarks You can use APIs for Wi-Fi Direct display function instead of is_miracast_device value
415 * which is deprecated since 2.4.
416 * @see wifi_direct_discovered_peer_cb()
417 * @see wifi_direct_get_peer_info()
418 * @see wifi_direct_get_connecting_peer_info()
422 * Device's friendly name
427 * Device's P2P Device Address
432 * Device's P2P Interface Address, Valid only if device is a P2P GO
434 char *interface_address;
437 * Channel the device is listening on
447 * Is an active P2P Group Owner
452 * Is a stored Persistent GO
454 bool is_persistent_group_owner;
457 * Primary category of device
459 wifi_direct_primary_device_type_e primary_device_type;
462 * Sub category of device
464 wifi_direct_secondary_device_type_e secondary_device_type;
467 * The list of supported WPS type. The OR operation on
468 * #wifi_direct_wps_type_e can be used like
469 * #WIFI_DIRECT_WPS_TYPE_PBC | #WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY
471 int supported_wps_types;
474 * Is capable of processing P2P Invitation Procedure signaling
476 bool is_p2p_invitation_procedure_supported;
479 * The number of Registered services
481 unsigned int service_count;
484 * The list of registered services
489 * Is a wifi display device
490 * @deprecated Deprecated since 2.4, use wifi direct display APIs instead of
491 * is_miracast_device value.
493 bool is_miracast_device;
496 * The information for vendor specific information element
497 * @deprecated Deprecated since 5.0, use wifi_direct_get_peer_vsie() API instead of
501 } wifi_direct_discovered_peer_info_s;
505 * @brief Wi-Fi Direct buffer structure to store information of connected peer.
507 * @remarks You can use APIs for wifi-direct display function instead of is_miracast_device value
508 * which is deprecated since 2.4.
509 * @see wifi_direct_connected_peer_cb()
513 * Device's friendly name
523 * Device's P2P Device Address
528 * Device's P2P Interface Address
530 char *interface_address;
538 * Whether peer is a P2P device
543 * Primary category of device
545 wifi_direct_primary_device_type_e primary_device_type;
548 * Sub category of device
550 wifi_direct_secondary_device_type_e secondary_device_type;
553 * The number of Registered services
555 unsigned int service_count;
558 * The list of registered services
563 * Is a wifi display device
564 * @deprecated since tizen 2.4, use wifi direct display APIs instead of
565 * is_miracast_device value.
567 bool is_miracast_device;
568 } wifi_direct_connected_peer_info_s;
572 * @brief Called when the state of discovery is changed.
573 * @details The following error codes can be delivered
574 * #WIFI_DIRECT_ERROR_NONE
575 * #WIFI_DIRECT_ERROR_OPERATION_FAILED
576 * #WIFI_DIRECT_ERROR_NOT_PERMITTED
578 * @param[in] error_code The error code
579 * @param[in] discovery_state The discovery state
580 * @param[in] user_data The user data passed from the callback registration function
581 * @pre Either wifi_direct_start_discovery() or wifi_direct_cancel_discovery()
582 * will invoke this callback in the thread-default main context of the thread
583 * from which you registered this callback using wifi_direct_set_discovery_state_changed_cb().
584 * @see wifi_direct_start_discovery()
585 * @see wifi_direct_cancel_discovery()
586 * @see wifi_direct_set_discovery_state_changed_cb()
587 * @see wifi_direct_unset_discovery_state_changed_cb()
589 typedef void (*wifi_direct_discovery_state_chagned_cb) (int error_code,
590 wifi_direct_discovery_state_e discovery_state,
595 * @brief Called when the peer is found.
596 * @details The following error codes can be delivered
597 * #WIFI_DIRECT_ERROR_NONE
598 * #WIFI_DIRECT_ERROR_OPERATION_FAILED
599 * #WIFI_DIRECT_ERROR_NOT_PERMITTED
601 * @param[in] error_code The error code
602 * @param[in] discovery_state The discovery state
603 * @param[in] mac_address The MAC address of found peer
604 * @param[in] user_data The user data passed from the callback registration function
605 * @pre Either wifi_direct_start_discovery() or wifi_direct_cancel_discovery()
606 * will invoke this callback in the thread-default main context of the thread
607 * from which you registered this callback using wifi_direct_set_peer_found_cb().
608 * @see wifi_direct_start_discovery()
609 * @see wifi_direct_cancel_discovery()
610 * @see wifi_direct_set_peer_found_cb()
611 * @see wifi_direct_unset_peer_found_cb()
613 typedef void (*wifi_direct_peer_found_cb) (int error_code,
614 wifi_direct_discovery_state_e discovery_state,
615 const char *mac_address,
620 * @brief Called when the state of device is changed.
621 * @details The following error codes can be delivered
622 * #WIFI_DIRECT_ERROR_NONE
623 * #WIFI_DIRECT_ERROR_OPERATION_FAILED
624 * #WIFI_DIRECT_ERROR_NOT_PERMITTED
626 * @param[in] error_code The error code
627 * @param[in] device_state The device state
628 * @param[in] user_data The user data passed from the callback registration function
629 * @pre Either wifi_direct_activate() or wifi_direct_deactivate() will invoke
630 * this callback in the thread-default main context of the thread from which you
631 * registered this callback using wifi_direct_set_device_state_changed_cb().
632 * @see wifi_direct_activate()
633 * @see wifi_direct_deactivate()
634 * @see wifi_direct_set_device_state_changed_cb()
635 * @see wifi_direct_unset_device_state_changed_cb()
637 typedef void (*wifi_direct_device_state_changed_cb) (int error_code,
638 wifi_direct_device_state_e device_state,
643 * @brief Called when the state of connection is changed.
644 * @details The following error codes can be delivered
645 * #WIFI_DIRECT_ERROR_NONE
646 * #WIFI_DIRECT_ERROR_OPERATION_FAILED
647 * #WIFI_DIRECT_ERROR_NOT_PERMITTED
648 * #WIFI_DIRECT_ERROR_CONNECTION_FAILED
650 * @param[in] error_code The error code
651 * @param[in] connection_state The connection state
652 * @param[in] mac_address The MAC address of the connection peer
653 * @param[in] user_data The user data passed from the callback registration function
654 * @pre wifi_direct_create_group(), wifi_direct_destroy_group(),
655 * wifi_direct_connect(), wifi_direct_disconnect() or
656 * wifi_direct_disconnect_all() will invoke this callback in the thread-default
657 * main context of the thread from which you registered this callback using
658 * using wifi_direct_set_connection_state_changed_cb().
659 * @see wifi_direct_connect()
660 * @see wifi_direct_disconnect()
661 * @see wifi_direct_disconnect_all()
662 * @see wifi_direct_set_connection_state_changed_cb()
663 * @see wifi_direct_unset_connection_state_changed_cb()
665 typedef void (*wifi_direct_connection_state_changed_cb) (int error_code,
666 wifi_direct_connection_state_e connection_state,
667 const char *mac_address,
671 * @brief Called when the state of connection is changed.
673 * @details The following error codes can be delivered:\n
674 * #WIFI_DIRECT_ERROR_NONE\n
675 * #WIFI_DIRECT_ERROR_OPERATION_FAILED\n
676 * #WIFI_DIRECT_ERROR_NOT_PERMITTED
677 * @param[in] error_code The error code
678 * @param[in] connection_state The connection state
679 * @param[in] data_s The structure for peer data
680 * @param[in] user_data The user data passed from the callback registration function
681 * @pre wifi_direct_create_group(), wifi_direct_destroy_group(), wifi_direct_connect(), wifi_direct_disconnect() or wifi_direct_disconnect_all() will invoke this callback
682 * if you register this callback using wifi_direct_set_peer_info_connection_state_changed_cb().
683 * @see wifi_direct_connect()
684 * @see wifi_direct_disconnect()
685 * @see wifi_direct_disconnect_all()
686 * @see wifi_direct_set_peer_info_connection_state_changed_cb()
687 * @see wifi_direct_unset_peer_info_connection_state_changed_cb()
689 typedef void (*wifi_direct_peer_info_connection_state_changed_cb)(wifi_direct_error_e error_code,
690 wifi_direct_connection_state_e connection_state,
691 wifi_direct_connection_state_cb_data_s data_s,
695 * @brief Called when IP address of client is assigned when your device is the group owner.
696 * @details The following error codes can be delivered
697 * #WIFI_DIRECT_ERROR_NONE
698 * #WIFI_DIRECT_ERROR_OPERATION_FAILED
699 * #WIFI_DIRECT_ERROR_NOT_PERMITTED
701 * @param[in] mac_address The MAC address of connection peer
702 * @param[in] ip_address The IP address of connection peer
703 * @param[in] interface_address The interface address of connection peer
704 * @param[in] user_data The user data passed from the callback registration function
705 * @pre This callback will be invoked in the thread-default main context of the
706 * thread from which you registered this callback using wifi_direct_set_client_ip_address_assigned_cb().
707 * @see wifi_direct_set_client_ip_address_assigned_cb()
708 * @see wifi_direct_unset_client_ip_address_assigned_cb()
710 typedef void (*wifi_direct_client_ip_address_assigned_cb) (const char *mac_address,
711 const char *ip_address,
712 const char *interface_address,
717 * @brief Called when the state of Service discovery is changed.
718 * @details The following error codes can be delivered
719 * #WIFI_DIRECT_ERROR_NONE
720 * #WIFI_DIRECT_ERROR_OPERATION_FAILED
721 * #WIFI_DIRECT_ERROR_NOT_PERMITTED
723 * @param[in] error_code The error code
724 * @param[in] service_state The service discovery state
725 * @param[in] service_type Specifies the types of service
726 * @param[in] response_data Received response
727 * @param[in] mac_address The MAC address of the connection peer
728 * @param[in] user_data User can transfer the user specific data in callback
729 * @pre Either wifi_direct_start_service_discovery() or
730 * wifi_direct_cancel_service_discovery() will invoke this callback in the
731 * thread-default main context of thethread from which you registered this
732 * callback using wifi_direct_set_service_state_changed_cb().
733 * @see wifi_direct_start_discovery()
734 * @see wifi_direct_cancel_discovery()
735 * @see wifi_direct_set_discovery_state_changed_cb()
736 * @see wifi_direct_unset_discovery_state_changed_cb()
738 typedef void (*wifi_direct_service_state_changed_cb) (int error_code,
739 wifi_direct_service_discovery_state_e service_state,
740 wifi_direct_service_type_e service_type,
742 const char *mac_address,
747 * @brief Called when the state of Wi-FI Direct is changed.
749 * @param[in] state The Wi-Fi Direct state
750 * @param[in] user_data The user data passed from the callback registration function
751 * @pre Changes in Wi-Fi Direct state will invoke this callback
752 * if you register this callback using wifi_direct_set_state_changed_cb().
753 * @see wifi_direct_set_state_changed_cb()
754 * @see wifi_direct_unset_state_changed_cb()
756 typedef void (*wifi_direct_state_changed_cb) (wifi_direct_state_e state,
761 * @brief Initializes Wi-Fi Direct service.
764 * @privilege http://tizen.org/privilege/wifidirect
765 * @return @c 0 on success,
766 * otherwise a negative error value
767 * @retval #WIFI_DIRECT_ERROR_NONE Successful
768 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
769 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
770 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
771 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
772 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
773 * @see wifi_direct_deinitialize()
776 * Here is an example of the usage:
779 * #include <wifi_direct.h>
781 * void function(void)
785 * ret = wifi_direct_initialize();
787 * if (ret != WIFI_DIRECT_ERROR_NONE) {
788 * printf("Failed to initialize\n");
792 * printf("Initialized Successfully\n");
797 * function(); // initialize Wi-Fi Direct
798 * wifi_direct_deinitialize(); // deinitizlize Wi-Fi Direct
803 int wifi_direct_initialize(void);
806 * @brief Deinitializes Wi-Fi Direct service.
808 * @return @c 0 on success,
809 * otherwise a negative error value
810 * @retval #WIFI_DIRECT_ERROR_NONE Successful
811 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
812 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
813 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
814 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
815 * @see wifi_direct_initialize()
818 * Here is an example of the usage:
821 * #include <wifi_direct.h>
823 * void function(void)
827 * ret = wifi_direct_deinitialize();
829 * if (ret != WIFI_DIRECT_ERROR_NONE) {
830 * printf("Failed to deinitialize\n");
834 * printf("Deinitialized Successfully\n");
839 * wifi_direct_initialize(); // initialize Wi-Fi Direct
840 * function(); // deinitialize Wi-Fi Direct
845 int wifi_direct_deinitialize(void);
849 * @brief Registers the callback called when the state of device is changed.
851 * @param[in] cb The callback function to invoke
852 * @param[in] user_data The user data to be passed to the callback function
853 * @return @c 0 on success,
854 * otherwise a negative error value
855 * @retval #WIFI_DIRECT_ERROR_NONE Successful
856 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
857 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
858 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
859 * @see wifi_direct_initialize()
860 * @see wifi_direct_unset_device_state_changed_cb()
861 * @see wifi_direct_device_state_changed_cb()
864 * Here is an example of the usage:
867 * #include <wifi_direct.h>
869 * void callback(int error_code,
870 * Wifi_direct_device_state_e device_state,
873 * switch (device_state) {
874 * case WIFI_DIRECT_DEVICE_STATE_ACTIVATED:
875 * printf("device activated\n");
877 * //Do stuff here when Wi-Fi Direct is activated
881 * case WIFI_DIRECT_DEVICE_STATE_DEACTIVATED:
882 * printf("device deactivated\n");
884 * //Do stuff here when Wi-Fi Direct is deactivated
893 * void function(void)
897 * ret = wifi_direct_set_device_state_changed_cb(callback, NULL);
899 * if (ret != WIFI_DIRECT_ERROR_NONE) {
900 * printf("Failed to register callback\n");
904 * printf("callback registered Successfully\n");
909 * wifi_direct_initialize(); // initialize Wi-Fi Direct
910 * wifi_direct_activate(); // Activate Wi-Fi Direct
912 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
913 * wifi_direct_deinitialize(); // deinitialize Wi-Fi Direct
918 int wifi_direct_set_device_state_changed_cb(wifi_direct_device_state_changed_cb cb, void *user_data);
922 * @brief Unregisters the callback called when the state of device is changed.
924 * @return @c 0 on success,
925 * otherwise a negative error value
926 * @retval #WIFI_DIRECT_ERROR_NONE Successful
927 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
928 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
929 * @see wifi_direct_initialize()
930 * @see wifi_direct_set_device_state_changed_cb()
933 * Here is an example of the usage:
936 * #include <wifi_direct.h>
938 * void function(void)
942 * ret = wifi_direct_unset_device_state_changed_cb();
944 * if (ret != WIFI_DIRECT_ERROR_NONE) {
945 * printf("Failed to deregister callback\n");
949 * printf("callback deregistered Successfully\n");
954 * wifi_direct_initialize(); // initialize Wi-Fi Direct
956 * wifi_direct_deinitialize(); // deinitialize Wi-Fi Direct
961 int wifi_direct_unset_device_state_changed_cb(void);
965 * @brief Registers the callback called when the state of discovery is changed.
967 * @param[in] cb The callback function to invoke
968 * @param[in] user_data The user data to be passed to the callback function
969 * @return @c 0 on success,
970 * otherwise a negative error value
971 * @retval #WIFI_DIRECT_ERROR_NONE Successful
972 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
973 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
974 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
975 * @see wifi_direct_initialize()
976 * @see wifi_direct_unset_discovery_state_changed_cb()
977 * @see wifi_direct_discovery_state_chagned_cb()
980 * Here is an example of the usage:
983 * #include <wifi_direct.h>
985 * void callback(int error_code,
986 * wifi_direct_discovery_state_e discovery_state,
989 * switch(discovery_state) {
990 * case WIFI_DIRECT_DISCOVERY_STARTED:
991 * printf("Discovery started\n");
994 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
995 * printf("listen started\n");
998 * case WIFI_DIRECT_DISCOVERY_FINISHED:
999 * printf("Discovery finished\n");
1002 * case WIFI_DIRECT_DISCOVERY_FOUND:
1003 * printf("peer devices found\n");
1006 * case WIFI_DIRECT_DISCOVERY_LOST:
1007 * printf("Discovery lost\n");
1016 * void function(void)
1020 * ret = wifi_direct_set_discovery_state_changed_cb(callback, NULL);
1022 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1023 * printf("Failed to register callback\n");
1027 * printf("callback registered Successfully\n");
1032 * wifi_direct_initialize(); // initialize Wi-Fi Direct
1033 * wifi_direct_activate(); // Activate Wi-Fi Direct
1035 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
1036 * wifi_direct_deinitialize(); // Deintialize Wi-Fi Direct
1041 int wifi_direct_set_discovery_state_changed_cb(wifi_direct_discovery_state_chagned_cb cb, void* user_data);
1045 * @brief Unregisters the callback called when the state of discovery is changed.
1047 * @return @c 0 on success,
1048 * otherwise a negative error value
1049 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1050 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
1051 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
1052 * @see wifi_direct_initialize()
1053 * @see wifi_direct_set_discovery_state_changed_cb()
1056 * Here is an example of the usage:
1058 * #include <stdio.h>
1059 * #include <wifi_direct.h>
1061 * void function(void)
1065 * ret = wifi_direct_unset_discovery_state_changed_cb();
1067 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1068 * printf("Failed to deregister callback\n");
1072 * printf("callback deregistered Successfully\n");
1077 * wifi_direct_initialize(); // initialize Wi-Fi Direct
1078 * wifi_direct_activate(); // Activate Wi-FI Direct
1080 * wifi_direct_deactivate(); // Deactivate Wi-FI Direct
1081 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
1086 int wifi_direct_unset_discovery_state_changed_cb(void);
1090 * @brief Registers the callback called when the peer is found.
1092 * @param[in] cb The callback function to invoke
1093 * @param[in] user_data The user data to be passed to the callback function
1094 * @return @c 0 on success,
1095 * otherwise a negative error value
1096 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1097 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
1098 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
1099 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
1100 * @see wifi_direct_initialize()
1101 * @see wifi_direct_unset_peer_found_cb()
1102 * @see wifi_direct_peer_found_cb()
1105 * Here is an example of the usage:
1107 * #include <stdio.h>
1108 * #include <wifi_direct.h>
1110 * void callback(int error_code,
1111 * wifi_direct_discovery_state_e discovery_state,
1112 * const char *mac_address,
1115 * switch (discovery_state) {
1116 * case WIFI_DIRECT_DISCOVERY_FOUND:
1117 * printf("Peer found\n");
1118 * printf("MAC Address=%s\n", mac_address);
1120 * // Do stuff here for discovered devices
1129 * void function(void)
1133 * ret = wifi_direct_set_peer_found_cb(callback, NULL);
1135 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1136 * printf("Failed to register callback\n");
1140 * printf("callback registered Successfully\n");
1145 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
1146 * wifi_direct_activate(); // Activate Wi-Fi Direct
1148 * wifi_direct_deactivate(); // Deactivate Wi-FI Direct
1149 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
1154 int wifi_direct_set_peer_found_cb(wifi_direct_peer_found_cb cb, void* user_data);
1158 * @brief Unregisters the callback called when the peer is found.
1160 * @return @c 0 on success,
1161 * otherwise a negative error value
1162 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1163 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
1164 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
1165 * @see wifi_direct_initialize()
1166 * @see wifi_direct_set_peer_found_cb()
1169 * Here is an example of the usage:
1171 * #include <stdio.h>
1172 * #include <wifi_direct.h>
1174 * void function(void)
1178 * ret = wifi_direct_unset_peer_found_cb();
1180 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1181 * printf("Failed to deregister callback\n");
1185 * printf("callback deregistered Successfully\n");
1190 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
1192 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
1197 int wifi_direct_unset_peer_found_cb(void);
1201 * @brief Registers the callback called when the state of connection is changed.
1203 * @param[in] cb The callback function to invoke
1204 * @param[in] user_data The user data to be passed to the callback function
1205 * @return @c 0 on success,
1206 * otherwise a negative error value
1207 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1208 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
1209 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
1210 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
1211 * @see wifi_direct_initialize()
1212 * @see wifi_direct_unset_connection_state_changed_cb()
1213 * @see wifi_direct_connection_state_changed_cb()
1216 * Here is an example of the usage:
1218 * #include <stdio.h>
1219 * #include <wifi_direct.h>
1221 * void callback(int error_code,
1222 * wifi_direct_connection_state_e connection_state,
1223 * const char *mac_address,
1230 * switch (connection_state) {
1232 * case WIFI_DIRECT_CONNECTION_IN_PROGRESS:
1233 * printf("Connection in progress\n");
1236 * case WIFI_DIRECT_CONNECTION_RSP:
1237 * if (error_code == WIFI_DIRECT_ERROR_NONE) {
1238 * printf("Peer Device Connected\n"); // device is connected
1240 * printf("MAC=%s\n", mac_address); // device's MAC address
1242 * wifi_direct_get_ip_address(&ip);
1243 * printf("IP=%s\n", ip); //device's IP address
1245 * wifi_direct_is_group_owner(&owner);
1246 * printf("Ownership=%s\n", (owner)? "GO":"STA"); // (GO or client role)
1248 * } else if (error_code == WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT) {
1249 * printf("Connection timeout occurred\n");
1250 * } else if (error_code == WIFI_DIRECT_ERROR_AUTH_FAILED) {
1251 * printf("Connection authorization Failed\n");
1253 * printf("Connection failed\n");
1256 * case WIFI_DIRECT_CONNECTION_WPS_REQ:
1258 * wifi_direct_get_local_wps_type(&wps_mode);
1260 * if (wps_mode == WIFI_DIRECT_WPS_TYPE_PBC) {
1261 * printf("Connection type WPS PBC\n");
1262 * // Handle WPS PBC case here
1265 * if (wps_mode == WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY) {
1266 * printf("Connection type WPS PIN DISPLAY\n");
1267 * // Handle WPS PIN Display case here
1270 * if (wps_mode == WIFI_DIRECT_WPS_PIN_KEYPAD) {
1271 * printf("Connection type WPS PIN KEYPAD\n");
1272 * // Handle WPS PIN Keypad case here
1276 * case WIFI_DIRECT_CONNECTION_REQ:
1277 * printf("Connection request from MAC %s\n", mac_address);
1279 * // Handle the connection request from peer device here
1281 * // 2. WPS PIN Display
1282 * // 3. WPS PIN Keypad
1284 * wifi_direct_accept_connection(mac_address);
1287 * case WIFI_DIRECT_DISCONNECTION_IND:
1288 * if (error_code == WIFI_DIRECT_ERROR_NONE)
1289 * printf("peer device disconnected MAC %s\n", mac_address);
1292 * case WIFI_DIRECT_DISCONNECTION_RSP:
1293 * if (error_code == WIFI_DIRECT_ERROR_NONE)
1294 * printf("peer device disconnection response MAC %s\n", mac_address);
1297 * case WIFI_DIRECT_CONNECTION_DISASSOCIATION_IND:
1298 * if (error_code == WIFI_DIRECT_ERROR_NONE)
1299 * printf("peer device disassociation MAC %s\n", mac_address);
1302 * case WIFI_DIRECT_GROUP_CREATED:
1303 * printf("Group Created\n");
1306 * case WIFI_DIRECT_GROUP_DESTROYED:
1307 * printf("Group Destroyed\n");
1315 * void function(void)
1319 * ret = wifi_direct_set_connection_state_changed_cb(callback,
1322 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1323 * printf("Failed to register callback\n");
1327 * printf("callback registered Successfully\n");
1332 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
1333 * wifi_direct_activate(); // Activate Wi-Fi Direct
1335 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
1336 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
1341 int wifi_direct_set_connection_state_changed_cb(wifi_direct_connection_state_changed_cb cb, void *user_data);
1345 * @brief Unregisters the callback called when the state of connection is changed.
1347 * @return @c 0 on success,
1348 * otherwise a negative error value
1349 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1350 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
1351 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
1352 * @see wifi_direct_initialize()
1353 * @see wifi_direct_set_connection_state_changed_cb()
1356 * Here is an example of the usage:
1358 * #include <stdio.h>
1359 * #include <wifi_direct.h>
1361 * void function(void)
1365 * ret = wifi_direct_unset_connection_state_changed_cb();
1367 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1368 * printf("Failed to deregister callback\n");
1372 * printf("callback deregistered Successfully\n");
1377 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
1379 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
1384 int wifi_direct_unset_connection_state_changed_cb(void);
1387 * @brief Sets the callback called when the state of connection is changed.
1389 * @param[in] cb The callback function to invoke
1390 * @param[in] user_data The user data to be passed to the callback function
1391 * @return @c 0 on success,
1392 * otherwise a negative error value
1393 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1394 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
1395 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
1396 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
1397 * @see wifi_direct_initialize()
1398 * @see wifi_direct_unset_peer_info_connection_state_changed_cb()
1399 * @see wifi_direct_peer_info_connection_state_changed_cb()
1401 int wifi_direct_set_peer_info_connection_state_changed_cb(wifi_direct_peer_info_connection_state_changed_cb cb, void *user_data);
1404 * @brief Unsets the callback called when the state of connection is changed.
1406 * @return @c 0 on success,
1407 * otherwise a negative error value
1408 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1409 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
1410 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
1411 * @see wifi_direct_initialize()
1412 * @see wifi_direct_set_peer_info_connection_state_changed_cb()
1414 int wifi_direct_unset_peer_info_connection_state_changed_cb(void);
1418 * @brief Registers the callback called when the IP address of the client is assigned
1419 * if your device is the group owner.
1421 * @param[in] cb The callback function to invoke
1422 * @param[in] user_data The user data to be passed to the callback function
1423 * @return @c 0 on success,
1424 * otherwise a negative error value
1425 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1426 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
1427 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
1428 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
1429 * @see wifi_direct_initialize()
1430 * @see wifi_direct_unset_client_ip_address_assigned_cb()
1431 * @see wifi_direct_client_ip_address_assigned_cb()
1434 * Here is an example of the usage:
1436 * #include <stdio.h>
1437 * #include <wifi_direct.h>
1440 * void callback(const char *mac_address,
1441 * const char *ip_address,
1442 * const char *interface_address,
1445 * printf("IP Assigned to the client device\n");
1447 * printf("mac=%s\n", mac_address);
1448 * printf("ip=%s\n", ip_address);
1449 * printf("iface=%s\n", interface_address);
1452 * void function(void)
1456 * ret = wifi_direct_set_client_ip_address_assigned_cb(callback,
1459 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1460 * printf("Failed to register callback\n");
1464 * printf("callback registered Successfully\n");
1469 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
1470 * wifi_direct_activate(); // Activate Wi-Fi Direct
1472 * wifi_direct_deactivate(); // deactivate Wi-Fi Direct
1473 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
1478 int wifi_direct_set_client_ip_address_assigned_cb(wifi_direct_client_ip_address_assigned_cb cb, void *user_data);
1482 * @brief Unregisters the callback called when the IP address of the client is assigned
1483 * if your device is the group owner.
1485 * @return @c 0 on success,
1486 * otherwise a negative error value
1487 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1488 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
1489 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
1490 * @see wifi_direct_initialize()
1491 * @see wifi_direct_set_connection_state_changed_cb()
1494 * Here is an example of the usage:
1496 * #include <stdio.h>
1497 * #include <wifi_direct.h>
1499 * void function(void)
1503 * ret = wifi_direct_unset_client_ip_address_assigned_cb();
1505 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1506 * printf("Failed to deregister callback\n");
1510 * printf("callback deregistered Successfully\n");
1515 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
1517 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
1522 int wifi_direct_unset_client_ip_address_assigned_cb(void);
1526 * @brief Registers the callback called when the state of the service discovery is changed.
1528 * @param[in] cb The callback function to invoke
1529 * @param[in] user_data The user data to be passed to the callback function
1530 * @return @c 0 on success,
1531 * otherwise a negative error value
1532 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1533 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
1534 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
1535 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
1536 * @see wifi_direct_initialize()
1537 * @see wifi_direct_unset_service_state_changed_cb()
1538 * @see wifi_direct_service_state_changed_cb()
1541 * Here is an example of the usage:
1543 * #include <stdio.h>
1544 * #include <wifi_direct.h>
1547 * void callback(int error_code,
1548 * wifi_direct_service_discovery_state_e discovery_state,
1549 * wifi_direct_service_type_e service_type,
1550 * void *response_data,
1551 * const char *mac_address,
1554 * switch (discovery_state) {
1555 * case WIFI_DIRECT_SERVICE_DISCOVERY_STARTED:
1556 * printf("Discovery Started\n");
1559 * case WIFI_DIRECT_SERVICE_DISCOVERY_FINISHED:
1560 * printf("Discovery finished\n");
1563 * case WIFI_DIRECT_SERVICE_DISCOVERY_FOUND:
1564 * printf("Discovery found\n");
1565 * if (mac_address != NULL)
1566 * printf("Peer MAC=%s\n", mac_address);
1568 * if (response_data != NULL)
1569 * printf("Peer response=%s\n", (char *)response_data);
1571 * if (service_type == WIFI_DIRECT_SERVICE_TYPE_ALL)
1572 * printf("service type all\n");
1573 * if (service_type == WIFI_DIRECT_SERVICE_TYPE_BONJOUR)
1574 * printf("service type bonjour\n");
1575 * if (service_type == WIFI_DIRECT_SERVICE_TYPE_UPNP)
1576 * printf("service type UPNP\n");
1577 * if (service_type == WIFI_DIRECT_SERVICE_TYPE_BT_ADDR)
1578 * printf("service type BT_ADDR\n");
1579 * if (service_type == WIFI_DIRECT_SERVICE_TYPE_CONTACT_INFO)\
1580 * printf("service type contact info\n");
1588 * void function(void)
1592 * ret = wifi_direct_set_service_state_changed_cb(callback,
1595 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1596 * printf("Failed to register callback\n");
1600 * printf("callback registered Successfully\n");
1605 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
1606 * wifi_direct_activate(); // Activate Wi-Fi Direct
1608 * wifi_direct_deactivate(); // deactivate Wi-Fi Direct
1609 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
1614 int wifi_direct_set_service_state_changed_cb(wifi_direct_service_state_changed_cb cb, void *user_data);
1618 * @brief Unregisters the callback called when the state of the service discovery is changed.
1620 * @return @c 0 on success,
1621 * otherwise a negative error value
1622 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1623 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
1624 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
1625 * @see wifi_direct_initialize()
1626 * @see wifi_direct_set_service_state_changed_cb()
1629 * Here is an example of the usage:
1631 * #include <stdio.h>
1632 * #include <wifi_direct.h>
1634 * void function(void)
1638 * ret = wifi_direct_unset_service_state_changed_cb();
1640 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1641 * printf("Failed to deregister callback\n");
1645 * printf("callback deregistered Successfully\n");
1650 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
1652 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
1657 int wifi_direct_unset_service_state_changed_cb(void);
1661 * @brief Registers the callback called when the state of Wi-Fi Direct is changed.
1663 * @param[in] cb The callback function to invoke
1664 * @param[in] user_data The user data to be passed to the callback function
1665 * @return @c 0 on success,
1666 * otherwise a negative error value
1667 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1668 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
1669 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation Failed
1670 * @see wifi_direct_unset_state_changed_cb()
1673 * Here is an example of the usage:
1675 * #include <stdio.h>
1676 * #include <wifi_direct.h>
1679 * char* print_link_state(wifi_direct_state_e state)
1681 * if (state == WIFI_DIRECT_STATE_DEACTIVATED)
1682 * return "DEACTIVATED";
1683 * if (state == WIFI_DIRECT_STATE_ACTIVATING)
1684 * return "ACTIVATING";
1685 * if (state == WIFI_DIRECT_STATE_ACTIVATED)
1686 * return "ACTIVATED";
1687 * if (state == WIFI_DIRECT_STATE_DISCOVERING)
1688 * return "DISCOVERING";
1689 * if (state == WIFI_DIRECT_STATE_CONNECTING)
1690 * return "CONNECTING";
1691 * if (state == WIFI_DIRECT_STATE_DISCONNECTING)
1692 * return "DISCONNECTING";
1693 * if (state == WIFI_DIRECT_STATE_CONNECTED)
1694 * return "CONNECTED";
1695 * if (state == WIFI_DIRECT_STATE_GROUP_OWNER)
1696 * return "GROUP OWNER";
1697 * return "Unknown state";
1700 * void callback(wifi_direct_state_e state,
1703 * printf("State changed [%s]\n", print_link_state(state));
1706 * void function(void)
1710 * ret = wifi_direct_set_state_changed_cb(callback,
1713 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1714 * printf("Failed to register callback\n");
1718 * printf("callback registered Successfully\n");
1723 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
1724 * wifi_direct_activate(); // Activate Wi-Fi Direct
1726 * wifi_direct_deactivate(); // deactivate Wi-Fi Direct
1727 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
1732 int wifi_direct_set_state_changed_cb(wifi_direct_state_changed_cb cb, void *user_data);
1736 * @brief Unregisters the callback called when the state of Wi-Fi Direct is changed.
1738 * @return @c 0 on success,
1739 * otherwise a negative error value
1740 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1741 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation Failed
1742 * @see wifi_direct_initialize()
1743 * @see wifi_direct_set_state_changed_cb()
1746 * Here is an example of the usage:
1748 * #include <stdio.h>
1749 * #include <wifi_direct.h>
1751 * void function(void)
1755 * ret = wifi_direct_unset_state_changed_cb();
1757 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1758 * printf("Failed to deregister callback\n");
1762 * printf("callback deregistered Successfully\n");
1767 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
1769 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
1774 int wifi_direct_unset_state_changed_cb(void);
1778 * @brief Activates the Wi-Fi Direct service, asynchronously.
1781 * @privilege http://tizen.org/privilege/wifidirect
1782 * @return @c 0 on success,
1783 * otherwise a negative error value
1784 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1785 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
1786 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
1787 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
1788 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
1789 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
1790 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
1791 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
1792 * @retval #WIFI_DIRECT_ERROR_WIFI_USED Wi-Fi is being used
1793 * @retval #WIFI_DIRECT_ERROR_MOBILE_AP_USED Mobile AP is being used
1794 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
1795 * @post wifi_direct_device_state_changed_cb() will be invoked.
1796 * @see wifi_direct_initialize()
1797 * @see wifi_direct_deactivate()
1798 * @see wifi_direct_device_state_changed_cb()
1801 * Here is an example of the usage:
1803 * #include <stdio.h>
1804 * #include <wifi_direct.h>
1807 * int function(void)
1811 * ret = wifi_direct_activate(); // Activate Wi-Fi Direct
1813 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1814 * printf("Failed to activate Wi-Fi Direct\n");
1818 * printf("Wi-Fi Direct Activated\n");
1824 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
1826 * wifi_direct_deactivate(); // deactivate Wi-Fi Direct
1827 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
1832 int wifi_direct_activate(void);
1836 * @brief Deactivates the Wi-Fi Direct service, asynchronously.
1839 * @privilege http://tizen.org/privilege/wifidirect
1840 * @return @c 0 on success,
1841 * otherwise a negative error value
1842 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1843 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
1844 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
1845 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
1846 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
1847 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
1848 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
1849 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
1850 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
1851 * @post wifi_direct_device_state_changed_cb() will be invoked.
1852 * @see wifi_direct_activate()
1853 * @see wifi_direct_device_state_changed_cb()
1856 * Here is an example of the usage:
1858 * #include <stdio.h>
1859 * #include <wifi_direct.h>
1862 * int function(void)
1866 * ret = wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
1868 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1869 * printf("Failed to deactivate Wi-Fi Direct\n");
1873 * printf("Wi-Fi Direct Deactivated\n");
1879 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
1880 * wifi_direct_activated(); // Activated Wi-Fi Direct
1882 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
1887 int wifi_direct_deactivate(void);
1891 * @brief Starts discovery to find all P2P capable devices, asynchronously.
1892 * @details If application developers call wifi_direct_start_discovery() with @a listen_only as @c true,
1893 * then skip the initial 802.11 Scan and then enter Listen state instead of
1894 * cycling between Scan and Listen.
1897 * @privilege http://tizen.org/privilege/wifidirect
1898 * @remarks The function can be called if the Wi-Fi Direct state is one of:\n
1899 * #WIFI_DIRECT_STATE_ACTIVATED\n
1900 * #WIFI_DIRECT_STATE_DISCOVERING\n
1901 * #WIFI_DIRECT_STATE_GROUP_OWNER\n
1902 * The function can be called even if there is another discovery in progress.
1903 * All started processes will run simultaneously. Each process will receive
1904 * #WIFI_DIRECT_DISCOVERY_FINISHED
1905 * event in wifi_direct_discovery_state_chagned_cb().
1906 * @param[in] listen_only The status of listen only: (@c true = listen only,
1907 * @c false = cycling between Scan and Listen)
1908 * @param[in] timeout Specifies the duration of discovery period, in seconds.
1909 * If @c 0, then there is no limit on how long the discovery takes.
1910 * The actual limit (and time after which discovery stops) depends on
1911 * the vendor's hardware and firmware
1912 * @return @c 0 on success,
1913 * otherwise a negative error value
1914 * @retval #WIFI_DIRECT_ERROR_NONE Successful
1915 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
1916 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
1917 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
1918 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
1919 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
1920 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
1921 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
1922 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
1923 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
1924 * @post wifi_direct_discovery_state_chagned_cb() will be invoked.
1925 * @see wifi_direct_activate()
1926 * @see wifi_direct_cancel_discovery()
1927 * @see wifi_direct_discovery_state_chagned_cb()
1930 * Here is an example of the usage:
1932 * #include <stdio.h>
1933 * #include <wifi_direct.h>
1936 * void callback(int error_code,
1937 * wifi_direct_discovery_state_e discovery_state,
1940 * switch(discovery_state) {
1941 * case WIFI_DIRECT_DISCOVERY_STARTED:
1942 * printf("Discovery started\n");
1945 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
1946 * printf("listen started\n");
1949 * case WIFI_DIRECT_DISCOVERY_FINISHED:
1950 * printf("Discovery finished\n");
1953 * case WIFI_DIRECT_DISCOVERY_FOUND:
1954 * printf("peer devices found\n");
1957 * case WIFI_DIRECT_DISCOVERY_LOST:
1958 * printf("Discovery lost\n");
1966 * int function(void)
1970 * ret = wifi_direct_start_discovery(TRUE, 15); // Start discovery with listen only
1972 * if (ret != WIFI_DIRECT_ERROR_NONE) {
1973 * printf("Failed to start scan\n");
1982 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
1983 * wifi_direct_set_discovery_state_changed_cb(callback,
1984 * NULL); // Register callback
1985 * wifi_direct_activated(); // Activated Wi-Fi Direct
1989 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
1990 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback
1991 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
1996 int wifi_direct_start_discovery(bool listen_only, int timeout);
2000 * @brief Starts discovery to find all P2P capable devices with specified channel, asynchronously.
2001 * @details If you call this function with @a channel as @c WIFI_DIRECT_DISCOVERY_FULL_SCAN
2002 * it works same as wifi_direct_start_discovery() API.
2003 * If application developers call this function with @a channel as @c WIFI_DIRECT_DISCOVERY_SOCIAL_CHANNEL,
2004 * then will search only the devices on the social channels(channel 1 or 6 or 11).
2005 * If application developers call this function with @a type as @c WIFI_DIRECT_DISCOVERY_CHANNEL1,
2006 * then will search only the devices on the channel 1.
2007 * If application developers call this function with @a type as @c WIFI_DIRECT_DISCOVERY_CHANNEL6,
2008 * then will search only the devices on the channel 6.
2009 * If application developers call this function with @a type as @c WIFI_DIRECT_DISCOVERY_CHANNEL11,
2010 * then will search only the devices on the channel 11.
2013 * @privilege http://tizen.org/privilege/wifidirect
2014 * @remarks The function can be called if the Wi-Fi Direct state is one of:\n
2015 * #WIFI_DIRECT_STATE_ACTIVATED\n
2016 * #WIFI_DIRECT_STATE_DISCOVERING\n
2017 * #WIFI_DIRECT_STATE_GROUP_OWNER\n
2018 * The function can be called even if there is another discovery in progress.
2019 * All started processes will run simultaneously. Each process will receive
2020 * #WIFI_DIRECT_DISCOVERY_FINISHED
2021 * event in wifi_direct_discovery_state_chagned_cb().
2022 * @param[in] listen_only The status of listen only: (@c true = listen only,
2023 * @c false = cycling between Scan and Listen)
2024 * @param[in] timeout Specifies the duration of discovery period, in seconds.
2025 * If @c 0, then there is no limit on how long the discovery takes.
2026 * The actual limit (and time after which discovery stops) depends on
2027 * the vendor's hardware and firmware
2028 * @param[in] channel Specifies the discovery channel. (Full scan, social channels, channel 1, 6, 11)
2029 * @return @c 0 on success,
2030 * otherwise a negative error value
2031 * @retval #WIFI_DIRECT_ERROR_NONE Successful
2032 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
2033 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
2034 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
2035 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
2036 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
2037 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
2038 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
2039 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
2040 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
2041 * @post wifi_direct_discovery_state_chagned_cb() will be invoked.
2042 * @see wifi_direct_activate()
2043 * @see wifi_direct_cancel_discovery()
2044 * @see wifi_direct_discovery_state_chagned_cb()
2047 * Here is an example of the usage:
2049 * #include <stdio.h>
2050 * #include <wifi_direct.h>
2053 * void callback(int error_code,
2054 * wifi_direct_discovery_state_e discovery_state,
2057 * switch(discovery_state) {
2058 * case WIFI_DIRECT_DISCOVERY_STARTED:
2059 * printf("Discovery started\n");
2062 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
2063 * printf("listen started\n");
2066 * case WIFI_DIRECT_DISCOVERY_FINISHED:
2067 * printf("Discovery finished\n");
2070 * case WIFI_DIRECT_DISCOVERY_FOUND:
2071 * printf("peer devices found\n");
2074 * case WIFI_DIRECT_DISCOVERY_LOST:
2075 * printf("Discovery lost\n");
2083 * int function(void)
2087 * ret = wifi_direct_start_discovery_specific_channel(TRUE, 15, // start discovery with 15sec timeout
2088 * WIFI_DIRECT_DISCOVERY_FULL_SCAN); // scan all channels
2090 * if (ret != WIFI_DIRECT_ERROR_NONE) {
2091 * printf("Failed to start scan\n");
2100 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
2101 * wifi_direct_set_discovery_state_changed_cb(callback,
2102 * NULL); // Register callback
2103 * wifi_direct_activated(); // Activated Wi-Fi Direct
2107 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
2108 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback
2109 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
2114 int wifi_direct_start_discovery_specific_channel(bool listen_only, int timeout, wifi_direct_discovery_channel_e channel);
2118 * @brief Starts discovery to find all P2P capable devices with specified frequency, asynchronously.
2121 * @privilege http://tizen.org/privilege/wifidirect
2122 * @remarks The function can be called if the Wi-Fi Direct state is one of:\n
2123 * #WIFI_DIRECT_STATE_ACTIVATED\n
2124 * #WIFI_DIRECT_STATE_DISCOVERING\n
2125 * #WIFI_DIRECT_STATE_GROUP_OWNER\n
2126 * The function can be called even if there is another discovery in progress.
2127 * All started processes will run simultaneously. Each process will receive
2128 * #WIFI_DIRECT_DISCOVERY_FINISHED
2129 * event in wifi_direct_discovery_state_chagned_cb().
2130 * @param[in] listen_only Indicates mode in which the discovery service will work.
2131 * If @c true, the service will only listen, otherwise
2132 * it will cycle between scanning and listening
2133 * @param[in] timeout Specifies the duration of discovery period, in seconds.
2134 * If @c 0, then there is no limit on how long the discovery takes.
2135 * The actual limit (and time after which discovery stops) depends on
2136 * the vendor's hardware and firmware
2137 * @param[in] frequency Specifies the discovery frequency in MHz
2138 * @return @c 0 on success,
2139 * otherwise a negative error value
2140 * @retval #WIFI_DIRECT_ERROR_NONE Successful
2141 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
2142 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
2143 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
2144 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
2145 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
2146 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
2147 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
2148 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
2149 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
2150 * @post wifi_direct_discovery_state_chagned_cb() will be invoked.
2151 * @see wifi_direct_activate()
2152 * @see wifi_direct_cancel_discovery()
2153 * @see wifi_direct_discovery_state_chagned_cb()
2154 * @see wifi_direct_discovered_peer_cb()
2157 * Here is an example of the usage:
2159 * #include <stdio.h>
2160 * #include <wifi_direct.h>
2163 * void callback(int error_code,
2164 * wifi_direct_discovery_state_e discovery_state,
2167 * switch(discovery_state) {
2168 * case WIFI_DIRECT_DISCOVERY_STARTED:
2169 * printf("Discovery started\n");
2172 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
2173 * printf("listen started\n");
2176 * case WIFI_DIRECT_DISCOVERY_FINISHED:
2177 * printf("Discovery finished\n");
2180 * case WIFI_DIRECT_DISCOVERY_FOUND:
2181 * printf("peer devices found\n");
2184 * case WIFI_DIRECT_DISCOVERY_LOST:
2185 * printf("Discovery lost\n");
2193 * int function(void)
2197 * ret = wifi_direct_start_discovery_specific_freq(TRUE, 15, // start discovery with 15sec timeout
2198 * 2437); // scan for 2437 MHz frequency (Channel 6)
2200 * if (ret != WIFI_DIRECT_ERROR_NONE) {
2201 * printf("Failed to start scan\n");
2210 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
2211 * wifi_direct_set_discovery_state_changed_cb(callback,
2212 * NULL); // Register callback
2213 * wifi_direct_activated(); // Activated Wi-Fi Direct
2217 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
2218 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback
2219 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
2224 int wifi_direct_start_discovery_specific_freq(bool listen_only, int timeout, int frequency);
2228 * @brief Cancels discovery process, asynchronously.
2229 * @details This function stops all discovery processes started with
2230 * wifi_direct_start_discovery... functions.
2233 * @privilege http://tizen.org/privilege/wifidirect
2234 * @return @c 0 on success,
2235 * otherwise a negative error value
2236 * @retval #WIFI_DIRECT_ERROR_NONE Successful
2237 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
2238 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
2239 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
2240 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
2241 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
2242 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
2243 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
2244 * @pre Discovery must be started by wifi_direct_start_discovery().
2245 * @post wifi_direct_discovery_state_chagned_cb() will be invoked.
2246 * @see wifi_direct_start_discovery()
2247 * @see wifi_direct_start_discovery_specific_channel()
2248 * @see wifi_direct_start_discovery_specific_freq()
2249 * @see wifi_direct_discovery_state_chagned_cb()
2252 * Here is an example of the usage:
2254 * #include <stdio.h>
2255 * #include <wifi_direct.h>
2258 * void callback(int error_code,
2259 * wifi_direct_discovery_state_e discovery_state,
2262 * switch(discovery_state) {
2263 * case WIFI_DIRECT_DISCOVERY_STARTED:
2264 * printf("Discovery started\n");
2267 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
2268 * printf("listen started\n");
2271 * case WIFI_DIRECT_DISCOVERY_FINISHED:
2272 * printf("Discovery finished\n");
2275 * case WIFI_DIRECT_DISCOVERY_FOUND:
2276 * printf("peer devices found\n");
2279 * case WIFI_DIRECT_DISCOVERY_LOST:
2280 * printf("Discovery lost\n");
2288 * int function(void)
2292 * ret = wifi_direct_cancel_discovery(); // Cancel ongoing discovery
2294 * if (ret != WIFI_DIRECT_ERROR_NONE) {
2295 * printf("Failed to cancel discovery\n");
2304 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
2305 * wifi_direct_set_discovery_state_changed_cb(callback, NULL); // Register callback
2306 * wifi_direct_activated(); // Activate Wi-Fi Direct
2307 * wifi_direct_start_discovery(TRUE, 15); // Start discovery
2311 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
2312 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback
2313 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
2318 int wifi_direct_cancel_discovery(void);
2322 * @brief Called repeatedly when you get the information of discovered peers.
2324 * @remarks @a peer is valid only in this function.
2325 * @param[in] peer The information of the discovered peer
2326 * @param[in] user_data The user data passed from foreach function
2327 * @return @c true to continue with the next iteration of the loop,
2328 * @c false to break out of the loop
2329 * @see wifi_direct_foreach_discovered_peers()
2331 typedef bool (*wifi_direct_discovered_peer_cb) (wifi_direct_discovered_peer_info_s *peer, void *user_data);
2335 * @brief Gets the information of discovered peers.
2338 * @privilege http://tizen.org/privilege/wifidirect
2339 * @param[in] callback The callback function to invoke
2340 * @param[in] user_data The user data to be passed to the callback function
2341 * @return @c 0 on success,
2342 * otherwise a negative error value
2343 * @retval #WIFI_DIRECT_ERROR_NONE Successful
2344 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
2345 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
2346 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
2347 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
2348 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
2349 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
2350 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
2351 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
2352 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
2353 * @see wifi_direct_activate()
2354 * @see wifi_direct_discovered_peer_cb()
2357 * Here is an example of the usage:
2359 * #include <stdio.h>
2360 * #include <wifi_direct.h>
2363 * void function_cb(wifi_direct_discovered_peer_info_s* peer,
2367 * printf("peer device=%s MAC=%s\n", peer->device_name, peer->mac_address);
2370 * int function(void)
2374 * ret = wifi_direct_foreach_discovered_peers(function_cb, NULL); // get discovered peer devices info
2376 * if (ret != WIFI_DIRECT_ERROR_NONE) {
2377 * printf("Failed to get discovered peers\n");
2384 * void callback(int error_code,
2385 * wifi_direct_discovery_state_e discovery_state,
2388 * switch(discovery_state) {
2389 * case WIFI_DIRECT_DISCOVERY_STARTED:
2390 * printf("Discovery started\n");
2393 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
2394 * printf("listen started\n");
2397 * case WIFI_DIRECT_DISCOVERY_FINISHED:
2398 * printf("Discovery finished\n");
2404 * case WIFI_DIRECT_DISCOVERY_FOUND:
2405 * printf("peer devices found\n");
2408 * case WIFI_DIRECT_DISCOVERY_LOST:
2409 * printf("Discovery lost\n");
2419 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
2420 * wifi_direct_set_discovery_state_changed_cb(callback, NULL); // Register callback
2421 * wifi_direct_activated(); // Activate Wi-Fi Direct
2422 * wifi_direct_start_discovery(TRUE, 15); // Start discovery
2426 * // App must cleaup Wi-Fi Direct before exiting
2428 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
2429 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback
2430 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
2435 int wifi_direct_foreach_discovered_peers(wifi_direct_discovered_peer_cb callback, void *user_data);
2439 * @brief Connects to a specified peer, asynchronously.
2440 * @details This API connects to specified peer by automatically determining
2441 * whether to perform group formation, join an existing group, invite, re-invoke a group.
2442 * The decision is based on the current state of the peers (i.e. GO, STA, not connected)
2443 * and the availability of persistent data.
2446 * @privilege http://tizen.org/privilege/wifidirect
2447 * @param[in] mac_address The MAC address of remote device
2448 * @return @c 0 on success,
2449 * otherwise a negative error value
2450 * @retval #WIFI_DIRECT_ERROR_NONE Successful
2451 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
2452 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
2453 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
2454 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
2455 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
2456 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
2457 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
2458 * @retval #WIFI_DIRECT_ERROR_TOO_MANY_CLIENT Too many client
2459 * @retval #WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT Connection timed out
2460 * @retval #WIFI_DIRECT_ERROR_CONNECTION_FAILED Connection failed
2461 * @retval #WIFI_DIRECT_ERROR_AUTH_FAILED Authentication failed
2462 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
2463 * @post wifi_direct_connection_state_changed_cb() will be invoked.
2464 * @see wifi_direct_activate()
2465 * @see wifi_direct_disconnect()
2466 * @see wifi_direct_disconnect_all()
2467 * @see wifi_direct_connection_state_changed_cb()
2470 * Here is an example of the usage:
2472 * #include <stdio.h>
2473 * #include <wifi_direct.h>
2476 * bool device_selected = false;
2478 * void peers_cb(wifi_direct_discovered_peer_info_s* peer,
2481 * if (peer && !device_selected) {
2482 * printf("peer device=%s MAC=%s\n", peer->device_name, peer->mac_address);
2484 * device_selected = true;
2486 * function(peer->mac_address); // Connect to the first discovered peer
2490 * int function(const char *mac)
2494 * ret = wifi_direct_connect(mac); // connect to the peer device
2496 * if (ret != WIFI_DIRECT_ERROR_NONE) {
2497 * printf("Failed to connect the peer\n");
2504 * void callback_2(int error_code,
2505 * wifi_direct_connection_state_e state,
2506 * const char *mac, void *user_data)
2509 * case WIFI_DIRECT_CONNECTION_IN_PROGRESS:
2510 * printf("Connection in progress\n");
2513 * case WIFI_DIRECT_CONNECTON_RSP:
2514 * printf("Connected\n");
2517 * case WIFI_DIRECT_DISCONNECTION_IND:
2518 * printf("Disconnection IND\n");
2521 * case WIFI_DIRECT_DISCONNECTION_RSP;
2522 * printf("Disconnected\n");
2527 * void callback_1(int error_code,
2528 * wifi_direct_discovery_state_e discovery_state,
2531 * switch(discovery_state) {
2532 * case WIFI_DIRECT_DISCOVERY_STARTED:
2533 * printf("Discovery started\n");
2536 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
2537 * printf("listen started\n");
2540 * case WIFI_DIRECT_DISCOVERY_FINISHED:
2541 * printf("Discovery finished\n");
2543 * wifi_direct_foreach_discovered_peers(peers_cb,
2544 * NULL); // Get discovered peer
2547 * case WIFI_DIRECT_DISCOVERY_FOUND:
2548 * printf("peer devices found\n");
2551 * case WIFI_DIRECT_DISCOVERY_LOST:
2552 * printf("Discovery lost\n");
2562 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
2563 * wifi_direct_set_discovery_state_changed_cb(callback_1, NULL); // Register callback 1
2564 * wifi_direct_set_connection_state_changed_cb(callback_2, NULL); // Register callback 2
2566 * wifi_direct_activated(); // Activate Wi-Fi Direct
2567 * wifi_direct_start_discovery(TRUE, 15); // Start discovery
2571 * // App must cleaup Wi-Fi Direct before exiting
2573 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
2574 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback
2575 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
2580 int wifi_direct_connect(char *mac_address);
2584 * @brief Cancels the connection now in progress.
2587 * @privilege http://tizen.org/privilege/wifidirect
2588 * @param[in] mac_address The MAC address of rejected device
2589 * @return @c 0 on success,
2590 * otherwise a negative error value
2591 * @retval #WIFI_DIRECT_ERROR_NONE Successful
2592 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
2593 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
2594 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
2595 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
2596 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
2597 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
2598 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
2601 * Here is an example of the usage:
2603 * #include <stdio.h>
2604 * #include <wifi_direct.h>
2606 * bool peer_selected = false;
2607 * int connection_timeout = 0;
2608 * int count = 0; // counter to wait for connection
2610 * int function(char *mac);
2612 * gboolean connection_timeout_cb(gpointer data)
2614 * char *mac = (char *)data;
2621 * function(mac); // cancel ongoing connection
2626 * void peers_cb(wifi_direct_discovered_peer_info_s* peer,
2631 * if (peer && !peer_selected) {
2632 * printf("peer device=%s MAC=%s\n", peer->device_name, peer->mac_address);
2634 * mac = g_strdup(peer->mac_address);
2635 * peer_selected = true;
2637 * wifi_direct_connect(mac); // Connect to the selected peer
2638 * connection_timeout = g_timeout_add(1000,
2639 * connection_timeout_cb,
2640 * mac); // Add 3secs timeout
2644 * int function(char *mac)
2648 * ret = wifi_direct_cancel_connection(mac); // cancel connection
2650 * if (ret != WIFI_DIRECT_ERROR_NONE) {
2651 * printf("Failed to cancel the ongoing connection\n");
2658 * void callback_2(int error_code,
2659 * wifi_direct_connection_state_e state,
2660 * const char *mac, void *user_data)
2663 * case WIFI_DIRECT_CONNECTION_IN_PROGRESS:
2664 * printf("Connection in progress\n");
2667 * case WIFI_DIRECT_CONNECTON_RSP:
2668 * printf("Connected\n");
2669 * g_source_remove(connection_timeout);
2672 * case WIFI_DIRECT_DISCONNECTION_IND:
2673 * printf("Disconnection IND\n");
2676 * case WIFI_DIRECT_DISCONNECTION_RSP;
2677 * printf("Disconnected\n");
2682 * void callback_1(int error_code,
2683 * wifi_direct_discovery_state_e discovery_state,
2686 * switch(discovery_state) {
2687 * case WIFI_DIRECT_DISCOVERY_STARTED:
2688 * printf("Discovery started\n");
2691 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
2692 * printf("listen started\n");
2695 * case WIFI_DIRECT_DISCOVERY_FINISHED:
2696 * printf("Discovery finished\n");
2698 * wifi_direct_foreach_discovered_peers(peers_cb,
2699 * NULL); // Get discovered peer
2702 * case WIFI_DIRECT_DISCOVERY_FOUND:
2703 * printf("peer devices found\n");
2706 * case WIFI_DIRECT_DISCOVERY_LOST:
2707 * printf("Discovery lost\n");
2717 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
2718 * wifi_direct_set_discovery_state_changed_cb(callback_1, NULL); // Register callback 1
2719 * wifi_direct_set_connection_state_changed_cb(callback_2, NULL); // Register callback 2
2721 * wifi_direct_activated(); // Activate Wi-Fi Direct
2722 * wifi_direct_start_discovery(TRUE, 15); // Start discovery
2724 * // App must cleaup Wi-Fi Direct before exiting
2726 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
2727 * wifi_direct_unset_connection_state_changed_cb(); // Deregister callback 2
2728 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback 1
2729 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
2734 int wifi_direct_cancel_connection(char *mac_address);
2738 * @brief Disconnects all connected links to peers, asynchronously.
2741 * @privilege http://tizen.org/privilege/wifidirect
2742 * @return @c 0 on success,
2743 * otherwise a negative error value
2744 * @retval #WIFI_DIRECT_ERROR_NONE Successful
2745 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
2746 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
2747 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
2748 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
2749 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
2750 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
2751 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
2752 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
2753 * @post wifi_direct_connection_state_changed_cb() will be invoked.
2754 * @see wifi_direct_activate()
2755 * @see wifi_direct_disconnect()
2756 * @see wifi_direct_connection_state_changed_cb()
2759 * Here is an example of the usage:
2761 * #include <stdio.h>
2762 * #include <wifi_direct.h>
2764 * void callback(int error_code,
2765 * wifi_direct_connection_state_e state,
2766 * const char *mac, void *user_data)
2769 * case WIFI_DIRECT_CONNECTION_IN_PROGRESS:
2770 * printf("Connection in progress\n");
2773 * case WIFI_DIRECT_CONNECTON_RSP:
2774 * printf("Connected\n");
2777 * case WIFI_DIRECT_DISCONNECTION_IND:
2778 * printf("Disconnection IND\n");
2781 * case WIFI_DIRECT_DISCONNECTION_RSP;
2782 * printf("Disconnected\n"); // disconnect notification
2787 * int function(void)
2791 * res = wifi_direct_disconnect_all(); // disconnect all the connected peers
2793 * if (res != WIFI_DIRECT_ERROR_NONE) {
2794 * printf("Failed to disconnect all clients\n");
2803 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
2804 * wifi_direct_set_connection_state_changed_cb(callback, NULL); // Register callback
2805 * wifi_direct_activated(); // Activate Wi-Fi Direct *
2811 * // App must cleaup Wi-Fi Direct before exiting
2813 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
2814 * wifi_direct_unset_connection_state_changed_cb(); // Deregister callback
2815 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
2820 int wifi_direct_disconnect_all(void);
2824 * @brief Disconnects the specified peer, asynchronously.
2827 * @privilege http://tizen.org/privilege/wifidirect
2828 * @param[in] mac_address The MAC address of remote device
2829 * @return @c 0 on success,
2830 * otherwise a negative error value
2831 * @retval #WIFI_DIRECT_ERROR_NONE Successful
2832 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
2833 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
2834 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
2835 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
2836 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
2837 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
2838 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
2839 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
2840 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
2841 * @post wifi_direct_connection_state_changed_cb() will be invoked.
2842 * @see wifi_direct_activate()
2843 * @see wifi_direct_disconnect()
2844 * @see wifi_direct_connection_state_changed_cb()
2847 * Here is an example of the usage:
2849 * #include <stdio.h>
2850 * #include <wifi_direct.h>
2852 * bool callback_2(wifi_direct_connected_peer_info_s* peer,
2856 * printf("connected device=%s mac=%s\n",
2857 * peer->device_name, peer->mac_address);
2861 * void callback_1(int error_code,
2862 * wifi_direct_connection_state_e state,
2863 * const char *mac, void *user_data)
2866 * case WIFI_DIRECT_CONNECTION_IN_PROGRESS:
2867 * printf("Connection in progress\n");
2870 * case WIFI_DIRECT_CONNECTON_RSP:
2871 * printf("Connected\n");
2874 * case WIFI_DIRECT_DISCONNECTION_IND:
2875 * printf("Disconnection IND\n");
2878 * case WIFI_DIRECT_DISCONNECTION_RSP;
2879 * printf("Disconnected mac=%s\n", mac_address); // disconnect notification
2884 * int function(char *mac)
2888 * res = wifi_direct_disconnect(mac); // disconnect the connected peer with input mac
2890 * if (res != WIFI_DIRECT_ERROR_NONE) {
2891 * printf("Failed to disconnect all clients\n");
2900 * char mac[16] = {0,};
2902 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
2903 * wifi_direct_set_connection_state_changed_cb(callback_1, NULL); // Register callback_1
2904 * wifi_direct_activated(); // Activate Wi-Fi Direct *
2906 * wifi_direct_foreach_connected_peers(callback_2, NULL); // Register callback_2
2908 * printf("Enter the connected peer mac address\n");
2909 * read(stdin, mac, 15);
2915 * // App must cleaup Wi-Fi Direct before exiting
2917 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
2918 * wifi_direct_unset_connection_state_changed_cb(); // Deregister callback
2919 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
2924 int wifi_direct_disconnect(char *mac_address);
2928 * @brief Called repeatedly when you get the information of connected peers.
2930 * @remarks @a peer is valid only in this function.
2931 * @param[in] peer The information of discovered peer
2932 * @param[in] user_data The user data passed from foreach function
2933 * @return @c true to continue with the next iteration of the loop,
2934 * @c false to break out of the loop
2935 * @see wifi_direct_foreach_connected_peers()
2937 typedef bool (*wifi_direct_connected_peer_cb) (wifi_direct_connected_peer_info_s *peer, void *user_data);
2941 * @brief Gets the information of connected peers.
2944 * @privilege http://tizen.org/privilege/wifidirect
2945 * @param[in] callback The callback function to invoke
2946 * @param[in] user_data The user data to be passed to the callback function
2947 * @return @c 0 on success,
2948 * otherwise a negative error value
2949 * @retval #WIFI_DIRECT_ERROR_NONE Successful
2950 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
2951 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
2952 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
2953 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
2954 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
2955 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
2956 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
2957 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
2958 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
2959 * @see wifi_direct_activate()
2960 * @see wifi_direct_discovered_peer_cb()
2963 * Here is an example of the usage:
2965 * #include <stdio.h>
2966 * #include <wifi_direct.h>
2968 * bool callback_1(wifi_direct_connected_peer_info_s* peer,
2972 * printf("connected device=%s mac=%s\n",
2973 * peer->device_name, peer->mac_address);
2977 * int function(char *mac)
2981 * res = wifi_direct_foreach_connected_peers(callback_1, NULL) // Get connected peers
2983 * if (res != WIFI_DIRECT_ERROR_NONE) {
2984 * printf("Failed to get connected peers\n");
2993 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
2994 * wifi_direct_activated(); // Activate Wi-Fi Direct
3000 * // App must cleaup Wi-Fi Direct before exiting
3002 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
3003 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
3008 int wifi_direct_foreach_connected_peers(wifi_direct_connected_peer_cb callback, void *user_data);
3012 * @brief Creates a Wi-Fi Direct Group, asynchronously.
3013 * @details This API sets up device as the Group Owner and waits for clients to connect.
3014 * In addition, a soft AP will be created, the WPS registrar and the DHCP server will be started.
3017 * @privilege http://tizen.org/privilege/wifidirect
3018 * @return @c 0 on success,
3019 * otherwise a negative error value
3020 * @retval #WIFI_DIRECT_ERROR_NONE Successful
3021 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
3022 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
3023 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
3024 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
3025 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
3026 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
3027 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
3028 * @retval #WIFI_DIRECT_ERROR_AUTH_FAILED Authentication failed
3029 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
3030 * @post wifi_direct_connection_state_changed_cb() will be invoked with #WIFI_DIRECT_GROUP_CREATED.
3031 * @see wifi_direct_activate()
3032 * @see wifi_direct_destroy_group()
3033 * @see wifi_direct_connection_state_changed_cb()
3036 * Here is an example of the usage:
3038 * #include <stdio.h>
3039 * #include <wifi_direct.h>
3041 * void callback_1(int error_code,
3042 * wifi_direct_connection_state_e state,
3043 * const char *mac, void *user_data)
3045 * if (state == WIFI_DIRECT_GROUP_CREATED) {
3046 * printf("Group created\n");
3050 * int function(void)
3054 * res = wifi_direct_create_group() // create autonomous group
3056 * if (res != WIFI_DIRECT_ERROR_NONE) {
3057 * printf("Failed to create group\n");
3066 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
3067 * wifi_direct_set_connection_state_changed_cb(callback_1, NULL); // Register callback_1
3068 * wifi_direct_activated(); // Activate Wi-Fi Direct
3074 * // App must cleaup Wi-Fi Direct before exiting
3076 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
3077 * wifi_direct_unset_connection_state_changed_cb(); // Deregister callback_1
3078 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
3083 int wifi_direct_create_group(void);
3086 * @brief Creates a Wi-Fi Direct Group, asynchronously with given SSID name.
3088 * @details This function sets up device as the Group Owner and waits for clients to connect.
3089 * In addition, a soft AP will be created, the WPS registrar and the DHCP server will be started.
3091 * @privilege http://tizen.org/privilege/wifidirect
3092 * @param[in] ssid Referred to as a network name, it is a name that identifies a wireless network
3093 * @return 0 on success, otherwise a negative error value
3094 * @retval #WIFI_DIRECT_ERROR_NONE Successful
3095 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
3096 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
3097 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
3098 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid paramters
3099 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
3100 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
3101 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
3102 * @retval #WIFI_DIRECT_ERROR_AUTH_FAILED Authentication failed
3103 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
3104 * @post wifi_direct_connection_state_changed_cb() will be invoked with #WIFI_DIRECT_GROUP_CREATED.
3105 * @see wifi_direct_activate()
3106 * @see wifi_direct_destroy_group()
3107 * @see wifi_direct_connection_state_changed_cb()
3109 int wifi_direct_create_group_with_ssid(const char *ssid);
3112 * @brief Destorys the Wi-Fi Direct Group, asynchronously.
3113 * @details This API destroys the Wi-Fi Direct Group owned by a local device.
3114 * If creating a Group is in progress, this API cancels that creating.
3117 * @privilege http://tizen.org/privilege/wifidirect
3118 * @return @c 0 on success,
3119 * otherwise a negative error value
3120 * @retval #WIFI_DIRECT_ERROR_NONE Successful
3121 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
3122 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
3123 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
3124 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
3125 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
3126 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
3127 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
3128 * @retval #WIFI_DIRECT_ERROR_AUTH_FAILED Authentication failed
3129 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
3130 * @post wifi_direct_connection_state_changed_cb() will be invoked with #WIFI_DIRECT_GROUP_DESTROYED.
3131 * @see wifi_direct_activate()
3132 * @see wifi_direct_create_group()
3133 * @see wifi_direct_connection_state_changed_cb()
3136 * Here is an example of the usage:
3138 * #include <stdio.h>
3139 * #include <wifi_direct.h>
3141 * void callback_1(int error_code,
3142 * wifi_direct_connection_state_e state,
3143 * const char *mac, void *user_data)
3145 * if (state == WIFI_DIRECT_GROUP_DESTROYED) {
3146 * printf("Group destroyed\n");
3150 * int function(void)
3154 * res = wifi_direct_destroy_group() // destroy autotonomous group
3156 * if (res != WIFI_DIRECT_ERROR_NONE) {
3157 * printf("Failed to destroy group\n");
3166 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
3167 * wifi_direct_set_connection_state_changed_cb(callback_1, NULL); // Register callback_1
3168 * wifi_direct_activated(); // Activate Wi-Fi Direct
3174 * // App must cleaup Wi-Fi Direct before exiting
3176 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
3177 * wifi_direct_unset_connection_state_changed_cb(); // Deregister callback_1
3178 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
3183 int wifi_direct_destroy_group(void);
3187 * @brief Checks whether this device is the group owner or not.
3190 * @privilege http://tizen.org/privilege/wifidirect
3191 * @param[out] is_group_owner Indicates whether this device is the group owner or not
3192 * @return @c 0 on success,
3193 * otherwise a negative error value
3194 * @retval #WIFI_DIRECT_ERROR_NONE Successful
3195 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
3196 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
3197 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
3198 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
3199 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
3200 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
3201 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
3202 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
3203 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
3204 * @see wifi_direct_activate()
3207 * Here is an example of the usage:
3209 * #include <stdio.h>
3210 * #include <wifi_direct.h>
3212 * int function(void)
3217 * res = wifi_direct_is_group_owner(&owner); // destroy autotonomous group
3219 * if (res != WIFI_DIRECT_ERROR_NONE) {
3220 * printf("Failed to get ownership role\n");
3224 * printf("role = %s\n", (owner)?"GO":"STA");
3228 * void callback_1(int error_code,
3229 * wifi_direct_connection_state_e state,
3230 * const char *mac, void *user_data)
3232 * if (state == WIFI_DIRECT_GROUP_DESTROYED) {
3233 * printf("Group destroyed\n");
3238 * if (state == WIFI_DIRECT_GROUP_CREATED) {
3239 * printf("Group created\n");
3247 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
3248 * wifi_direct_set_connection_state_changed_cb(callback_1, NULL); // Register callback_1
3249 * wifi_direct_activated(); // Activate Wi-Fi Direct
3251 * wifi_direct_create_group();
3253 * wifi_direct_destroy_group();
3257 * // App must cleaup Wi-Fi Direct before exiting
3259 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
3260 * wifi_direct_unset_connection_state_changed_cb(); // Deregister callback_1
3261 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
3266 int wifi_direct_is_group_owner(bool *is_group_owner);
3270 * @brief Checks whether the current group is the autonomous group or not.
3271 * @details If you create a group by wifi_direct_create_group(),
3272 * then the current group is the autonomous group.
3275 * @privilege http://tizen.org/privilege/wifidirect
3276 * @param[out] is_autonomous_group Indicates whether the current group is the autonomous group or not
3277 * @return @c 0 on success,
3278 * otherwise a negative error value
3279 * @retval #WIFI_DIRECT_ERROR_NONE Successful
3280 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
3281 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
3282 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
3283 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
3284 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
3285 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
3286 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
3287 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
3288 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
3289 * @see wifi_direct_activate()
3290 * @see wifi_direct_create_group()
3291 * @see wifi_direct_destroy_group()
3294 * Here is an example of the usage:
3296 * #include <stdio.h>
3297 * #include <wifi_direct.h>
3299 * int function(void)
3304 * res = wifi_direct_is_autonomous_group(&owner); // autotonomous group
3306 * if (res != WIFI_DIRECT_ERROR_NONE) {
3307 * printf("Failed to get ownership role\n");
3311 * printf("Group = %s\n", (owner)?"Auto":"Non-Auto");
3315 * void callback_1(int error_code,
3316 * wifi_direct_connection_state_e state,
3317 * const char *mac, void *user_data)
3319 * if (state == WIFI_DIRECT_GROUP_DESTROYED) {
3320 * printf("Group destroyed\n");
3323 * if (state == WIFI_DIRECT_GROUP_CREATED) {
3324 * printf("Group created\n");
3332 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
3333 * wifi_direct_set_connection_state_changed_cb(callback_1, NULL); // Register callback_1
3334 * wifi_direct_activated(); // Activate Wi-Fi Direct
3336 * wifi_direct_create_group();
3340 * // App must cleaup Wi-Fi Direct before exiting
3342 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
3343 * wifi_direct_unset_connection_state_changed_cb(); // Deregister callback_1
3344 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
3349 int wifi_direct_is_autonomous_group(bool *is_autonomous_group);
3353 * @brief Sets the friendly name of a local device.
3354 * @details This device name is shown to other devices during device discovery.
3357 * @privilege http://tizen.org/privilege/wifidirect
3358 * @remarks The name set is only valid during activated state.
3359 * After Wi-Fi Direct is deactivated, this name will be same as the phone name.
3360 * @param[in] device_name The name of a local device
3361 * @return @c 0 on success,
3362 * otherwise a negative error value
3363 * @retval #WIFI_DIRECT_ERROR_NONE Successful
3364 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
3365 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
3366 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
3367 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
3368 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
3369 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
3370 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
3371 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
3372 * @pre Wi-Fi Direct must be activated by wifi_direct_activate().
3373 * @see wifi_direct_activate()
3374 * @see wifi_direct_get_device_name()
3377 * Here is an example of the usage:
3379 * #include <stdio.h>
3380 * #include <wifi_direct.h>
3382 * int function(char *name)
3386 * res = wifi_direct_set_device_name(&name); // set device name
3388 * if (res != WIFI_DIRECT_ERROR_NONE) {
3389 * printf("Failed to set device name\n");
3398 * char name[256] = {0, };
3399 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
3400 * wifi_direct_activated(); // Activate Wi-Fi Direct
3402 * printf("Enter the device name\n");
3403 * read(stdin, name, 255);
3409 * // App must cleaup Wi-Fi Direct before exiting
3411 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
3412 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
3417 int wifi_direct_set_device_name(const char *device_name);
3421 * @brief Gets the name of a local device.
3424 * @privilege http://tizen.org/privilege/wifidirect
3425 * @remarks @a device_name must be released with free().
3426 * @param[out] device_name The name of a local device
3427 * @return @c 0 on success,
3428 * otherwise a negative error value
3429 * @retval #WIFI_DIRECT_ERROR_NONE Successful
3430 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
3431 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
3432 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
3433 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
3434 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
3435 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
3436 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
3437 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
3438 * @see wifi_direct_initialize()
3439 * @see wifi_direct_set_device_name()
3442 * Here is an example of the usage:
3444 * #include <stdio.h>
3445 * #include <wifi_direct.h>
3447 * int function(void)
3452 * res = wifi_direct_get_device_name(&name); // get device name
3454 * if (res != WIFI_DIRECT_ERROR_NONE) {
3455 * printf("Failed to get device name\n");
3459 * printf("device name = %s\n", name);
3466 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
3467 * wifi_direct_activated(); // Activate Wi-Fi Direct
3473 * // App must cleaup Wi-Fi Direct before exiting
3475 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
3476 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
3481 int wifi_direct_get_device_name(char** device_name);
3485 * @brief Gets SSID(Service Set Identifier) of a local device.
3488 * @privilege http://tizen.org/privilege/wifidirect
3489 * @remarks @a ssid must be released using free().
3490 * @param[out] ssid The SSID
3491 * @return @c 0 on success,
3492 * otherwise a negative error value
3493 * @retval #WIFI_DIRECT_ERROR_NONE Successful
3494 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
3495 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
3496 * @retval #WIFI_DIRECT_ERROR_OUT_OF_MEMORY Out of memory
3497 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
3498 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
3499 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
3500 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
3501 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
3502 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
3503 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
3504 * @see wifi_direct_initialize()
3507 * Here is an example of the usage:
3509 * #include <stdio.h>
3510 * #include <wifi_direct.h>
3512 * int function(void)
3517 * res = wifi_direct_get_ssid(&ssid); // get SSID
3519 * if (res != WIFI_DIRECT_ERROR_NONE) {
3520 * printf("Failed to get ssid name\n");
3524 * printf("SSID name = %s\n", ssid);
3531 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
3532 * wifi_direct_activated(); // Activate Wi-Fi Direct
3538 * // App must cleaup Wi-Fi Direct before exiting
3540 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
3541 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
3546 int wifi_direct_get_ssid(char **ssid);
3550 * @brief Gets the name of network interface (for example: eth0, pdp0).
3553 * @privilege http://tizen.org/privilege/wifidirect
3554 * @remarks @a name must be released using free().
3555 * @param[out] name The name of the network interface
3556 * @return @c 0 on success,
3557 * otherwise negative error value
3558 * @retval #WIFI_DIRECT_ERROR_NONE Successful
3559 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
3560 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
3561 * @retval #WIFI_DIRECT_ERROR_OUT_OF_MEMORY Out of memory
3562 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
3563 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
3564 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
3565 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
3566 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
3567 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
3568 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
3569 * @see wifi_direct_activate()
3572 * Here is an example of the usage:
3574 * #include <stdio.h>
3575 * #include <wifi_direct.h>
3577 * int function(void)
3582 * res = wifi_direct_get_network_interface_name(&iface_name); // get interface name
3584 * if (res != WIFI_DIRECT_ERROR_NONE) {
3585 * printf("Failed to get interface name\n");
3589 * printf("interface = %s\n", iface_name);
3590 * g_free(iface_name);
3596 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
3597 * wifi_direct_activated(); // Activate Wi-Fi Direct
3603 * // App must cleaup Wi-Fi Direct before exiting
3605 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
3606 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
3611 int wifi_direct_get_network_interface_name(char **name);
3615 * @brief Gets IP address of a local device.
3618 * @privilege http://tizen.org/privilege/wifidirect
3619 * @remarks @a ip_address must be released using free().
3620 * @param[out] ip_address The IP address
3621 * @return @c 0 on success,
3622 * otherwise a negative error value
3623 * @retval #WIFI_DIRECT_ERROR_NONE Successful
3624 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
3625 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
3626 * @retval #WIFI_DIRECT_ERROR_OUT_OF_MEMORY Out of memory
3627 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
3628 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
3629 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
3630 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
3631 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
3632 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
3633 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
3634 * @see wifi_direct_activate()
3638 * Here is an example of the usage:
3640 * #include <stdio.h>
3641 * #include <wifi_direct.h>
3643 * int function(void);
3645 * bool device_selected = false;
3647 * void peers_cb(wifi_direct_discovered_peer_info_s* peer,
3650 * if (peer && !device_selected) {
3651 * printf("peer device=%s MAC=%s\n", peer->device_name, peer->mac_address);
3653 * device_selected = true;
3655 * wifi_direct_connect(peer->mac_address); // Connect to the first discovered peer
3659 * int function(void)
3664 * ret = wifi_direct_get_ip_address(&ip); // get ip address
3666 * if (ret != WIFI_DIRECT_ERROR_NONE) {
3667 * printf("Failed to connect the peer\n");
3671 * printf("IP address=%s\n", ip);
3676 * void callback_2(int error_code,
3677 * wifi_direct_connection_state_e state,
3678 * const char *mac, void *user_data)
3681 * case WIFI_DIRECT_CONNECTION_IN_PROGRESS:
3682 * printf("Connection in progress\n");
3685 * case WIFI_DIRECT_CONNECTON_RSP:
3686 * printf("Connected\n");
3691 * case WIFI_DIRECT_DISCONNECTION_IND:
3692 * printf("Disconnection IND\n");
3695 * case WIFI_DIRECT_DISCONNECTION_RSP;
3696 * printf("Disconnected\n");
3701 * void callback_1(int error_code,
3702 * wifi_direct_discovery_state_e discovery_state,
3705 * switch(discovery_state) {
3706 * case WIFI_DIRECT_DISCOVERY_STARTED:
3707 * printf("Discovery started\n");
3710 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
3711 * printf("listen started\n");
3714 * case WIFI_DIRECT_DISCOVERY_FINISHED:
3715 * printf("Discovery finished\n");
3717 * wifi_direct_foreach_discovered_peers(peers_cb,
3721 * case WIFI_DIRECT_DISCOVERY_FOUND:
3722 * printf("peer devices found\n");
3725 * case WIFI_DIRECT_DISCOVERY_LOST:
3726 * printf("Discovery lost\n");
3736 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
3737 * wifi_direct_set_discovery_state_changed_cb(callback_1, NULL); // Register callback 1
3738 * wifi_direct_set_connection_state_changed_cb(callback_2, NULL); // Register callback 2
3740 * wifi_direct_activated(); // Activate Wi-Fi Direct
3741 * wifi_direct_start_discovery(TRUE, 15); // Start discovery
3745 * // App must cleaup Wi-Fi Direct before exiting
3747 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
3748 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback
3749 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
3754 int wifi_direct_get_ip_address(char **ip_address);
3758 * @brief Gets the Subnet Mask.
3761 * @privilege http://tizen.org/privilege/wifidirect
3762 * @remarks @a subnet_mask must be released using free().
3763 * @param[out] subnet_mask The subnet mask
3764 * @return @c 0 on success,
3765 * otherwise a negative error value
3766 * @retval #WIFI_DIRECT_ERROR_NONE Successful
3767 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
3768 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
3769 * @retval #WIFI_DIRECT_ERROR_OUT_OF_MEMORY Out of memory
3770 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
3771 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
3772 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
3773 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
3774 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
3775 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
3776 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
3777 * @see wifi_direct_activate()
3780 * Here is an example of the usage:
3782 * #include <stdio.h>
3783 * #include <wifi_direct.h>
3785 * int function(void);
3787 * bool device_selected = false;
3789 * void peers_cb(wifi_direct_discovered_peer_info_s* peer,
3792 * if (peer && !device_selected) {
3793 * printf("peer device=%s MAC=%s\n", peer->device_name, peer->mac_address);
3795 * device_selected = true;
3797 * wifi_direct_connect(peer->mac_address); // Connect to the first discovered peer
3801 * int function(void)
3807 * wifi_direct_get_ip_address(&ip); // get ip address
3809 * ret = wifi_direct_get_subnetmask(&subnet); // get subnet mask
3811 * if (ret != WIFI_DIRECT_ERROR_NONE) {
3812 * printf("Failed to get subnet mask\n");
3816 * printf("subnet address=%s\n", subnet);
3822 * void callback_2(int error_code,
3823 * wifi_direct_connection_state_e state,
3824 * const char *mac, void *user_data)
3827 * case WIFI_DIRECT_CONNECTION_IN_PROGRESS:
3828 * printf("Connection in progress\n");
3831 * case WIFI_DIRECT_CONNECTON_RSP:
3832 * printf("Connected\n");
3837 * case WIFI_DIRECT_DISCONNECTION_IND:
3838 * printf("Disconnection IND\n");
3841 * case WIFI_DIRECT_DISCONNECTION_RSP;
3842 * printf("Disconnected\n");
3847 * void callback_1(int error_code,
3848 * wifi_direct_discovery_state_e discovery_state,
3851 * switch(discovery_state) {
3852 * case WIFI_DIRECT_DISCOVERY_STARTED:
3853 * printf("Discovery started\n");
3856 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
3857 * printf("listen started\n");
3860 * case WIFI_DIRECT_DISCOVERY_FINISHED:
3861 * printf("Discovery finished\n");
3863 * wifi_direct_foreach_discovered_peers(peers_cb,
3867 * case WIFI_DIRECT_DISCOVERY_FOUND:
3868 * printf("peer devices found\n");
3871 * case WIFI_DIRECT_DISCOVERY_LOST:
3872 * printf("Discovery lost\n");
3882 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
3883 * wifi_direct_set_discovery_state_changed_cb(callback_1, NULL); // Register callback 1
3884 * wifi_direct_set_connection_state_changed_cb(callback_2, NULL); // Register callback 2
3886 * wifi_direct_activated(); // Activate Wi-Fi Direct
3887 * wifi_direct_start_discovery(TRUE, 15); // Start discovery
3891 * // App must cleaup Wi-Fi Direct before exiting
3893 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
3894 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback
3895 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
3900 int wifi_direct_get_subnet_mask(char **subnet_mask);
3904 * @brief Gets the Gateway address.
3907 * @privilege http://tizen.org/privilege/wifidirect
3908 * @remarks @a gateway_address must be released using free().
3909 * @param[out] gateway_address The gateway address
3910 * @return @c 0 on success,
3911 * otherwise a negative error value
3912 * @retval #WIFI_DIRECT_ERROR_NONE Successful
3913 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
3914 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
3915 * @retval #WIFI_DIRECT_ERROR_OUT_OF_MEMORY Out of memory
3916 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
3917 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
3918 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
3919 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
3920 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
3921 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
3922 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
3923 * @see wifi_direct_activate()
3926 * Here is an example of the usage:
3928 * #include <stdio.h>
3929 * #include <wifi_direct.h>
3931 * int function(void);
3933 * bool device_selected = false;
3935 * void peers_cb(wifi_direct_discovered_peer_info_s* peer,
3938 * if (peer && !device_selected) {
3939 * printf("peer device=%s MAC=%s\n", peer->device_name, peer->mac_address);
3941 * device_selected = true;
3943 * wifi_direct_connect(peer->mac_address); // Connect to the first discovered peer
3947 * int function(void)
3953 * wifi_direct_get_ip_address(&ip); // get ip address
3955 * ret = wifi_direct_get_gateway_address(&gateway); // get gateway address
3957 * if (ret != WIFI_DIRECT_ERROR_NONE) {
3958 * printf("Failed to get gateway address\n");
3962 * printf("gateway address=%s\n", gateway);
3968 * void callback_2(int error_code,
3969 * wifi_direct_connection_state_e state,
3970 * const char *mac, void *user_data)
3973 * case WIFI_DIRECT_CONNECTION_IN_PROGRESS:
3974 * printf("Connection in progress\n");
3977 * case WIFI_DIRECT_CONNECTON_RSP:
3978 * printf("Connected\n");
3983 * case WIFI_DIRECT_DISCONNECTION_IND:
3984 * printf("Disconnection IND\n");
3987 * case WIFI_DIRECT_DISCONNECTION_RSP;
3988 * printf("Disconnected\n");
3993 * void callback_1(int error_code,
3994 * wifi_direct_discovery_state_e discovery_state,
3997 * switch(discovery_state) {
3998 * case WIFI_DIRECT_DISCOVERY_STARTED:
3999 * printf("Discovery started\n");
4002 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
4003 * printf("listen started\n");
4006 * case WIFI_DIRECT_DISCOVERY_FINISHED:
4007 * printf("Discovery finished\n");
4009 * wifi_direct_foreach_discovered_peers(peers_cb,
4013 * case WIFI_DIRECT_DISCOVERY_FOUND:
4014 * printf("peer devices found\n");
4017 * case WIFI_DIRECT_DISCOVERY_LOST:
4018 * printf("Discovery lost\n");
4028 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
4029 * wifi_direct_set_discovery_state_changed_cb(callback_1, NULL); // Register callback 1
4030 * wifi_direct_set_connection_state_changed_cb(callback_2, NULL); // Register callback 2
4032 * wifi_direct_activated(); // Activate Wi-Fi Direct
4033 * wifi_direct_start_discovery(TRUE, 15); // Start discovery
4037 * // App must cleaup Wi-Fi Direct before exiting
4039 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
4040 * wifi_direct_unset_connection_state_changed_cb(); // Deregister callback
4041 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback
4042 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
4047 int wifi_direct_get_gateway_address(char **gateway_address);
4051 * @brief Gets MAC address of a local device.
4054 * @privilege http://tizen.org/privilege/wifidirect
4055 * @remarks @a mac_address must be released using free().
4056 * @param[out] mac_address The MAC address
4057 * @return @c 0 on success,
4058 * otherwise a negative error value
4059 * @retval #WIFI_DIRECT_ERROR_NONE Successful
4060 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
4061 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
4062 * @retval #WIFI_DIRECT_ERROR_OUT_OF_MEMORY Out of memory
4063 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
4064 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
4065 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
4066 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
4067 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
4068 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
4069 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
4070 * @see wifi_direct_initialize()
4073 * Here is an example of the usage:
4075 * #include <stdio.h>
4076 * #include <wifi_direct.h>
4078 * int function(void);
4080 * bool device_selected = false;
4082 * void peers_cb(wifi_direct_discovered_peer_info_s* peer,
4085 * if (peer && !device_selected) {
4086 * printf("peer device=%s MAC=%s\n", peer->device_name, peer->mac_address);
4088 * device_selected = true;
4090 * wifi_direct_connect(peer->mac_address); // Connect to the first discovered peer
4094 * int function(void)
4100 * wifi_direct_get_ip_address(&ip); // get ip address
4102 * ret = wifi_direct_get_mac_address(&mac); // get MAC address
4104 * if (ret != WIFI_DIRECT_ERROR_NONE) {
4105 * printf("Failed to get mac address\n");
4109 * printf("MAC address=%s\n", mac);
4115 * void callback_2(int error_code,
4116 * wifi_direct_connection_state_e state,
4117 * const char *mac, void *user_data)
4120 * case WIFI_DIRECT_CONNECTION_IN_PROGRESS:
4121 * printf("Connection in progress\n");
4124 * case WIFI_DIRECT_CONNECTON_RSP:
4125 * printf("Connected\n");
4130 * case WIFI_DIRECT_DISCONNECTION_IND:
4131 * printf("Disconnection IND\n");
4134 * case WIFI_DIRECT_DISCONNECTION_RSP;
4135 * printf("Disconnected\n");
4140 * void callback_1(int error_code,
4141 * wifi_direct_discovery_state_e discovery_state,
4144 * switch(discovery_state) {
4145 * case WIFI_DIRECT_DISCOVERY_STARTED:
4146 * printf("Discovery started\n");
4149 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
4150 * printf("listen started\n");
4153 * case WIFI_DIRECT_DISCOVERY_FINISHED:
4154 * printf("Discovery finished\n");
4156 * wifi_direct_foreach_discovered_peers(peers_cb,
4160 * case WIFI_DIRECT_DISCOVERY_FOUND:
4161 * printf("peer devices found\n");
4164 * case WIFI_DIRECT_DISCOVERY_LOST:
4165 * printf("Discovery lost\n");
4175 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
4176 * wifi_direct_set_discovery_state_changed_cb(callback_1, NULL); // Register callback 1
4177 * wifi_direct_set_connection_state_changed_cb(callback_2, NULL); // Register callback 2
4179 * wifi_direct_activated(); // Activate Wi-Fi Direct
4180 * wifi_direct_start_discovery(TRUE, 15); // Start discovery
4184 * // App must cleaup Wi-Fi Direct before exiting
4186 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
4187 * wifi_direct_unset_connection_state_changed_cb(); // Deregister callback
4188 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback
4189 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
4194 int wifi_direct_get_mac_address(char **mac_address);
4198 * @brief Gets the state of Wi-Fi Direct service.
4200 * @param[out] state The state of Wi-Fi Direct service
4201 * @return @c 0 on success,
4202 * otherwise a negative error value
4203 * @retval #WIFI_DIRECT_ERROR_NONE Successful
4204 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
4205 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
4206 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
4207 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
4208 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
4211 * Here is an example of the usage:
4213 * #include <stdio.h>
4214 * #include <wifi_direct.h>
4216 * char* print_state(wifi_direct_state_e state)
4218 * if (state == WIFI_DIRECT_STATE_DEACTIVATED)
4219 * return "DEACTIVATED";
4220 * if (state == WIFI_DIRECT_STATE_ACTIVATING)
4221 * return "ACTIVATING";
4222 * if (state == WIFI_DIRECT_STATE_ACTIVATED)
4223 * return "ACTIVATED";
4224 * if (state == WIFI_DIRECT_STATE_DISCOVERING)
4225 * return "DISCOVERING";
4226 * if (state == WIFI_DIRECT_STATE_CONNECTING)
4227 * return "CONNECTING";
4228 * if (state == WIFI_DIRECT_STATE_DISCONNECTING)
4229 * return "DISCONNECTING";
4230 * if (state == WIFI_DIRECT_STATE_CONNECTED)
4231 * return "CONNECTED";
4232 * if (state == WIFI_DIRECT_STATE_GROUP_OWNER)
4233 * return "GROUP OWNER";
4235 * return "Unknown state";
4238 * int function(void)
4243 * ret = wifi_direct_get_state(&state); // get Wi-Fi Direct state
4245 * if (ret != WIFI_DIRECT_ERROR_NONE) {
4246 * printf("Failed to get state\n");
4250 * printf(Wi-Fi Direct State = %s\n, print_state(state));
4257 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
4258 * wifi_direct_activated(); // Activate Wi-Fi Direct
4264 * // App must cleaup Wi-Fi Direct before exiting
4266 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
4267 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
4272 int wifi_direct_get_state(wifi_direct_state_e *state);
4276 * @brief Checks whether this device is discoverable or not by P2P discovery.
4277 * @details If you call wifi_direct_start_discovery(), then your device can be discoverable.
4280 * @privilege http://tizen.org/privilege/wifidirect
4281 * @param[out] discoverable The status of discoverable:
4282 * (@c true = discoverable, @c false = non-discoverable)
4283 * @return @c 0 on success,
4284 * otherwise a negative error value
4285 * @retval #WIFI_DIRECT_ERROR_NONE Successful
4286 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
4287 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
4288 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
4289 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
4290 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
4291 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
4292 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
4293 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
4294 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
4295 * @see wifi_direct_initialize()
4296 * @see wifi_direct_start_discovery()
4297 * @see wifi_direct_cancel_discovery()
4300 * Here is an example of the usage:
4302 * #include <stdio.h>
4303 * #include <wifi_direct.h>
4305 * int function(void)
4308 * bool discoverable;
4310 * ret = wifi_direct_is_discoverable(&discoverable); // check if device is discoverable
4312 * if (ret != WIFI_DIRECT_ERROR_NONE) {
4313 * printf("Failed to get discoverable property\n");
4317 * printf("discoverable=%s\n", discoverable?"Yes":"No");
4322 * void callback_1(int error_code,
4323 * wifi_direct_discovery_state_e discovery_state,
4326 * switch(discovery_state) {
4327 * case WIFI_DIRECT_DISCOVERY_STARTED:
4328 * printf("Discovery started\n");
4333 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
4334 * printf("listen started\n");
4339 * case WIFI_DIRECT_DISCOVERY_FINISHED:
4340 * printf("Discovery finished\n");
4345 * case WIFI_DIRECT_DISCOVERY_FOUND:
4346 * printf("peer devices found\n");
4349 * case WIFI_DIRECT_DISCOVERY_LOST:
4350 * printf("Discovery lost\n");
4360 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
4361 * wifi_direct_activated(); // Activate Wi-Fi Direct
4362 * wifi_direct_set_discovery_state_changed_cb(callback_1, NULL); // Register callback 1
4364 * wifi_direct_start_discovery(TRUE, 15); // Start discovery
4370 * // App must cleaup Wi-Fi Direct before exiting
4372 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
4373 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback
4374 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
4379 int wifi_direct_is_discoverable(bool *discoverable);
4383 * @brief Checks whether the local device is listening only.
4384 * @details If you call wifi_direct_start_discovery() with @a listen_only as @c true,
4385 * it does not support specific channel but the initial 802.11.
4388 * @privilege http://tizen.org/privilege/wifidirect
4389 * @param[out] listen_only The status of listen only:(@c true = listen only, @c false =
4390 * cycling between Scan and Listen or not in discovery state)
4391 * @return @c 0 on success,
4392 * otherwise a negative error value
4393 * @retval #WIFI_DIRECT_ERROR_NONE Successful
4394 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
4395 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
4396 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
4397 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
4398 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
4399 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
4400 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
4401 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
4402 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
4403 * @see wifi_direct_activate()
4404 * @see wifi_direct_start_discovery()
4405 * @see wifi_direct_cancel_discovery()
4406 * @see wifi_direct_is_discoverable()
4409 * Here is an example of the usage:
4411 * #include <stdio.h>
4412 * #include <wifi_direct.h>
4414 * int function(void)
4419 * ret = wifi_direct_is_listening_only(&listen_only); // check if device is listening
4421 * if (ret != WIFI_DIRECT_ERROR_NONE) {
4422 * printf("Failed to get discoverable property\n");
4426 * printf("listening=%s\n", listen_only?"Yes":"No");
4431 * void callback_1(int error_code,
4432 * wifi_direct_discovery_state_e discovery_state,
4435 * switch(discovery_state) {
4436 * case WIFI_DIRECT_DISCOVERY_STARTED:
4437 * printf("Discovery started\n");
4440 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
4441 * printf("listen started\n");
4446 * case WIFI_DIRECT_DISCOVERY_FINISHED:
4447 * printf("Discovery finished\n");
4452 * case WIFI_DIRECT_DISCOVERY_FOUND:
4453 * printf("peer devices found\n");
4456 * case WIFI_DIRECT_DISCOVERY_LOST:
4457 * printf("Discovery lost\n");
4467 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
4468 * wifi_direct_activated(); // Activate Wi-Fi Direct
4469 * wifi_direct_set_discovery_state_changed_cb(callback_1, NULL); // Register callback 1
4471 * wifi_direct_start_discovery(TRUE, 15); // Start discovery
4477 * // App must cleaup Wi-Fi Direct before exiting
4479 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
4480 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback
4481 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
4486 int wifi_direct_is_listening_only(bool *listen_only);
4490 * @brief Gets the primary device type of a local device.
4493 * @privilege http://tizen.org/privilege/wifidirect
4494 * @param[out] type The primary device type
4495 * @return @c 0 on success,
4496 * otherwise a negative error value
4497 * @retval #WIFI_DIRECT_ERROR_NONE Successful
4498 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
4499 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
4500 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
4501 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
4502 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
4503 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
4504 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
4505 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
4506 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
4507 * @see wifi_direct_initialize()
4510 * Here is an example of the usage:
4512 * #include <stdio.h>
4513 * #include <wifi_direct.h>
4515 * char* print_type(wifi_direct_primary_device_type_e type)
4517 * if (type == WIFI_DIRECT_PRIMARY_DEVICE_TYPE_COMPUTER)
4518 * return "Computer";
4519 * if (state == WIFI_DIRECT_PRIMARY_DEVICE_TYPE_CAMERA)
4521 * if (state == WIFI_DIRECT_PRIMARY_DEVICE_TYPE_STORAGE)
4523 * if (state == WIFI_DIRECT_PRIMARY_DEVICE_TYPE_DISPLAY)
4525 * if (state == WIFI_DIRECT_PRIMARY_DEVICE_TYPE_TELEPHONE)
4526 * return "Telephone";
4528 * // Refer wifi_direct_primary_device_type_e enum for all devices
4531 * int function(void)
4536 * ret = wifi_direct_get_primary_device_type(&type); // get primary device type
4538 * if (ret != WIFI_DIRECT_ERROR_NONE) {
4539 * printf("Failed to get primary device type\n");
4543 * printf("primary Device = %s\n", print_type(type));
4550 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
4551 * wifi_direct_activated(); // Activate Wi-Fi Direct
4557 * // App must cleaup Wi-Fi Direct before exiting
4559 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
4560 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
4565 int wifi_direct_get_primary_device_type(wifi_direct_primary_device_type_e *type);
4569 * @brief Gets the secondary device type of a local device.
4572 * @privilege http://tizen.org/privilege/wifidirect
4573 * @param[out] type The secondary device type
4574 * @return @c 0 on success,
4575 * otherwise a negative error value
4576 * @retval #WIFI_DIRECT_ERROR_NONE Successful
4577 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
4578 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
4579 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
4580 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
4581 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
4582 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
4583 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
4584 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
4585 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
4586 * @see wifi_direct_initialize()
4589 * Here is an example of the usage:
4591 * #include <stdio.h>
4592 * #include <wifi_direct.h>
4594 * char* print_type(wifi_direct_primary_device_type_e type)
4596 * if (type == WIFI_DIRECT_SECONDARY_DEVICE_TYPE_COMPUTER_PC)
4597 * return "Computer pc";
4598 * if (state == WIFI_DIRECT_SECONDARY_DEVICE_TYPE_INPUT_KEYBOARD)
4599 * return "input Keyboard";
4600 * if (state == WIFI_DIRECT_SECONDARY_DEVICE_TYPE_CAMERA_VIDEO)
4601 * return "Camera Video";
4602 * if (state == WIFI_DIRECT_SECONDARY_DEVICE_TYPE_STORAGE_NAS)
4603 * return "Storage NAS";
4604 * if (state == WIFI_DIRECT_SECONDARY_DEVICE_TYPE_DISPLAY_TV)
4605 * return "Display TV";
4607 * // Refer wifi_direct_secondary_device_type_e enum for all devices
4610 * int function(void)
4615 * ret = wifi_direct_get_secondary_device_type(&type); // get secondary device type
4617 * if (ret != WIFI_DIRECT_ERROR_NONE) {
4618 * printf("Failed to get secondary device type\n");
4622 * printf("secondary Device = %s\n", print_type(type));
4629 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
4630 * wifi_direct_activated(); // Activate Wi-Fi Direct
4636 * // App must cleaup Wi-Fi Direct before exiting
4638 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
4639 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
4644 int wifi_direct_get_secondary_device_type(wifi_direct_secondary_device_type_e* type);
4648 * @brief Sets the WPS config PBC as preferred method for connection.
4651 * @privilege http://tizen.org/privilege/wifidirect
4652 * @return @c 0 on success,
4653 * otherwise a negative error value
4654 * @retval #WIFI_DIRECT_ERROR_NONE Successful
4655 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
4656 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
4657 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
4658 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
4659 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
4660 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
4661 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
4662 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
4663 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
4664 * @see wifi_direct_activate()
4667 * Here is an example of the usage:
4669 * #include <stdio.h>
4670 * #include <wifi_direct.h>
4672 * int function(void)
4676 * ret = wifi_direct_activate_pushbutton(); // Activate WPS PBC Push Button
4678 * if (ret != WIFI_DIRECT_ERROR_NONE) {
4679 * printf("Failed to activate push button\n");
4683 * printf("Push button Activated successfully\n");
4690 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
4691 * wifi_direct_activated(); // Activate Wi-Fi Direct
4697 * // App must cleaup Wi-Fi Direct before exiting
4699 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
4700 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
4705 int wifi_direct_activate_pushbutton(void);
4709 * @brief Sets or updates the WPS PIN number user expects.
4712 * @privilege http://tizen.org/privilege/wifidirect
4713 * @param[in] pin New pin to set. Application must set the new pin number before
4714 * @return @c 0 on success,
4715 * otherwise a negative error value
4716 * @retval #WIFI_DIRECT_ERROR_NONE Successful
4717 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
4718 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
4719 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
4720 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
4721 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
4722 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
4723 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
4724 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
4725 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
4726 * @see wifi_direct_activate()
4727 * @see wifi_direct_get_wps_pin()
4730 * Here is an example of the usage:
4732 * #include <stdio.h>
4733 * #include <wifi_direct.h>
4736 * int function(void)
4739 * char pin[9] = {0, };
4741 * printf("Input 8 digit PIN to set the WPS PIN mode\n");
4742 * read(stdin, pin, 8);
4744 * ret = wifi_direct_set_wps_pin(pin); // Set the WPS PIN for connection
4746 * if (ret != WIFI_DIRECT_ERROR_NONE) {
4747 * printf("Failed to set the WPS PIN\n");
4751 * printf("WPS PIN set success\n");
4755 * void callback(int error_code,
4756 * wifi_direct_connection_state_e connection_state,
4757 * const char *mac_address,
4764 * switch (connection_state) {
4766 * case WIFI_DIRECT_CONNECTION_IN_PROGRESS:
4767 * printf("Connection in progress\n");
4770 * case WIFI_DIRECT_CONNECTION_RSP:
4771 * if (error_code == WIFI_DIRECT_ERROR_NONE) {
4772 * printf("Peer Device Connected\n"); // device is connected
4774 * printf("MAC=%s\n", mac_address); // device's MAC address
4776 * wifi_direct_get_ip_address(&ip);
4777 * printf("IP=%s\n", ip); //device's IP address
4779 * wifi_direct_is_group_owner(&owner);
4780 * printf("Ownership=%s\n", (owner)? "GO":"STA"); // (GO or client role)
4782 * } else if (error_code == WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT) {
4783 * printf("Connection timeout occurred\n");
4784 * } else if (error_code == WIFI_DIRECT_ERROR_AUTH_FAILED) {
4785 * printf("Connection authorization Failed\n");
4787 * printf("Connection failed\n");
4790 * case WIFI_DIRECT_CONNECTION_WPS_REQ:
4792 * wifi_direct_get_local_wps_type(&wps_mode);
4794 * if (wps_mode == WIFI_DIRECT_WPS_TYPE_PBC) {
4795 * printf("Connection type WPS PBC\n");
4796 * // Handle WPS PBC case here
4799 * if (wps_mode == WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY) {
4800 * printf("Connection type WPS PIN DISPLAY\n");
4801 * // Handle WPS PIN Display case here
4804 * if (wps_mode == WIFI_DIRECT_WPS_PIN_KEYPAD) {
4805 * printf("Connection type WPS PIN KEYPAD\n");
4807 * // Set 8 digit WPS PIN here
4808 * // Since the device has received the wps mode as PIN Keypad
4809 * // User need to set the WPS PIN for peer
4810 * // device connection using PIN method.
4812 * if (function() == 0)
4813 * wifi_direct_accept_connection(mac_address); // Accept the requested connection
4818 * case WIFI_DIRECT_CONNECTION_REQ:
4819 * printf("Connection request from MAC %s\n", mac_address);
4821 * // Handle the connection request from peer device here
4823 * // 2. WPS PIN Display
4824 * // 3. WPS PIN Keypad
4826 * wifi_direct_accept_connection(mac_address);
4829 * case WIFI_DIRECT_DISCONNECTION_IND:
4830 * if (error_code == WIFI_DIRECT_ERROR_NONE)
4831 * printf("peer device disconnected MAC %s\n", mac_address);
4834 * case WIFI_DIRECT_DISCONNECTION_RSP:
4835 * if (error_code == WIFI_DIRECT_ERROR_NONE)
4836 * printf("peer device disconnection response MAC %s\n", mac_address);
4839 * case WIFI_DIRECT_CONNECTION_DISASSOCIATION_IND:
4840 * if (error_code == WIFI_DIRECT_ERROR_NONE)
4841 * printf("peer device disassociation MAC %s\n", mac_address);
4844 * case WIFI_DIRECT_GROUP_CREATED:
4845 * printf("Group Created\n");
4848 * case WIFI_DIRECT_GROUP_DESTROYED:
4849 * printf("Group Destroyed\n");
4859 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
4860 * wifi_direct_set_connection_state_changed_cb(callback, NULL); // Register callback
4862 * wifi_direct_activate(); // Activate Wi-Fi Direct
4866 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
4868 * wifi_direct_set_connection_state_changed_cb(callback, NULL); // Deregister callback
4869 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
4874 int wifi_direct_set_wps_pin(char *pin);
4878 * @brief Gets the WPS PIN number.
4881 * @privilege http://tizen.org/privilege/wifidirect
4882 * @remarks @a pin must be released with free().
4883 * @param[out] pin Pointer to store pin number. Application must free this memory
4884 * @return @c 0 on success,
4885 * otherwise a negative error value
4886 * @retval #WIFI_DIRECT_ERROR_NONE Successful
4887 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
4888 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
4889 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
4890 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
4891 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
4892 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
4893 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
4894 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
4895 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
4896 * @see wifi_direct_activate()
4897 * @see wifi_direct_set_wps_pin()
4900 * Here is an example of the usage:
4902 * #include <stdio.h>
4903 * #include <wifi_direct.h>
4906 * int function(void)
4911 * ret = wifi_direct_get_wps_pin(&pin); // Get the WPS PIN
4913 * if (ret != WIFI_DIRECT_ERROR_NONE) {
4914 * printf("Failed to get the WPS PIN\n");
4918 * printf("WPS PIN : %s\n", pin);
4923 * void callback(int error_code,
4924 * wifi_direct_connection_state_e connection_state,
4925 * const char *mac_address,
4932 * switch (connection_state) {
4934 * case WIFI_DIRECT_CONNECTION_IN_PROGRESS:
4935 * printf("Connection in progress\n");
4938 * case WIFI_DIRECT_CONNECTION_RSP:
4939 * if (error_code == WIFI_DIRECT_ERROR_NONE) {
4940 * printf("Peer Device Connected\n"); // device is connected
4942 * printf("MAC=%s\n", mac_address); // device's MAC address
4944 * wifi_direct_get_ip_address(&ip);
4945 * printf("IP=%s\n", ip); //device's IP address
4947 * wifi_direct_is_group_owner(&owner);
4948 * printf("Ownership=%s\n", (owner)? "GO":"STA"); // (GO or client role)
4950 * } else if (error_code == WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT) {
4951 * printf("Connection timeout occurred\n");
4952 * } else if (error_code == WIFI_DIRECT_ERROR_AUTH_FAILED) {
4953 * printf("Connection authorization Failed\n");
4955 * printf("Connection failed\n");
4958 * case WIFI_DIRECT_CONNECTION_WPS_REQ:
4960 * wifi_direct_get_local_wps_type(&wps_mode);
4962 * if (wps_mode == WIFI_DIRECT_WPS_TYPE_PBC) {
4963 * printf("Connection type WPS PBC\n");
4964 * // Handle WPS PBC case here
4967 * if (wps_mode == WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY) {
4968 * printf("Connection type WPS PIN DISPLAY\n");
4969 * // Handle WPS PIN Display case here
4972 * // Display WPS PIN here
4973 * // Since the device received WPS PIN Display connection request
4974 * // user need to display the WPS PIN which is shared by peer device
4979 * if (wps_mode == WIFI_DIRECT_WPS_PIN_KEYPAD) {
4980 * printf("Connection type WPS PIN KEYPAD\n");
4981 * // Handle WPS PIN Keypad case here
4985 * case WIFI_DIRECT_CONNECTION_REQ:
4986 * printf("Connection request from MAC %s\n", mac_address);
4988 * // Handle the connection request from peer device here
4990 * // 2. WPS PIN Display
4991 * // 3. WPS PIN Keypad
4993 * wifi_direct_accept_connection(mac_address);
4996 * case WIFI_DIRECT_DISCONNECTION_IND:
4997 * if (error_code == WIFI_DIRECT_ERROR_NONE)
4998 * printf("peer device disconnected MAC %s\n", mac_address);
5001 * case WIFI_DIRECT_DISCONNECTION_RSP:
5002 * if (error_code == WIFI_DIRECT_ERROR_NONE)
5003 * printf("peer device disconnection response MAC %s\n", mac_address);
5006 * case WIFI_DIRECT_CONNECTION_DISASSOCIATION_IND:
5007 * if (error_code == WIFI_DIRECT_ERROR_NONE)
5008 * printf("peer device disassociation MAC %s\n", mac_address);
5011 * case WIFI_DIRECT_GROUP_CREATED:
5012 * printf("Group Created\n");
5015 * case WIFI_DIRECT_GROUP_DESTROYED:
5016 * printf("Group Destroyed\n");
5026 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
5027 * wifi_direct_set_connection_state_changed_cb(callback, NULL); // Register callback
5029 * wifi_direct_activate(); // Activate Wi-Fi Direct
5033 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
5035 * wifi_direct_set_connection_state_changed_cb(callback, NULL); // Deregister callback
5036 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
5041 int wifi_direct_get_wps_pin(char **pin);
5045 * @brief Gets all the supported WPS (Wi-Fi Protected Setup) types at local device.
5048 * @privilege http://tizen.org/privilege/wifidirect
5049 * @param[out] wps_mode Supported wps mode for local device
5050 * @return @c 0 on success,
5051 * otherwise a negative error value
5052 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5053 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5054 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
5055 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
5056 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5057 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
5058 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
5059 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5060 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
5061 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
5062 * @see wifi_direct_initialize()
5065 * Here is an example of the usage:
5067 * #include <stdio.h>
5068 * #include <wifi_direct.h>
5070 * int function(void)
5075 * ret = wifi_direct_get_supported_wps_mode(&wps_mode); // Get supported WPS mode
5077 * if (ret != WIFI_DIRECT_ERROR_NONE) {
5078 * printf("Failed to get supported wps mode\n");
5082 * switch (wps_mode) {
5083 * case WIFI_DIRECT_WPS_TYPE_PBC:
5084 * printf("mode is WPS PBC\n");
5087 * case WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY:
5088 * printf("mode is WPS PIN Display\n");
5091 * case WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD:
5092 * printf("mode is WPS PIN Keypad\n");
5101 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
5102 * wifi_direct_activated(); // Activate Wi-Fi Direct
5108 * // App must cleaup Wi-Fi Direct before exiting
5110 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
5111 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
5116 int wifi_direct_get_supported_wps_mode(int *wps_mode);
5120 * @brief Called when you get the supported WPS(Wi-Fi Protected Setup) type repeatedly.
5122 * @param[in] type The type of WPS
5123 * @param[in] user_data The user data passed from the request function
5124 * @return @c true to continue with the next iteration of the loop, \n
5125 * @c false to break out of the loop
5126 * @pre wifi_direct_foreach_supported_wps_types() will invoke this callback.
5127 * @see wifi_direct_foreach_supported_wps_types()
5129 typedef bool(*wifi_direct_supported_wps_type_cb)(wifi_direct_wps_type_e type, void *user_data);
5133 * @brief Gets the supported WPS (Wi-Fi Protected Setup) types.
5136 * @privilege http://tizen.org/privilege/wifidirect
5137 * @param[in] callback The callback function to invoke
5138 * @param[in] user_data The user data to be passed to the callback function
5139 * @return @c 0 on success,
5140 * otherwise a negative error value
5141 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5142 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5143 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
5144 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
5145 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5146 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
5147 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
5148 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5149 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
5150 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
5151 * @see wifi_direct_initialize()
5152 * @see wifi_direct_supported_wps_type_cb()
5155 * Here is an example of the usage:
5157 * #include <stdio.h>
5158 * #include <wifi_direct.h>
5161 * bool callback(wifi_direct_wps_types_e type, void *user_data)
5164 * case WIFI_DIRECT_WPS_TYPE_PBC:
5165 * printf("mode is WPS PBC\n");
5168 * case WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY:
5169 * printf("mode is WPS PIN Display\n");
5172 * case WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD:
5173 * printf("mode is WPS PIN Keypad\n");
5178 * int function(void)
5182 * ret = wifi_direct_foreach_supported_wps_types(callback, NULL);
5184 * if (ret != WIFI_DIRECT_ERROR_NONE) {
5185 * printf("Failed to get supported wps types\n");
5194 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
5195 * wifi_direct_activated(); // Activate Wi-Fi Direct
5201 * // App must cleaup Wi-Fi Direct before exiting
5203 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
5204 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
5209 int wifi_direct_foreach_supported_wps_types(wifi_direct_supported_wps_type_cb callback, void *user_data);
5213 * @brief Gets the WPS (Wi-Fi Protected Setup) type.
5216 * @privilege http://tizen.org/privilege/wifidirect
5217 * @param[out] type The type of WPS
5218 * @return @c 0 on success,
5219 * otherwise a negative error value
5220 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5221 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5222 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
5223 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
5224 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5225 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
5226 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
5227 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5228 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
5229 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
5230 * @see wifi_direct_initialize()
5231 * @see wifi_direct_foreach_supported_wps_types()
5234 * Here is an example of the usage:
5236 * #include <stdio.h>
5237 * #include <wifi_direct.h>
5240 * int function(void)
5245 * ret = wifi_direct_get_local_wps_type(&wps_type);
5247 * if (ret != WIFI_DIRECT_ERROR_NONE) {
5248 * printf("Failed to get supported wps types\n");
5252 * switch (wps_type) {
5253 * case WIFI_DIRECT_WPS_TYPE_PBC:
5254 * printf("mode is WPS PBC\n");
5257 * case WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY:
5258 * printf("mode is WPS PIN Display\n");
5261 * case WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD:
5262 * printf("mode is WPS PIN Keypad\n");
5270 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
5271 * wifi_direct_activated(); // Activate Wi-Fi Direct
5277 * // App must cleaup Wi-Fi Direct before exiting
5279 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
5280 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
5285 int wifi_direct_get_local_wps_type(wifi_direct_wps_type_e *type);
5289 * @brief Sets the requested WPS (Wi-Fi Protected Setup) type.
5292 * @privilege http://tizen.org/privilege/wifidirect
5293 * @param[in] type The type of WPS
5294 * @return @c 0 on success,
5295 * otherwise a negative error value
5296 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5297 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5298 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
5299 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
5300 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5301 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
5302 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
5303 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5304 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
5305 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
5306 * @see wifi_direct_initialize()
5307 * @see wifi_direct_foreach_supported_wps_types()
5310 * Here is an example of the usage:
5312 * #include <stdio.h>
5313 * #include <wifi_direct.h>
5316 * int function(void)
5322 * printf("Input new WPS mode\n");
5323 * printf("1. WPS Type PBC\n");
5324 * printf("2. WPS Type PIN Display\n");
5325 * printf("3. WPS Type PIN Keypad\n");
5326 * scanf("%1d", &option);
5330 * wps_type = WIFI_DIRECT_WPS_TYPE_PBC;
5334 * wps_type = WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY;
5338 * wps_type = WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD;
5342 * ret = wifi_direct_set_req_wps_type(wps_type);
5344 * if (ret != WIFI_DIRECT_ERROR_NONE) {
5345 * printf("Failed to set requeted wps types\n");
5354 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
5355 * wifi_direct_activated(); // Activate Wi-Fi Direct
5361 * // App must cleaup Wi-Fi Direct before exiting
5363 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
5364 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
5369 int wifi_direct_set_req_wps_type(wifi_direct_wps_type_e type);
5373 * @brief Gets the requested WPS (Wi-Fi Protected Setup) type.
5376 * @privilege http://tizen.org/privilege/wifidirect
5377 * @param[out] type The type of WPS
5378 * @return @c 0 on success,
5379 * otherwise a negative error value
5380 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5381 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5382 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
5383 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
5384 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5385 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
5386 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
5387 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5388 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
5389 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
5390 * @see wifi_direct_initialize()
5391 * @see wifi_direct_foreach_supported_wps_types()
5394 * Here is an example of the usage:
5396 * #include <stdio.h>
5397 * #include <wifi_direct.h>
5400 * int function(void)
5405 * ret = wifi_direct_get_req_wps_type(&wps_type);
5407 * if (ret != WIFI_DIRECT_ERROR_NONE) {
5408 * printf("Failed to get supported wps types\n");
5412 * switch (wps_type) {
5413 * case WIFI_DIRECT_WPS_TYPE_PBC:
5414 * printf("mode is WPS PBC\n");
5417 * case WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY:
5418 * printf("mode is WPS PIN Display\n");
5421 * case WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD:
5422 * printf("mode is WPS PIN Keypad\n");
5430 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
5431 * wifi_direct_activated(); // Activate Wi-Fi Direct
5437 * // App must cleaup Wi-Fi Direct before exiting
5439 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
5440 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
5445 int wifi_direct_get_req_wps_type(wifi_direct_wps_type_e *type);
5449 * @brief Sets the intent of the group owner.
5452 * @privilege http://tizen.org/privilege/wifidirect
5453 * @remarks The range of intent is 0 - 15. The higher the @a intent is,
5454 * the higher the probability to be the group owner is.
5455 * @param[in] intent The intent of the group owner
5456 * @return @c 0 on success,
5457 * otherwise a negative error value
5458 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5459 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5460 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
5461 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
5462 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5463 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
5464 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
5465 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5466 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
5467 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
5468 * @see wifi_direct_initialize()
5469 * @see wifi_direct_get_group_owner_intent()
5472 * Here is an example of the usage:
5474 * #include <stdio.h>
5475 * #include <wifi_direct.h>
5478 * int function(void)
5483 * printf("Input the GO Intent range(0~15)\n");
5484 * scanf("%2d", &go_intent);
5486 * ret = wifi_direct_set_group_owner_intent(go_intent);
5488 * if (ret != WIFI_DIRECT_ERROR_NONE) {
5489 * printf("Failed to set go intent\n");
5498 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
5499 * wifi_direct_activated(); // Activate Wi-Fi Direct
5505 * // App must cleaup Wi-Fi Direct before exiting
5507 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
5508 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
5513 int wifi_direct_set_group_owner_intent(int intent);
5516 * @brief Sets the intent of the group owner for each connection type.
5519 * @privilege http://tizen.org/privilege/wifidirect
5520 * @remarks The range of intent is 0 - 15. The higher the @a intent is, the higher the probability to be the group owner is.
5521 * @param[in] type The type of connection for a peer device
5522 * @param[in] intent The intent of the group owner
5523 * @return 0 on success, otherwise a negative error value
5524 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5525 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5526 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
5527 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
5528 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5529 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
5530 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5531 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
5532 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
5533 * @see wifi_direct_initialize()
5534 * @see wifi_direct_get_go_intent_per_type()
5536 int wifi_direct_set_go_intent_per_type(int type, int intent);
5539 * @brief Gets the intent of the group owner.
5542 * @privilege http://tizen.org/privilege/wifidirect
5543 * @param[out] intent The intent of the group owner
5544 * @return @c 0 on success,
5545 * otherwise a negative error value
5546 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5547 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5548 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
5549 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
5550 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5551 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
5552 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
5553 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5554 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
5555 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
5556 * @see wifi_direct_initialize()
5557 * @see wifi_direct_set_group_owner_intent()
5560 * Here is an example of the usage:
5562 * #include <stdio.h>
5563 * #include <wifi_direct.h>
5566 * int function(void)
5571 * ret = wifi_direct_get_group_owner_intent(&go_intent);
5573 * if (ret != WIFI_DIRECT_ERROR_NONE) {
5574 * printf("Failed to get go intent\n");
5578 * printf("Current GO Intent = %d\n", go_intent);
5584 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
5585 * wifi_direct_activated(); // Activate Wi-Fi Direct
5591 * // App must cleaup Wi-Fi Direct before exiting
5593 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
5594 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
5599 int wifi_direct_get_group_owner_intent(int *intent);
5602 * @brief Gets the intent of the group owner for each connection type.
5605 * @privilege http://tizen.org/privilege/wifidirect
5606 * @param[in] type The type of connection for a peer device
5607 * @param[out] intent The intent of the group owner
5608 * @return 0 on success, otherwise a negative error value
5609 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5610 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5611 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
5612 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
5613 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5614 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
5615 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5616 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
5617 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
5618 * @see wifi_direct_initialize()
5619 * @see wifi_direct_set_go_intent_per_type()
5621 int wifi_direct_get_go_intent_per_type(int type, int *intent);
5624 * @brief Sets the max number of clients.
5627 * @privilege http://tizen.org/privilege/wifidirect
5628 * @param[in] max The max number of clients
5629 * @return @c 0 on success,
5630 * otherwise a negative error value
5631 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5632 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5633 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
5634 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
5635 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5636 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
5637 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
5638 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5639 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
5640 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
5641 * @see wifi_direct_initialize()
5642 * @see wifi_direct_get_max_clients()
5645 * Here is an example of the usage:
5647 * #include <stdio.h>
5648 * #include <wifi_direct.h>
5651 * int function(void)
5656 * printf("Input the maximum clients to be connected\n");
5657 * scanf("%4d", &max_client);
5659 * ret = wifi_direct_set_max_clients(max_client);
5661 * if (ret != WIFI_DIRECT_ERROR_NONE) {
5662 * printf("Failed to set max clients\n");
5666 * printf("max client set success\n");
5672 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
5673 * wifi_direct_activated(); // Activate Wi-Fi Direct
5679 * // App must cleaup Wi-Fi Direct before exiting
5681 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
5682 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
5687 int wifi_direct_set_max_clients(int max);
5691 * @brief Gets the max number of clients.
5694 * @privilege http://tizen.org/privilege/wifidirect
5695 * @param[in] max The max number of clients
5696 * @return @c 0 on success,
5697 * otherwise a negative error value
5698 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5699 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5700 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
5701 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
5702 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5703 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
5704 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
5705 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5706 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
5707 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
5708 * @see wifi_direct_initialize()
5709 * @see wifi_direct_set_max_clients()
5712 * Here is an example of the usage:
5714 * #include <stdio.h>
5715 * #include <wifi_direct.h>
5718 * int function(void)
5723 * ret = wifi_direct_get_max_clients(&max_client);
5725 * if (ret != WIFI_DIRECT_ERROR_NONE) {
5726 * printf("Failed to get max clients\n");
5730 * printf("max client = %d\n", max_client);
5736 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
5737 * wifi_direct_activated(); // Activate Wi-Fi Direct
5743 * // App must cleaup Wi-Fi Direct before exiting
5745 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
5746 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
5751 int wifi_direct_get_max_clients(int *max);
5755 * @brief Sets or updates Wi-Fi Protected Access (WPA) password.
5756 * When creating Wi-Fi Direct Group, this password will be used.
5759 * @privilege http://tizen.org/privilege/wifidirect
5760 * @param passphrase new wpa password to set. Application must set the new password before.
5761 * @remarks a peer can connect to this group as Wi-Fi Infrastructured mode with a passphrase.
5762 * @return @c 0 on success,
5763 * otherwise a negative error value
5764 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5765 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5766 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
5767 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
5768 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5769 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
5770 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
5771 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5772 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
5773 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
5774 * @see wifi_direct_activate()
5775 * @see wifi_direct_get_passphrase()
5778 * Here is an example of the usage:
5780 * #include <stdio.h>
5781 * #include <wifi_direct.h>
5784 * int function(void)
5787 * char key[65] = {0, };
5789 * printf("Input the passphrase\n");
5790 * read(stdin, key, 64);
5792 * ret = wifi_direct_set_passphrase(key);
5794 * if (ret != WIFI_DIRECT_ERROR_NONE) {
5795 * printf("Failed to set passphrase\n");
5799 * printf("passphrase set success\n");
5805 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
5806 * wifi_direct_activated(); // Activate Wi-Fi Direct
5812 * // App must cleaup Wi-Fi Direct before exiting
5814 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
5815 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
5820 int wifi_direct_set_passphrase(const char *passphrase);
5824 * @brief Gets the Wi-Fi Protected Access (WPA) password when creating Wi-Fi Direct Group.
5827 * @privilege http://tizen.org/privilege/wifidirect
5828 * @remarks @a passphrase must be released with free().
5829 * @param[out] passphrase Pointer to store wpa password. Application must free this memory
5830 * @return @c 0 on success,
5831 * otherwise a negative error value
5832 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5833 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5834 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
5835 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
5836 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5837 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
5838 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
5839 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5840 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
5841 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
5842 * @see wifi_direct_activate()
5843 * @see wifi_direct_set_passphrase()
5846 * Here is an example of the usage:
5848 * #include <stdio.h>
5849 * #include <wifi_direct.h>
5852 * int function(void)
5857 * ret = wifi_direct_get_passphrase(&key);
5859 * if (ret != WIFI_DIRECT_ERROR_NONE) {
5860 * printf("Failed to get passphrase\n");
5864 * printf("passphrase = %s\n", key);
5871 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
5872 * wifi_direct_activated(); // Activate Wi-Fi Direct
5878 * // App must cleaup Wi-Fi Direct before exiting
5880 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
5881 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
5886 int wifi_direct_get_passphrase(char **passphrase);
5890 * @brief Gets the operating channel.
5893 * @privilege http://tizen.org/privilege/wifidirect
5894 * @param[out] channel The operating channel
5895 * @return @c 0 on success,
5896 * otherwise a negative error value
5897 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5898 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5899 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
5900 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
5901 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5902 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
5903 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
5904 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5905 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
5906 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
5907 * @see wifi_direct_initialize()
5910 * Here is an example of the usage:
5912 * #include <stdio.h>
5913 * #include <wifi_direct.h>
5916 * int function(void)
5921 * ret = wifi_direct_get_operating_channel(&channel);
5923 * if (ret != WIFI_DIRECT_ERROR_NONE) {
5924 * printf("Failed to get operating channel\n");
5928 * printf("operating channel = %d\n", channel);
5934 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
5935 * wifi_direct_activated(); // Activate Wi-Fi Direct
5941 * // App must cleaup Wi-Fi Direct before exiting
5943 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
5944 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
5949 int wifi_direct_get_operating_channel(int *channel);
5953 * @brief Sets the Autoconnection mode.
5956 * @privilege http://tizen.org/privilege/wifidirect
5957 * @param[in] mode Describes the mode of connection. In case of TRUE \n
5958 * auto-connection will be taken care by framework
5959 * @return @c 0 on success,
5960 * otherwise a negative error value
5961 * @retval #WIFI_DIRECT_ERROR_NONE Successful
5962 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
5963 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
5964 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
5965 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
5966 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
5967 * @see wifi_direct_foreach_supported_wps_types()
5970 * Here is an example of the usage:
5972 * #include <stdio.h>
5973 * #include <wifi_direct.h>
5976 * int function(void)
5981 * printf("enable auto connect mode (yes[1] or no[2])\n");
5982 * scanf("%1d", &auto_connect);
5985 * ret = wifi_direct_set_autoconnection_mode(true);
5987 * ret = wifi_direct_set_sutoconnection_mode(false);
5989 * if (ret != WIFI_DIRECT_ERROR_NONE) {
5990 * printf("Failed to set autoconnection mode\n");
5994 * printf("Auto connect mode enabled\n");
6000 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
6001 * wifi_direct_activated(); // Activate Wi-Fi Direct
6007 * // App must cleaup Wi-Fi Direct before exiting
6009 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
6010 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
6015 int wifi_direct_set_autoconnection_mode(bool mode);
6019 * @brief Gets the Autoconnection mode status.
6022 * @privilege http://tizen.org/privilege/wifidirect
6023 * @param[out] mode Describes the auto connection mode of framework has set.
6024 * @return @c 0 on success,
6025 * otherwise a negative error value
6026 * @retval #WIFI_DIRECT_ERROR_NONE Successful
6027 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
6028 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
6029 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
6030 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
6031 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
6032 * @see wifi_direct_foreach_supported_wps_types()
6033 * @see wifi_direct_initialize()
6036 * Here is an example of the usage:
6038 * #include <stdio.h>
6039 * #include <wifi_direct.h>
6042 * int function(void)
6047 * ret = wifi_direct_is_autoconnection_mode(&status);
6049 * if (ret != WIFI_DIRECT_ERROR_NONE) {
6050 * printf("Failed to get autoconnection mode\n");
6054 * printf("auto connect mode = %s\n", (status)?"Yes":"No");
6060 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
6061 * wifi_direct_activated(); // Activate Wi-Fi Direct
6067 * // App must cleaup Wi-Fi Direct before exiting
6069 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
6070 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
6075 int wifi_direct_is_autoconnection_mode(bool *mode);
6079 * @brief Allows a device to connect automatically.
6082 * @privilege http://tizen.org/privilege/wifidirect
6083 * @param[in] mac_address Device MAC address to allow autoconnection
6084 * @return @c 0 on success,
6085 * otherwise a negative error value
6086 * @retval #WIFI_DIRECT_ERROR_NONE Successful
6087 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
6088 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
6089 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
6090 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
6091 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
6092 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
6093 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
6094 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
6095 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
6096 * @see wifi_direct_activate()
6099 * Here is an example of the usage:
6101 * #include <stdio.h>
6102 * #include <wifi_direct.h>
6104 * bool peer_selected = false;
6105 * int connection_timeout = 0;
6106 * int count = 0; // counter to wait for connection
6108 * int function(char *mac);
6110 * void peers_cb(wifi_direct_discovered_peer_info_s* peer,
6115 * if (peer && !peer_selected) {
6116 * printf("peer device=%s MAC=%s\n", peer->device_name, peer->mac_address);
6118 * peer_selected = true;
6120 * function(peer->mac_address);
6122 * wifi_direct_connect(peer->mac_address); // Connect to the selected peer
6126 * int function(char *mac)
6130 * ret = wifi_direct_set_autoconnection_peer(mac); // set autoconnection
6132 * if (ret != WIFI_DIRECT_ERROR_NONE) {
6133 * printf("Failed to set autoconnection for peer\n");
6137 * printf("set auto-connection success\n");
6141 * void callback_2(int error_code,
6142 * wifi_direct_connection_state_e state,
6143 * const char *mac, void *user_data)
6146 * case WIFI_DIRECT_CONNECTION_IN_PROGRESS:
6147 * printf("Connection in progress\n");
6150 * case WIFI_DIRECT_CONNECTON_RSP:
6151 * printf("Connected\n");
6152 * g_source_remove(connection_timeout);
6155 * case WIFI_DIRECT_DISCONNECTION_IND:
6156 * printf("Disconnection IND\n");
6159 * case WIFI_DIRECT_DISCONNECTION_RSP;
6160 * printf("Disconnected\n");
6165 * void callback_1(int error_code,
6166 * wifi_direct_discovery_state_e discovery_state,
6169 * switch(discovery_state) {
6170 * case WIFI_DIRECT_DISCOVERY_STARTED:
6171 * printf("Discovery started\n");
6174 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
6175 * printf("listen started\n");
6178 * case WIFI_DIRECT_DISCOVERY_FINISHED:
6179 * printf("Discovery finished\n");
6181 * wifi_direct_foreach_discovered_peers(peers_cb,
6182 * NULL); // Get discovered peer
6185 * case WIFI_DIRECT_DISCOVERY_FOUND:
6186 * printf("peer devices found\n");
6189 * case WIFI_DIRECT_DISCOVERY_LOST:
6190 * printf("Discovery lost\n");
6200 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
6201 * wifi_direct_set_discovery_state_changed_cb(callback_1, NULL); // Register callback 1
6202 * wifi_direct_set_connection_state_changed_cb(callback_2, NULL); // Register callback 2
6204 * wifi_direct_activated(); // Activate Wi-Fi Direct
6205 * wifi_direct_start_discovery(TRUE, 15); // Start discovery
6207 * // App must cleaup Wi-Fi Direct before exiting
6209 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
6210 * wifi_direct_unset_connection_state_changed_cb(); // Deregister callback 2
6211 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback 1
6212 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
6217 int wifi_direct_set_autoconnection_peer(char *mac_address);
6221 * @brief Enables the persistent group.
6222 * @details If @a enabled is true, then P2P persistent group will be used
6223 * while creating a group and establishing a connection.
6226 * @privilege http://tizen.org/privilege/wifidirect
6227 * @param[in] enabled The status of persistent group: (@c true = enabled, @c false = disabled)
6228 * @return @c 0 on success,
6229 * otherwise a negative error value
6230 * @retval #WIFI_DIRECT_ERROR_NONE Successful
6231 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
6232 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
6233 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
6234 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
6235 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
6236 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
6237 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
6238 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
6239 * @see wifi_direct_initialize()
6240 * @see wifi_direct_is_persistent_group_enabled()
6243 * Here is an example of the usage:
6245 * #include <stdio.h>
6246 * #include <wifi_direct.h>
6249 * int function(void)
6253 * ret = wifi_direct_set_persistence_group_enabled(true);
6255 * if (ret != WIFI_DIRECT_ERROR_NONE) {
6256 * printf("Failed to set persistence group enabled\n");
6260 * printf("persistence group enabled success\n");
6266 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
6267 * wifi_direct_activated(); // Activate Wi-Fi Direct
6273 * // App must cleaup Wi-Fi Direct before exiting
6275 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
6276 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
6281 int wifi_direct_set_persistent_group_enabled(bool enabled);
6285 * @brief Checks whether the persistent group is enabled or disabled.
6288 * @privilege http://tizen.org/privilege/wifidirect
6289 * @param[out] enabled The status of the persistent group: (@c true = enabled, @c false = disabled)
6290 * @return @c 0 on success,
6291 * otherwise a negative error value
6292 * @retval #WIFI_DIRECT_ERROR_NONE Successful
6293 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
6294 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
6295 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
6296 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
6297 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
6298 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
6299 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
6300 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
6301 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
6302 * @see wifi_direct_initialize()
6303 * @see wifi_direct_set_persistent_group_enabled()
6306 * Here is an example of the usage:
6308 * #include <stdio.h>
6309 * #include <wifi_direct.h>
6312 * int function(void)
6317 * ret = wifi_direct_is_persistent_group_enabled(&status);
6319 * if (ret != WIFI_DIRECT_ERROR_NONE) {
6320 * printf("Failed to get status of persistence group enabled\n");
6324 * printf("persistence group status = %s\n", status?"Yes":"No");
6330 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
6331 * wifi_direct_activated(); // Activate Wi-Fi Direct
6337 * // App must cleaup Wi-Fi Direct before exiting
6339 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
6340 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
6345 int wifi_direct_is_persistent_group_enabled(bool *enabled);
6349 * @brief Called when you get the persistent groups repeatedly.
6351 * @param[in] mac_address The MAC address of the persistent group owner
6352 * @param[in] ssid The SSID (Service Set Identifier) of the persistent group owner
6353 * @param[in] user_data The user data passed from the request function
6354 * @return @c true to continue with the next iteration of the loop, \n
6355 * @c false to break out of the loop
6356 * @pre wifi_direct_foreach_persistent_groups() will invoke this callback.
6357 * @see wifi_direct_foreach_persistent_groups()
6359 typedef bool(*wifi_direct_persistent_group_cb)(const char *mac_address, const char *ssid, void *user_data);
6363 * @brief Gets the persistent groups.
6366 * @privilege http://tizen.org/privilege/wifidirect
6367 * @param[in] callback The callback function to invoke
6368 * @param[in] user_data The user data to be passed to the callback function
6369 * @return @c 0 on success,
6370 * otherwise a negative error value
6371 * @retval #WIFI_DIRECT_ERROR_NONE Successful
6372 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
6373 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
6374 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
6375 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
6376 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
6377 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
6378 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
6379 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
6380 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
6381 * @post wifi_direct_persistent_group_cb() will be called.
6382 * @see wifi_direct_initialize()
6383 * @see wifi_direct_persistent_group_cb()
6386 * Here is an example of the usage:
6388 * #include <stdio.h>
6389 * #include <wifi_direct.h>
6392 * bool callback(const char *mac_address,
6397 * printf("mac = %s\n", mac_address);
6400 * printf("ssid = %s\n", ssid);
6405 * int function(void)
6409 * ret = wifi_direct_foreach_persistent_groups(callback, NULL);
6411 * if (ret != WIFI_DIRECT_ERROR_NONE) {
6412 * printf("Failed to set callback for persistatus of persistence group enabled\n");
6421 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
6422 * wifi_direct_activated(); // Activate Wi-Fi Direct
6428 * // App must cleaup Wi-Fi Direct before exiting
6430 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
6431 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
6436 int wifi_direct_foreach_persistent_groups(wifi_direct_persistent_group_cb callback, void *user_data);
6440 * @brief Removes a persistent group.
6443 * @privilege http://tizen.org/privilege/wifidirect
6444 * @param[in] mac_address The MAC address of the persistent group owner
6445 * @param[in] ssid The SSID (Service Set Identifier) of the persistent group owner
6446 * @return @c 0 on success,
6447 * otherwise a negative error value
6448 * @retval #WIFI_DIRECT_ERROR_NONE Successful
6449 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
6450 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
6451 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
6452 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
6453 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
6454 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
6455 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
6456 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
6457 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
6458 * @see wifi_direct_initialize()
6459 * @see wifi_direct_foreach_persistent_groups()
6462 * Here is an example of the usage:
6464 * #include <stdio.h>
6465 * #include <wifi_direct.h>
6468 * int function(void)
6472 * char *ssid = NULL;
6474 * printf("Input MAC\n");
6475 * scanf("%18ms", &mac);
6477 * printf("Input SSID\n");
6478 * scanf("%33ms", &ssid);
6480 * ret = wifi_direct_remove_persistent_group(mac, ssid);
6482 * if (ret != WIFI_DIRECT_ERROR_NONE) {
6483 * printf("Failed to remove persistent group\n");
6487 * printf("persistent group with MAC (%s) is removed\n", mac);
6495 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
6496 * wifi_direct_activated(); // Activate Wi-Fi Direct
6502 * // App must cleaup Wi-Fi Direct before exiting
6504 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
6505 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
6510 int wifi_direct_remove_persistent_group(char *mac_address, const char *ssid);
6514 * @brief WiFi Direct Service Discovery will be started.
6517 * @privilege http://tizen.org/privilege/wifidirect
6518 * @param[in] mac_address The MAC address of servicing device. A broadcast \n
6519 * will be sent when MAC is SET to ZERO
6520 * @param[in] service_type Describes the type of service
6521 * @return @c 0 on success,
6522 * otherwise a negative error value
6523 * @retval #WIFI_DIRECT_ERROR_NONE Successful
6524 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
6525 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
6526 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
6527 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
6528 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
6529 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
6530 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
6531 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
6532 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
6533 * @post wifi_direct_set_service_state_changed_cb() will be invoked.
6534 * @see wifi_direct_activate()
6535 * @see wifi_direct_set_service_state_changed_cb()
6538 * Here is an example of the usage:
6540 * #include <stdio.h>
6541 * #include <wifi_direct.h>
6543 * void callback(int error_code,
6544 * wifi_direct_service_discovery_state_e discovery_state,
6545 * wifi_direct_service_type_e service_type,
6546 * void *response_data, const char * mac_address,
6549 * switch (discovery_state) {
6550 * case WIFI_DIRECT_SERVICE_DISCOVERY_STARTED:
6551 * printf("Service discovery started\n");
6554 * case WIFI_DIRECT_SERVICE_DISCOVERY_FINISHED:
6555 * printf("Service discovery finished\n");
6558 * case WIFI_DIRECT_SERVICE_DISCOVERY_FOUND:
6559 * printf("Service discovery found\n");
6564 * int function(void)
6568 * wifi_direct_service_type_e type = WIFI_DIRECT_SERVICE_TYPE_ALL;
6570 * printf("Input service type\n");
6571 * scanf("%1d", &option);
6573 * printf("1. WIFI_DIRECT_SERVICE_TYPE_ALL\n");
6574 * printf("2. WIFI_DIRECT_SERVICE_TYPE_BONJOUR\n");
6575 * printf("3. WIFI_DIRECT_SERVICE_TYPE_UPNP\n");
6576 * printf("4. WIFI_DIRECT_SERVICE_TYPE_BT_ADDR\n");
6577 * printf("5. WIFI_DIRECT_SERVICE_TYPE_CONTACT_INFO\n");
6581 * type = WIFI_DIRECT_SERVICE_TYPE_ALL;
6585 * type = WIFI_DIRECT_SERVICE_TYPE_BONJOUR;
6589 * type = WIFI_DIRECT_SERVICE_TYPE_UPNP;
6593 * type = WIFI_DIRECT_SERVICE_TYPE_BT_ADDR;
6597 * type = WIFI_DIRECT_SERVICE_TYPE_CONTACT_INFO;
6601 * ret = wifi_direct_start_service_discovery(NULL, type); // start broadcast service discovery
6603 * if (ret != WIFI_DIRECT_ERROR_NONE) {
6604 * printf("Failed to start service discovery\n");
6613 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
6614 * wifi_direct_set_service_state_changed_cb(callback, NULL);
6615 * wifi_direct_activated(); // Activate Wi-Fi Direct
6621 * // App must cleaup Wi-Fi Direct before exiting
6623 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
6624 * wifi_direct_unset_service_state_changed_cb();
6625 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
6630 int wifi_direct_start_service_discovery(char *mac_address, wifi_direct_service_type_e service_type);
6634 * @brief A service started for Wi-Fi Direct Service Discovery will be stopped.
6637 * @privilege http://tizen.org/privilege/wifidirect
6638 * @param[in] mac_address The MAC address of servicing device. A broadcast \n
6639 * will be sent when MAC is SET to ZERO
6640 * @param[in] service_type Describes the type of service
6641 * @return @c 0 on success,
6642 * otherwise a negative error value
6643 * @retval #WIFI_DIRECT_ERROR_NONE Successful
6644 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
6645 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
6646 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
6647 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
6648 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
6649 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
6650 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
6651 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
6652 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
6653 * @see wifi_direct_activate()
6656 * Here is an example of the usage:
6658 * #include <stdio.h>
6659 * #include <wifi_direct.h>
6661 * void callback(int error_code,
6662 * wifi_direct_service_discovery_state_e discovery_state,
6663 * wifi_direct_service_type_e service_type,
6664 * void *response_data, const char * mac_address,
6667 * switch (discovery_state) {
6668 * case WIFI_DIRECT_SERVICE_DISCOVERY_STARTED:
6669 * printf("Service discovery started\n");
6672 * case WIFI_DIRECT_SERVICE_DISCOVERY_FINISHED:
6673 * printf("Service discovery finished\n");
6676 * case WIFI_DIRECT_SERVICE_DISCOVERY_FOUND:
6677 * printf("Service discovery found\n");
6682 * int function(void)
6686 * ret = wifi_direct_cancel_service_discovery(NULL,
6687 * WIFI_DIRECT_SERVICE_TYPE_ALL); // cancel the ongoing service discovery
6689 * if (ret != WIFI_DIRECT_ERROR_NONE) {
6690 * printf("Failed to cancel service discovery\n");
6699 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
6700 * wifi_direct_set_service_state_changed_cb(callback, NULL);
6701 * wifi_direct_activated(); // Activate Wi-Fi Direct
6703 * wifi_direct_start_service_discovery(NULL,
6704 * WIFI_DIRECT_SERVICE_TYPE); // start broadcast service discovery
6710 * // App must cleaup Wi-Fi Direct before exiting
6712 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
6713 * wifi_direct_unset_service_state_changed_cb();
6714 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
6719 int wifi_direct_cancel_service_discovery(char *mac_address, wifi_direct_service_type_e service_type);
6723 * @brief Registers for a service using Wi-Fi Direct Service Discovery.
6726 * @privilege http://tizen.org/privilege/wifidirect
6727 * @param[in] service_type Describes the type of service.
6728 * @param[in] info1 Describes the information of service. It is service-specific
6729 * @param[in] info2 Describes the information of service. It is service-specific
6730 * @param[out] service_id A Service ID will be assigned to service getting registered
6731 * @return @c 0 on success,
6732 * otherwise a negative error value
6733 * @retval #WIFI_DIRECT_ERROR_NONE Successful
6734 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
6735 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
6736 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
6737 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
6738 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
6739 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
6740 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
6741 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
6742 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
6743 * @see wifi_direct_activate()
6746 * Here is an example of the usage:
6748 * #include <stdio.h>
6749 * #include <wifi_direct.h>
6751 * void callback(int error_code,
6752 * wifi_direct_service_discovery_state_e discovery_state,
6753 * wifi_direct_service_type_e service_type,
6754 * void *response_data, const char * mac_address,
6757 * switch (discovery_state) {
6758 * case WIFI_DIRECT_SERVICE_DISCOVERY_STARTED:
6759 * printf("Service discovery started\n");
6762 * case WIFI_DIRECT_SERVICE_DISCOVERY_FINISHED:
6763 * printf("Service discovery finished\n");
6766 * case WIFI_DIRECT_SERVICE_DISCOVERY_FOUND:
6767 * printf("Service discovery found\n");
6772 * int function(void)
6778 * wifi_direct_service_type_e type = WIFI_DIRECT_SERVICE_TYPE_ALL;
6780 * printf("Input service type\n");
6781 * scanf("%1d", &option);
6783 * printf("1. WIFI_DIRECT_SERVICE_TYPE_ALL\n");
6784 * printf("2. WIFI_DIRECT_SERVICE_TYPE_BONJOUR\n");
6785 * printf("3. WIFI_DIRECT_SERVICE_TYPE_UPNP\n");
6786 * printf("4. WIFI_DIRECT_SERVICE_TYPE_BT_ADDR\n");
6787 * printf("5. WIFI_DIRECT_SERVICE_TYPE_CONTACT_INFO\n");
6791 * type = WIFI_DIRECT_SERVICE_TYPE_ALL;
6795 * type = WIFI_DIRECT_SERVICE_TYPE_BONJOUR;
6797 * printf("Enter the info 1\n");
6798 * scanf("%50ms", &info1);
6800 * printf("Enter the info 2\n");
6801 * scanf("%50ms", &info2);
6805 * type = WIFI_DIRECT_SERVICE_TYPE_UPNP;
6807 * printf("Enter the info 1\n");
6808 * scanf("%50ms", &info1);
6810 * printf("Enter the info 2\n");
6811 * scanf("%50ms", &info2);
6815 * type = WIFI_DIRECT_SERVICE_TYPE_BT_ADDR;
6819 * type = WIFI_DIRECT_SERVICE_TYPE_CONTACT_INFO;
6821 * printf("Enter the info 1\n");
6822 * scanf("%50ms", &info1);
6826 * ret = wifi_direct_register_service(type, info1, info2, &option);
6828 * if (ret != WIFI_DIRECT_ERROR_NONE) {
6829 * printf("Failed to start service discovery\n");
6833 * wifi_direct_start_service_discovery(NULL, type);
6842 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
6843 * wifi_direct_set_service_state_changed_cb(callback, NULL);
6844 * wifi_direct_activated(); // Activate Wi-Fi Direct
6850 * // App must cleaup Wi-Fi Direct before exiting
6852 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
6853 * wifi_direct_unset_service_state_changed_cb();
6854 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
6859 int wifi_direct_register_service(wifi_direct_service_type_e service_type, char *info1, char *info2, unsigned int *service_id);
6863 * @brief Deregisters for a service used for Wi-Fi Direct Service Discovery.
6866 * @privilege http://tizen.org/privilege/wifidirect
6867 * @param[in] service_id A Service ID for which service has to be deregistered
6868 * @return @c 0 on success,
6869 * otherwise a negative error value
6870 * @retval #WIFI_DIRECT_ERROR_NONE Successful
6871 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
6872 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
6873 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
6874 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
6875 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
6876 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
6877 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
6878 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
6879 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
6880 * @see wifi_direct_activate()
6883 * Here is an example of the usage:
6885 * #include <stdio.h>
6886 * #include <wifi_direct.h>
6889 * int function(void)
6894 * printf("Enter the service id\n");
6895 * scanf("%5d", &input);
6897 * ret = wifi_direct_deregister_service(input);
6899 * if (ret != WIFI_DIRECT_ERROR_NONE) {
6900 * printf("Failed to deregister service\n");
6909 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
6910 * wifi_direct_activated(); // Activate Wi-Fi Direct
6916 * // App must cleaup Wi-Fi Direct before exiting
6918 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
6919 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
6924 int wifi_direct_deregister_service(unsigned int service_id);
6928 * @brief Initializes OR Deintializes the WiFi Direct Display (MIRACAST) service.
6931 * @privilege http://tizen.org/privilege/wifidirect
6932 * @param[in] enable Enables/Disables Service based on the value TRUE/FALSE
6933 * @return @c 0 on success,
6934 * otherwise a negative error value
6935 * @retval #WIFI_DIRECT_ERROR_NONE Successful
6936 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
6937 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
6938 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
6939 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
6940 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
6941 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
6942 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
6943 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
6944 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
6945 * @see wifi_direct_activate()
6948 * Here is an example of the usage:
6950 * #include <stdio.h>
6951 * #include <wifi_direct.h>
6954 * int function(void)
6958 * ret = wifi_direct_init_miracast(true);
6960 * if (ret != WIFI_DIRECT_ERROR_NONE) {
6961 * printf("Failed to init miracast\n");
6965 * printf("init miracast success\n");
6971 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
6972 * wifi_direct_activated(); // Activate Wi-Fi Direct
6978 * // App must cleaup Wi-Fi Direct before exiting
6980 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
6981 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
6986 int wifi_direct_init_miracast(bool enable);
6990 * @brief Gets the information of a discovered peer.
6993 * @privilege http://tizen.org/privilege/wifidirect
6994 * @param[in] mac_address The MAC address of peer to get
6995 * @param[out] peer_info The peer information to be passed
6996 * @return @c 0 on success,
6997 * otherwise a negative error value
6998 * @retval #WIFI_DIRECT_ERROR_NONE Successful
6999 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
7000 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
7001 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7002 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7003 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7004 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
7005 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7006 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7007 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
7008 * @see wifi_direct_activate()
7009 * @see wifi_direct_foreach_discovered_peers()
7012 * Here is an example of the usage:
7014 * #include <stdio.h>
7015 * #include <wifi_direct.h>
7018 * int function(void)
7021 * char mac[19] = {0, };
7022 * wifi_direct_discovered_peer_info_s *peer_info;
7024 * printf("Input peer MAC address\n");
7025 * read(stdin, mac, 18);
7027 * ret = wifi_direct_get_peer_info(mac, &peer_info);
7029 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7030 * printf("Failed to get peer info\n");
7034 * printf("get peer info success\n");
7040 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7041 * wifi_direct_activated(); // Activate Wi-Fi Direct
7047 * // App must cleaup Wi-Fi Direct before exiting
7049 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
7050 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
7055 int wifi_direct_get_peer_info(char *mac_address, wifi_direct_discovered_peer_info_s **peer_info);
7059 * @brief Enables Wi-Fi Display (WFD) functionality and initialize the various variables required for WFD.
7060 * @details Starts listening in only assigned channel. Device will be discoverable
7061 * only in assigned listen channel.
7064 * @privilege http://tizen.org/privilege/wifidirect
7065 * @return @c 0 on success,
7066 * otherwise a negative error value
7067 * @retval #WIFI_DIRECT_ERROR_NONE Successful
7068 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
7069 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
7070 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7071 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7072 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7073 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
7074 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7075 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7076 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate()
7077 * @see wifi_direct_activate()
7078 * @see wifi_direct_deinit_display()
7079 * @see wifi_direct_set_display()
7082 * Here is an example of the usage:
7084 * #include <stdio.h>
7085 * #include <wifi_direct.h>
7088 * int function(void)
7092 * ret = wifi_direct_init_display();
7094 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7095 * printf("Failed to init display\n");
7099 * printf("init display success\n");
7105 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7106 * wifi_direct_activated(); // Activate Wi-Fi Direct
7112 * // App must cleaup Wi-Fi Direct before exiting
7114 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
7115 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
7120 int wifi_direct_init_display(void);
7124 * @brief This API shall disable Wi-Fi Display functionality & disable the support of WFD Information Element (IE).
7127 * @privilege http://tizen.org/privilege/wifidirect
7128 * @return @c 0 on success,
7129 * otherwise a negative error value
7130 * @retval #WIFI_DIRECT_ERROR_NONE Successful
7131 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
7132 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
7133 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7134 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7135 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7136 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
7137 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7138 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7139 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate()
7140 * and enable Wi-Fi Display by wifi_direct_init_display().
7141 * @see wifi_direct_activate()
7142 * @see wifi_direct_init_display()
7143 * @see wifi_direct_set_display()
7146 * Here is an example of the usage:
7148 * #include <stdio.h>
7149 * #include <wifi_direct.h>
7152 * int function(void)
7156 * wifi_direct_init_display();
7158 * ret = wifi_direct_deinit_display();
7160 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7161 * printf("Failed to deinit display\n");
7165 * printf("deinit display success\n");
7171 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7172 * wifi_direct_activated(); // Activate Wi-Fi Direct
7178 * // App must cleaup Wi-Fi Direct before exiting
7180 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
7181 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
7186 int wifi_direct_deinit_display(void);
7190 * @brief Sets the Wi-Fi Display parameters for the WFD IE of local device.
7193 * @privilege http://tizen.org/privilege/wifidirect
7194 * @param[in] type WFD Device Type: define the Role of WFD device like source or sink
7195 * @param[in] port Specifies Session Management Control Port number. It should be 2 bytes (0~65535)
7196 * @param[in] hdcp CP support bit: (@c 1 = enable the hdcp support, @c 0 = disable the hdcp support)
7197 * @return @c 0 on success,
7198 * otherwise a negative error value
7199 * @retval #WIFI_DIRECT_ERROR_NONE Successful
7200 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
7201 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
7202 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7203 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7204 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7205 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7206 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7207 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate()
7208 * and enable Wi-Fi Display by wifi_direct_init_display().
7209 * @see wifi_direct_activate()
7210 * @see wifi_direct_init_display()
7211 * @see wifi_direct_deinit_display()
7214 * Here is an example of the usage:
7216 * #include <stdio.h>
7217 * #include <wifi_direct.h>
7220 * int function(void)
7224 * ret = wifi_direct_set_display(WIFI_DIRECT_DISPLAY_SOURCE, 7236, 1);
7226 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7227 * printf("Failed to set display property\n");
7231 * printf("set display param success\n");
7237 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7238 * wifi_direct_activated(); // Activate Wi-Fi Direct
7244 * // App must cleaup Wi-Fi Direct before exiting
7246 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
7247 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
7252 int wifi_direct_set_display(wifi_direct_display_type_e type, int port, int hdcp);
7256 * @brief Sets the Wi-Fi Display Session Availability.
7259 * @privilege http://tizen.org/privilege/wifidirect
7260 * @param[in] availability Wi-Fi Display Session Availability
7261 * @return @c 0 on success,
7262 * otherwise a negative error value
7263 * @retval #WIFI_DIRECT_ERROR_NONE Successful
7264 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
7265 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
7266 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7267 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7268 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7269 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7270 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7271 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate()
7272 * and enable Wi-Fi Display by wifi_direct_display_init().
7273 * @see wifi_direct_activate()
7274 * @see wifi_direct_init_display()
7275 * @see wifi_direct_deinit_display()
7278 * Here is an example of the usage:
7280 * #include <stdio.h>
7281 * #include <wifi_direct.h>
7284 * int function(void)
7289 * printf("Input the Wi-FI Display availability\n");
7290 * scanf("%1d", &availability);
7292 * ret = wifi_direct_set_display_availability(availability);
7294 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7295 * printf("Failed to set display availability\n");
7299 * printf("set display availability success\n");
7305 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7306 * wifi_direct_activated(); // Activate Wi-Fi Direct
7312 * // App must cleaup Wi-Fi Direct before exiting
7314 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
7315 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
7320 int wifi_direct_set_display_availability(bool availability);
7324 * @brief Gets the information of a peer's Wi-Fi Display device type.
7327 * @privilege http://tizen.org/privilege/wifidirect
7328 * @param[in] mac_address MAC Address of the PEER
7329 * @param[out] type The information of a peer's Wi-Fi Display device type
7330 * if there's Wi-Fi Direct information, this will be NULL
7331 * @return @c 0 on success,
7332 * otherwise a negative error value
7333 * @retval #WIFI_DIRECT_ERROR_NONE Successful
7334 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
7335 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
7336 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7337 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7338 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7339 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7340 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7341 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
7342 * @see wifi_direct_activate()
7343 * @see wifi_direct_foreach_discovered_peers()
7346 * Here is an example of the usage:
7348 * #include <stdio.h>
7349 * #include <wifi_direct.h>
7352 * int function(void)
7356 * wifi_direct_display_type_e type;
7358 * printf("Input the peer mac\n");
7359 * scanf("%18ms", &mac);
7361 * ret = wifi_direct_get_peer_display_type(mac, &type);
7363 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7364 * printf("Failed to get peer display type\n");
7368 * printf("peer display type = %d\n", type);
7375 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7376 * wifi_direct_activated(); // Activate Wi-Fi Direct
7382 * // App must cleaup Wi-Fi Direct before exiting
7384 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
7385 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
7390 int wifi_direct_get_peer_display_type(char *mac_address, wifi_direct_display_type_e *type);
7394 * @brief Gets the information of a peer's Wi-Fi Display session availability.
7397 * @privilege http://tizen.org/privilege/wifidirect
7398 * @param[in] mac_address MAC Address of the PEER
7399 * @param[out] availability The information of a peer's Wi-Fi Display session availability
7400 * if there's Wi-Fi Direct information, this will be NULL
7401 * @return @c 0 on success,
7402 * otherwise a negative error value
7403 * @retval #WIFI_DIRECT_ERROR_NONE Successful
7404 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
7405 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
7406 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7407 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7408 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7409 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7410 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7411 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
7412 * @see wifi_direct_activate()
7413 * @see wifi_direct_foreach_discovered_peers()
7416 * Here is an example of the usage:
7418 * #include <stdio.h>
7419 * #include <wifi_direct.h>
7422 * int function(void)
7425 * bool avialability;
7428 * printf("Input the peer mac\n");
7429 * scanf("%18ms", &mac);
7431 * ret = wifi_direct_get_peer_display_availability(mac, &availability);
7433 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7434 * printf("Failed to get peer display availability\n");
7438 * printf("peer display avialability = %s\n", availability?"yes":"no");
7445 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7446 * wifi_direct_activated(); // Activate Wi-Fi Direct
7452 * // App must cleaup Wi-Fi Direct before exiting
7454 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
7455 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
7460 int wifi_direct_get_peer_display_availability(char *mac_address, bool *availability);
7464 * @brief Gets the information of a peer's Wi-Fi Display HDCP support.
7467 * @privilege http://tizen.org/privilege/wifidirect
7468 * @param[in] mac_address MAC Address of the PEER
7469 * @param[out] hdcp The information of a peer's Wi-Fi Display HDCP support
7470 * if there's Wi-Fi Direct information, this will be NULL
7471 * @return @c 0 on success,
7472 * otherwise a negative error value
7473 * @retval #WIFI_DIRECT_ERROR_NONE Successful
7474 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
7475 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
7476 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7477 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7478 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7479 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7480 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7481 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
7482 * @see wifi_direct_activate()
7483 * @see wifi_direct_foreach_discovered_peers()
7486 * Here is an example of the usage:
7488 * #include <stdio.h>
7489 * #include <wifi_direct.h>
7492 * int function(void)
7498 * printf("Input the peer mac\n");
7499 * scanf("%18ms", &mac);
7501 * ret = wifi_direct_get_peer_display_hdcp(mac, &hdcp);
7503 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7504 * printf("Failed to get peer display hdcp\n");
7508 * printf("peer display hdcp = %d\n", hdcp);
7515 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7516 * wifi_direct_activated(); // Activate Wi-Fi Direct
7522 * // App must cleaup Wi-Fi Direct before exiting
7524 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
7525 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
7530 int wifi_direct_get_peer_display_hdcp(char *mac_address, int *hdcp);
7534 * @brief Gets the information of a peer's Wi-Fi Display RTSP control port.
7537 * @privilege http://tizen.org/privilege/wifidirect
7538 * @param[in] mac_address MAC Address of the PEER
7539 * @param[out] port The information of a peer's Wi-Fi Display RTSP control port
7540 * if there's Wi-Fi Direct information, this will be NULL
7541 * @return @c 0 on success,
7542 * otherwise a negative error value
7543 * @retval #WIFI_DIRECT_ERROR_NONE Successful
7544 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
7545 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
7546 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7547 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7548 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7549 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7550 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7551 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
7552 * @see wifi_direct_activate()
7553 * @see wifi_direct_foreach_discovered_peers()
7556 * Here is an example of the usage:
7558 * #include <stdio.h>
7559 * #include <wifi_direct.h>
7562 * int function(void)
7568 * printf("Input the peer mac\n");
7569 * scanf("%18ms", &mac);
7571 * ret = wifi_direct_get_peer_display_port(mac, &port);
7573 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7574 * printf("Failed to get peer display port\n");
7578 * printf("peer display port = %d\n", port);
7585 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7586 * wifi_direct_activated(); // Activate Wi-Fi Direct
7592 * // App must cleaup Wi-Fi Direct before exiting
7594 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
7595 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
7600 int wifi_direct_get_peer_display_port(char *mac_address, int *port);
7604 * @brief Gets the information of a peer's Wi-Fi Display max throughput.
7607 * @privilege http://tizen.org/privilege/wifidirect
7608 * @param[in] mac_address MAC Address of the PEER
7609 * @param[out] throughput The information of a peer's Wi-Fi Display max throughput (Mbps)
7610 * if there's Wi-Fi Direct information, this will be NULL
7611 * @return @c 0 on success,
7612 * otherwise a negative error value
7613 * @retval #WIFI_DIRECT_ERROR_NONE Successful
7614 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
7615 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
7616 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7617 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7618 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7619 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7620 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7621 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
7622 * @see wifi_direct_activate()
7623 * @see wifi_direct_foreach_discovered_peers()
7626 * Here is an example of the usage:
7628 * #include <stdio.h>
7629 * #include <wifi_direct.h>
7632 * int function(void)
7638 * printf("Input the peer mac\n");
7639 * scanf("%18ms", &mac);
7641 * ret = wifi_direct_get_peer_display_throughput(mac, &tput);
7643 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7644 * printf("Failed to get peer display throughput\n");
7648 * printf("peer display throughtput = %d\n", tput);
7655 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7656 * wifi_direct_activated(); // Activate Wi-Fi Direct
7662 * // App must cleaup Wi-Fi Direct before exiting
7664 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
7665 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
7670 int wifi_direct_get_peer_display_throughput(char *mac_address, int *throughput);
7674 * @brief Enables / Disables automatic group removal feature when all peers are disconnected.
7677 * @privilege http://tizen.org/privilege/wifidirect
7678 * @param[in] enable Enables/Disables Group Removal feature based on the value TRUE/FALSE
7679 * @return @c 0 on success,
7680 * otherwise a negative error value
7681 * @retval #WIFI_DIRECT_ERROR_NONE Successful
7682 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7683 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7684 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7685 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
7686 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7687 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7688 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
7689 * @post wifi_direct_connection_state_changed_cb() will be invoked with
7690 * WIFI_DIRECT_GROUP_DESTROYED when there's no connected Group Client
7691 * if device is Group Owner and this feature is enabled.
7692 * @see wifi_direct_activate()
7693 * @see wifi_direct_create_group()
7694 * @see wifi_direct_connection_state_changed_cb()
7697 * Here is an example of the usage:
7699 * #include <stdio.h>
7700 * #include <wifi_direct.h>
7703 * int function(void)
7707 * ret = wifi_direct_set_auto_group_removal(true); // Enable auto group removal
7709 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7710 * printf("Failed to set auto group removal\n");
7714 * printf("set auto group removal success\n");
7720 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7721 * wifi_direct_activated(); // Activate Wi-Fi Direct
7727 * // App must cleaup Wi-Fi Direct before exiting
7729 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
7730 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
7735 int wifi_direct_set_auto_group_removal(bool enable);
7739 * @brief Sets the timer which is used to expire the connection session.
7742 * @privilege http://tizen.org/privilege/wifidirect
7743 * @param[in] seconds Set the connection session timer value in seconds
7744 * @return @c 0 on success,
7745 * otherwise a negative error value
7746 * @retval #WIFI_DIRECT_ERROR_NONE Successful
7747 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
7748 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
7749 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7750 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7751 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7752 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7753 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7754 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
7755 * @see wifi_direct_activate()
7758 * Here is an example of the usage:
7760 * #include <stdio.h>
7761 * #include <wifi_direct.h>
7764 * int function(void)
7767 * int session_timeout;
7769 * printf("Input the time for session timer\n");
7770 * scanf("%2d", &session_timeout);
7772 * ret = wifi_direct_set_session_timer(session_timeout); // set session timer
7774 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7775 * printf("Failed to set session timer\n");
7779 * printf("set session timer success\n");
7785 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7786 * wifi_direct_activated(); // Activate Wi-Fi Direct
7792 * // App must cleaup Wi-Fi Direct before exiting
7794 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
7795 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
7800 int wifi_direct_set_session_timer(int seconds);
7804 * @brief Gets the timer which is used to expire the connection session.
7807 * @privilege http://tizen.org/privilege/wifidirect
7808 * @param[out] seconds Connection session timer value
7809 * @return @c 0 on success,
7810 * otherwise a negative error value
7811 * @retval #WIFI_DIRECT_ERROR_NONE Successful
7812 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
7813 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
7814 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7815 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7816 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7817 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7818 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7819 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
7820 * @see wifi_direct_activate()
7823 * Here is an example of the usage:
7825 * #include <stdio.h>
7826 * #include <wifi_direct.h>
7829 * int function(void)
7832 * int session_timeout;
7834 * ret = wifi_direct_get_session_timer(&session_timeout); // get session timer
7836 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7837 * printf("Failed to get session timer\n");
7841 * printf("session timer = %d\n", session_timeout);
7847 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7848 * wifi_direct_activated(); // Activate Wi-Fi Direct
7854 * // App must cleaup Wi-Fi Direct before exiting
7856 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
7857 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
7862 int wifi_direct_get_session_timer(int *seconds);
7866 * @brief Gets the information of a peer's RSSI value.
7869 * @privilege http://tizen.org/privilege/wifidirect
7870 * @param[in] mac_address MAC Address of the peer device
7871 * @param[out] rssi RSSI value of the peer device
7872 * @return @c 0 on success,
7873 * otherwise a negative error value
7874 * @retval #WIFI_DIRECT_ERROR_NONE Successful
7875 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
7876 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
7877 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7878 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7879 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7880 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
7881 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7882 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7883 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
7884 * @see wifi_direct_activate()
7887 * Here is an example of the usage:
7889 * #include <stdio.h>
7890 * #include <wifi_direct.h>
7893 * int function(void)
7899 * printf("Input the peer mac\n");
7900 * scanf("%18ms", &mac);
7902 * ret = wifi_direct_get_peer_rssi(mac, &rssi); // get peer rssi
7904 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7905 * printf("Failed to get peer rssi\n");
7909 * printf("peer rssi = %d\n", rssi);
7916 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7917 * wifi_direct_activated(); // Activate Wi-Fi Direct
7923 * // App must cleaup Wi-Fi Direct before exiting
7925 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
7926 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
7931 int wifi_direct_get_peer_rssi(char *mac_address, int *rssi);
7935 * @brief Adds the Wi-Fi Vendor Specific Information Element (VSIE) to specific frame type.
7938 * @privilege http://tizen.org/privilege/wifidirect
7939 * @remarks @a vsie_str for @a frame_id will be in effect until Wi-Fi Direct is deactivated.
7940 * @param[in] frame_id frame ID for setting VSIE
7941 * @param[in] vsie_str VSIE data
7942 * @return @c 0 on success,
7943 * otherwise a negative error value
7944 * @retval #WIFI_DIRECT_ERROR_NONE Successful
7945 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
7946 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
7947 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
7948 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
7949 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
7950 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
7951 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
7952 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
7953 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
7954 * @see wifi_direct_activate()
7955 * @see wifi_direct_remove_vsie()
7956 * @see wifi_direct_get_vsie()
7959 * Here is an example of the usage:
7961 * #include <stdio.h>
7962 * #include <wifi_direct.h>
7965 * int function(void)
7968 * char *vsie = NULL;
7969 * unsigned int frame_id;
7971 * printf("Input the frame id\n");
7972 * scanf("%2u", &frame_id);
7974 * printf("Input the vsie\n");
7975 * scanf("%100ms", &vsie);
7977 * ret = wifi_direct_add_vsie(frame_id, vsie); // add vsie
7979 * if (ret != WIFI_DIRECT_ERROR_NONE) {
7980 * printf("Failed to add vsie\n");
7984 * printf("vsie added success");
7991 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
7992 * wifi_direct_activated(); // Activate Wi-Fi Direct
7998 * // App must cleaup Wi-Fi Direct before exiting
8000 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
8001 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
8006 int wifi_direct_add_vsie(wifi_direct_vsie_frames_e frame_id, const char *vsie_str);
8010 * @brief Gets the Wi-Fi Vendor Specific Information Elements (VSIE) from specific frame.
8013 * @privilege http://tizen.org/privilege/wifidirect
8014 * @remarks @a vsie_str must be released with free().
8015 * @param[in] frame_id frame ID for setting VSIE
8016 * @param[out] vsie_str VSIE data
8017 * @return @c 0 on success,
8018 * otherwise a negative error value
8019 * @retval #WIFI_DIRECT_ERROR_NONE Successful
8020 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
8021 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
8022 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
8023 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
8024 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
8025 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
8026 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
8027 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
8028 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate()
8029 * and set VSIE for specific frame by wifi_direct_add_vsie().
8030 * @see wifi_direct_activate()
8031 * @see wifi_direct_add_vsie()
8032 * @see wifi_direct_remove_vsie()
8035 * Here is an example of the usage:
8037 * #include <stdio.h>
8038 * #include <wifi_direct.h>
8041 * int function(void)
8044 * char *vsie = NULL;
8045 * unsigned int frame_id;
8047 * printf("Input the frame id\n");
8048 * scanf("%2u", &frame_id);
8050 * ret = wifi_direct_get_vsie(frame_id, &vsie); // get vsie
8052 * if (ret != WIFI_DIRECT_ERROR_NONE) {
8053 * printf("Failed to get vsie\n");
8057 * printf("vsie = %s\n", vsie);
8064 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
8065 * wifi_direct_activated(); // Activate Wi-Fi Direct
8071 * // App must cleaup Wi-Fi Direct before exiting
8073 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
8074 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
8079 int wifi_direct_get_vsie(wifi_direct_vsie_frames_e frame_id, char **vsie_str);
8083 * @brief Removes the Wi-Fi Vendor Specific Information Element (VSIE) from specific frame.
8086 * @privilege http://tizen.org/privilege/wifidirect
8087 * @remarks @a vsie_str for @a frame_id will be in effect until Wi-Fi Direct is deactivated.
8088 * @param[in] frame_id frame ID for removing VSIE
8089 * @param[in] vsie_str VSIE data
8090 * @return @c 0 on success,
8091 * otherwise a negative error value
8092 * @retval #WIFI_DIRECT_ERROR_NONE Successful
8093 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
8094 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
8095 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
8096 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
8097 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
8098 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
8099 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
8100 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
8101 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate()
8102 * and set VSIE for specific frame by wifi_direct_add_vsie().
8103 * @see wifi_direct_activate()
8104 * @see wifi_direct_add_vsie()
8105 * @see wifi_direct_get_vsie()
8108 * Here is an example of the usage:
8110 * #include <stdio.h>
8111 * #include <wifi_direct.h>
8114 * int function(void)
8117 * char *vsie = NULL;
8118 * unsigned int frame_id;
8120 * printf("Input the frame id\n");
8121 * scanf("%2u", &frame_id);
8123 * printf("Input the vsie\n");
8124 * scanf("%100ms", &vsie);
8126 * ret = wifi_direct_remove_vsie(frame_id, vsie); // remove vsie
8128 * if (ret != WIFI_DIRECT_ERROR_NONE) {
8129 * printf("Failed to remove vsie\n");
8133 * printf("vsie removed success\n");
8140 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
8141 * wifi_direct_activated(); // Activate Wi-Fi Direct
8147 * // App must cleaup Wi-Fi Direct before exiting
8149 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
8150 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
8155 int wifi_direct_remove_vsie(wifi_direct_vsie_frames_e frame_id, const char *vsie_str);
8159 * @brief Gets the information of peer devices which is in the connecting state.
8162 * @privilege http://tizen.org/privilege/wifidirect
8163 * @remarks @a peer_info must be released with free().
8164 * @param[out] peer_info connecting peer device data
8165 * @return @c 0 on success,
8166 * otherwise a negative error value
8167 * @retval #WIFI_DIRECT_ERROR_NONE Successful
8168 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
8169 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
8170 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
8171 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
8172 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
8173 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
8174 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
8175 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
8176 * @pre Wi-Fi Direct service must be connecting state by wifi_direct_connect()
8177 * or by receiving connection request from p2p peer device.
8178 * @see wifi_direct_activate()
8179 * @see wifi_direct_connect()
8182 * Here is an example of the usage:
8184 * #include <stdio.h>
8185 * #include <wifi_direct.h>
8188 * bool device_selected = false;
8190 * void peers_cb(wifi_direct_discovered_peer_info_s* peer,
8193 * if (peer && !device_selected) {
8194 * printf("peer device=%s MAC=%s\n", peer->device_name, peer->mac_address);
8196 * device_selected = true;
8198 * wifi_direct_connect(peer->mac_address); // Connect to the first discovered peer
8202 * int function(void)
8205 * wifi_direct_discovered_peer_info_s *peer = NULL;
8207 * ret = wifi_direct_get_connecting_peer_info(&peer);
8209 * if (ret != WIFI_DIRECT_ERROR_NONE) {
8210 * printf("Failed to get connecting peer info\n");
8214 * printf("peer device name (%s) mac (%s)\n", peer->device_name,
8215 * peer->mac_address);
8219 * void callback_2(int error_code,
8220 * wifi_direct_connection_state_e state,
8221 * const char *mac, void *user_data)
8224 * case WIFI_DIRECT_CONNECTION_IN_PROGRESS:
8225 * printf("Connection in progress\n");
8227 * function(); // get the connecting peer info
8231 * case WIFI_DIRECT_CONNECTON_RSP:
8232 * printf("Connected\n");
8235 * case WIFI_DIRECT_DISCONNECTION_IND:
8236 * printf("Disconnection IND\n");
8239 * case WIFI_DIRECT_DISCONNECTION_RSP;
8240 * printf("Disconnected\n");
8245 * void callback_1(int error_code,
8246 * wifi_direct_discovery_state_e discovery_state,
8249 * switch(discovery_state) {
8250 * case WIFI_DIRECT_DISCOVERY_STARTED:
8251 * printf("Discovery started\n");
8254 * case WIFI_DIRECT_ONLY_LISTEN_STARTED:
8255 * printf("listen started\n");
8258 * case WIFI_DIRECT_DISCOVERY_FINISHED:
8259 * printf("Discovery finished\n");
8261 * wifi_direct_foreach_discovered_peers(peers_cb,
8262 * NULL); // Get discovered peer
8265 * case WIFI_DIRECT_DISCOVERY_FOUND:
8266 * printf("peer devices found\n");
8269 * case WIFI_DIRECT_DISCOVERY_LOST:
8270 * printf("Discovery lost\n");
8280 * wifi_direct_initialize(); // Initialize Wi-Fi Direct
8281 * wifi_direct_set_discovery_state_changed_cb(callback_1, NULL); // Register callback 1
8282 * wifi_direct_set_connection_state_changed_cb(callback_2, NULL); // Register callback 2
8284 * wifi_direct_activated(); // Activate Wi-Fi Direct
8285 * wifi_direct_start_discovery(TRUE, 15); // Start discovery
8289 * // App must cleaup Wi-Fi Direct before exiting
8291 * wifi_direct_deactivate(); // Deactivate Wi-Fi Direct
8292 * wifi_direct_unset_discovery_state_changed_cb(); // Deregister callback
8293 * wifi_direct_deinitialize(); // Deinitialize Wi-Fi Direct
8298 int wifi_direct_get_connecting_peer_info(wifi_direct_discovered_peer_info_s **peer_info);
8301 * @brief Gets the vendor specific information element (VSIE) of a peer.
8304 * @privilege http://tizen.org/privilege/wifidirect
8305 * @remarks @a vsie must be released with free().
8306 * @param[in] mac_address MAC Address of the PEER
8307 * @param[out] vsie The vendor specific information element (VSIE) of peer
8308 * if Wi-Fi Direct information is available, else it will be NULL.
8309 * @return @c 0 on success,
8310 * otherwise a negative error value
8311 * @retval #WIFI_DIRECT_ERROR_NONE Successful
8312 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
8313 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
8314 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
8315 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
8316 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
8317 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
8318 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
8319 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
8320 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
8321 * @see wifi_direct_activate()
8322 * @see wifi_direct_foreach_discovered_peers()
8324 int wifi_direct_get_peer_vsie(char *mac_address, char **vsie);
8327 * @brief Sets the advertizing WPS (Wi-Fi Protected Setup) type.
8330 * @privilege http://tizen.org/privilege/wifidirect
8331 * @param[in] type The type of WPS. composition of #wifi_direct_config_method_type_e
8332 * for example #WIFI_DIRECT_CONFIG_METHOD_PBC|#WIFI_DIRECT_CONFIG_METHOD_PIN_DISPLAY
8333 * Use #WIFI_DIRECT_CONFIG_METHOD_DEFAULT to reset to default value
8334 * @return 0 on success, otherwise a negative error value
8335 * @retval #WIFI_DIRECT_ERROR_NONE Successful
8336 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
8337 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
8338 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
8339 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
8340 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
8341 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
8342 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
8343 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
8344 * @pre Wi-Fi Direct service must be initialized by wifi_direct_activate().
8345 * @see wifi_direct_initialize()
8347 int wifi_direct_set_wps_config_method(int type);
8350 * @brief Gets the advertizing WPS (Wi-Fi Protected Setup) type.
8353 * @privilege http://tizen.org/privilege/wifidirect
8354 * @param[out] type The type of WPS. composition of #wifi_direct_config_method_type_e
8355 * @return 0 on success, otherwise a negative error value
8356 * @retval #WIFI_DIRECT_ERROR_NONE Successful
8357 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
8358 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
8359 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
8360 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
8361 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
8362 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
8363 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
8364 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
8365 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
8366 * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
8367 * @see wifi_direct_initialize()
8369 int wifi_direct_get_wps_config_method(int *type);
8372 * @brief Removes a persistent device.
8375 * @privilege http://tizen.org/privilege/wifidirect
8376 * @param[in] mac_address The MAC address of the persistent group owner
8377 * @return 0 on success, otherwise a negative error value
8378 * @retval #WIFI_DIRECT_ERROR_NONE Successful
8379 * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
8380 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
8381 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
8382 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
8383 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
8384 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
8385 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
8386 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
8387 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
8388 * @see wifi_direct_initialize()
8390 int wifi_direct_remove_persistent_device(char *mac_address);
8393 * @brief Removes all persistent devices.
8396 * @privilege http://tizen.org/privilege/wifidirect
8397 * @return 0 on success, otherwise a negative error value
8398 * @retval #WIFI_DIRECT_ERROR_NONE Successful
8399 * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
8400 * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
8401 * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
8402 * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
8403 * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
8404 * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
8405 * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
8406 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
8407 * @see wifi_direct_initialize()
8409 int wifi_direct_remove_all_persistent_devices(void);
8418 #endif /* __TIZEN_NET_WIFI_DIRECT_H__ */