From: Yu Jiung Date: Fri, 7 Apr 2017 10:22:15 +0000 (+0900) Subject: Add CAPIs to control VSIE, set freq. for scan and get connecting peers X-Git-Tag: accepted/tizen/unified/20170428.032837~1^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=13ff25399f32ccea8ed5924122a35e919f53e902;p=platform%2Fcore%2Fapi%2Fwifi-direct.git Add CAPIs to control VSIE, set freq. for scan and get connecting peers Change-Id: I353369f53620c2b5c4721f8cb265cdbcd26118a3 Signed-off-by: Yu jiung --- diff --git a/include/wifi-direct.h b/include/wifi-direct.h index fabeba3..bd525d8 100755 --- a/include/wifi-direct.h +++ b/include/wifi-direct.h @@ -38,24 +38,24 @@ extern "C" { * @since_tizen 2.3 */ typedef enum { - WIFI_DIRECT_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */ - WIFI_DIRECT_ERROR_NOT_PERMITTED = TIZEN_ERROR_NOT_PERMITTED, /**< Operation not permitted(1) */ - WIFI_DIRECT_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory(12) */ - WIFI_DIRECT_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied(13) */ - WIFI_DIRECT_ERROR_RESOURCE_BUSY = TIZEN_ERROR_RESOURCE_BUSY, /**< Device or resource busy(16) */ - WIFI_DIRECT_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid function parameter(22) */ - WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT = TIZEN_ERROR_CONNECTION_TIME_OUT, /**< Connection timed out(110) */ - WIFI_DIRECT_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported */ - WIFI_DIRECT_ERROR_NOT_INITIALIZED = TIZEN_ERROR_WIFI_DIRECT|0x01, /**< Not initialized */ - WIFI_DIRECT_ERROR_COMMUNICATION_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x02, /**< I/O error */ - WIFI_DIRECT_ERROR_WIFI_USED = TIZEN_ERROR_WIFI_DIRECT|0x03, /**< WiFi is being used */ - WIFI_DIRECT_ERROR_MOBILE_AP_USED = TIZEN_ERROR_WIFI_DIRECT|0x04, /**< Mobile AP is being used */ - WIFI_DIRECT_ERROR_CONNECTION_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x05, /**< Connection failed */ - WIFI_DIRECT_ERROR_AUTH_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x06, /**< Authentication failed */ - WIFI_DIRECT_ERROR_OPERATION_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x07, /**< Operation failed */ - WIFI_DIRECT_ERROR_TOO_MANY_CLIENT = TIZEN_ERROR_WIFI_DIRECT|0x08, /**< Too many client */ - WIFI_DIRECT_ERROR_ALREADY_INITIALIZED = TIZEN_ERROR_WIFI_DIRECT|0x09, /**< Already initialized client */ - WIFI_DIRECT_ERROR_CONNECTION_CANCELED = TIZEN_ERROR_WIFI_DIRECT|0x10, /**< Connection canceled by local device */ + WIFI_DIRECT_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */ + WIFI_DIRECT_ERROR_NOT_PERMITTED = TIZEN_ERROR_NOT_PERMITTED, /**< Operation not permitted(1) */ + WIFI_DIRECT_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory(12) */ + WIFI_DIRECT_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied(13) */ + WIFI_DIRECT_ERROR_RESOURCE_BUSY = TIZEN_ERROR_RESOURCE_BUSY, /**< Device or resource busy(16) */ + WIFI_DIRECT_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid function parameter(22) */ + WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT = TIZEN_ERROR_CONNECTION_TIME_OUT, /**< Connection timed out(110) */ + WIFI_DIRECT_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported */ + WIFI_DIRECT_ERROR_NOT_INITIALIZED = TIZEN_ERROR_WIFI_DIRECT|0x01, /**< Not initialized */ + WIFI_DIRECT_ERROR_COMMUNICATION_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x02, /**< I/O error */ + WIFI_DIRECT_ERROR_WIFI_USED = TIZEN_ERROR_WIFI_DIRECT|0x03, /**< WiFi is being used */ + WIFI_DIRECT_ERROR_MOBILE_AP_USED = TIZEN_ERROR_WIFI_DIRECT|0x04, /**< Mobile AP is being used */ + WIFI_DIRECT_ERROR_CONNECTION_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x05, /**< Connection failed */ + WIFI_DIRECT_ERROR_AUTH_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x06, /**< Authentication failed */ + WIFI_DIRECT_ERROR_OPERATION_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x07, /**< Operation failed */ + WIFI_DIRECT_ERROR_TOO_MANY_CLIENT = TIZEN_ERROR_WIFI_DIRECT|0x08, /**< Too many client */ + WIFI_DIRECT_ERROR_ALREADY_INITIALIZED = TIZEN_ERROR_WIFI_DIRECT|0x09, /**< Already initialized client */ + WIFI_DIRECT_ERROR_CONNECTION_CANCELED = TIZEN_ERROR_WIFI_DIRECT|0x10, /**< Connection canceled by local device */ } wifi_direct_error_e; @@ -277,6 +277,85 @@ typedef enum { WIFI_DIRECT_DISCOVERY_CHANNEL11 = 11, /**< Scan channel 11*/ } wifi_direct_discovery_channel_e; +/** + * @brief Enumeration for Wi-Fi Frame type. + * @since_tizen 4.0 + * @see wifi_direct_add_vsie() + * @see wifi_direct_remove_vsie() + * @see wifi_direct_get_vsie() + */ +typedef enum { + /** + * P2P probe request frame + */ + WIFI_DIRECT_VSIE_FRAME_P2P_PROBE_REQ, + + /** + * P2P probe response frame + */ + WIFI_DIRECT_VSIE_FRAME_P2P_PROBE_RESP, + + /** + * P2P group owner probe response frame + */ + WIFI_DIRECT_VSIE_FRAME_P2P_GO_PROBE_RESP, + + /** + * P2P probe request frame + */ + WIFI_DIRECT_VSIE_FRAME_P2P_GO_BEACON, + + /** + * P2P provision discovery request frame + */ + WIFI_DIRECT_VSIE_FRAME_P2P_PD_REQ, + + /** + * P2P provision discovery response frame + */ + WIFI_DIRECT_VSIE_FRAME_P2P_PD_RESP, + + /** + * P2P probe request frame + */ + WIFI_DIRECT_VSIE_FRAME_P2P_GO_NEG_REQ, + + /** + * P2P group owner negotiation response frame + */ + WIFI_DIRECT_VSIE_FRAME_P2P_GO_NEG_RESP, + + /** + * P2P group owner negotiation confirmation frame + */ + WIFI_DIRECT_VSIE_FRAME_P2P_GO_NEG_CONF, + + /** + * P2P invitation request frame + */ + WIFI_DIRECT_VSIE_FRAME_P2P_INV_REQ, + + /** + * P2P invitation response frame + */ + WIFI_DIRECT_VSIE_FRAME_P2P_INV_RESP, + + /** + * P2P association request frame + */ + WIFI_DIRECT_VSIE_FRAME_P2P_ASSOC_REQ, + + /** + * P2P association response frame + */ + WIFI_DIRECT_VSIE_FRAME_P2P_ASSOC_RESP, + + /** + * Association request frame + */ + WIFI_DIRECT_VSIE_FRAME_ASSOC_REQ, +} wifi_direct_vsie_frames_e; + /** * @brief Wi-Fi Direct buffer structure to store result of peer discovery. @@ -772,23 +851,36 @@ int wifi_direct_deactivate(void); /** * @brief Starts discovery to find all P2P capable devices, asynchronously. * @details If application developers call wifi_direct_start_discovery() with @a listen_only as @c true, - * then skip the initial 802.11 Scan and then enter Listen state instead of cycling between Scan and Listen. - * @since_tizen 2.3 - * @privlevel public - * @privilege http://tizen.org/privilege/wifidirect - * @param[in] listen_only The status of listen only: (@c true = listen only, @c false = cycling between Scan and Listen) - * @param[in] timeout Specifies the duration of discovery period, in seconds (if 0, a default value will be used) - * @return @c 0 on success, - * otherwise a negative error value - * @retval #WIFI_DIRECT_ERROR_NONE Successful - * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed - * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed - * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied - * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted - * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported - * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized - * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy + * then skip the initial 802.11 Scan and then enter Listen state instead of + * cycling between Scan and Listen. + * @since_tizen 2.3 + * @privlevel public + * @privilege http://tizen.org/privilege/wifidirect + * @remarks The function can be called if the Wi-Fi Direct state is one of:\n + * #WIFI_DIRECT_STATE_ACTIVATED\n + * #WIFI_DIRECT_STATE_DISCOVERING\n + * #WIFI_DIRECT_STATE_GROUP_OWNER\n + * The function can be called even if there is another discovery in progress. + * All started processes will run simultaneously. Each process will receive + * #WIFI_DIRECT_DISCOVERY_FINISHED + * event in wifi_direct_discovery_state_chagned_cb(). + * @param[in] listen_only The status of listen only: (@c true = listen only, + * @c false = cycling between Scan and Listen) + * @param[in] timeout Specifies the duration of discovery period, in seconds. + * If @c 0, then there is no limit on how long the discovery takes. + * The actual limit (and time after which discovery stops) depends on + * the vendor's hardware and firmware + * @return @c 0 on success, + * otherwise a negative error value + * @retval #WIFI_DIRECT_ERROR_NONE Successful + * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed + * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed + * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied + * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted + * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported + * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized + * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy * @pre Wi-Fi Direct service must be activated by wifi_direct_activate(). * @post wifi_direct_discovery_state_chagned_cb() will be invoked. * @see wifi_direct_activate() @@ -813,20 +905,32 @@ int wifi_direct_start_discovery(bool listen_only, int timeout); * @since_tizen 2.3 * @privlevel public * @privilege http://tizen.org/privilege/wifidirect - * @param[in] listen_only The status of listen only: (@c true = listen only, @c false = cycling between Scan and Listen) - * @param[in] timeout Specifies the duration of discovery period, in seconds. If @c 0, a default value will be used - * @param[in] channel Specifies the discovery channel. (Full scan, social channels, channel 1, 6, 11) - * @return @c 0 on success, - * otherwise a negative error value - * @retval #WIFI_DIRECT_ERROR_NONE Successful - * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed - * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed - * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied - * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted - * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported - * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized - * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy + * @remarks The function can be called if the Wi-Fi Direct state is one of:\n + * #WIFI_DIRECT_STATE_ACTIVATED\n + * #WIFI_DIRECT_STATE_DISCOVERING\n + * #WIFI_DIRECT_STATE_GROUP_OWNER\n + * The function can be called even if there is another discovery in progress. + * All started processes will run simultaneously. Each process will receive + * #WIFI_DIRECT_DISCOVERY_FINISHED + * event in wifi_direct_discovery_state_chagned_cb(). + * @param[in] listen_only The status of listen only: (@c true = listen only, + * @c false = cycling between Scan and Listen) + * @param[in] timeout Specifies the duration of discovery period, in seconds. + * If @c 0, then there is no limit on how long the discovery takes. + * The actual limit (and time after which discovery stops) depends on + * the vendor's hardware and firmware + * @param[in] channel Specifies the discovery channel. (Full scan, social channels, channel 1, 6, 11) + * @return @c 0 on success, + * otherwise a negative error value + * @retval #WIFI_DIRECT_ERROR_NONE Successful + * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed + * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed + * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied + * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted + * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported + * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized + * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy * @pre Wi-Fi Direct service must be activated by wifi_direct_activate(). * @post wifi_direct_discovery_state_chagned_cb() will be invoked. * @see wifi_direct_activate() @@ -835,25 +939,69 @@ int wifi_direct_start_discovery(bool listen_only, int timeout); */ int wifi_direct_start_discovery_specific_channel(bool listen_only, int timeout, wifi_direct_discovery_channel_e channel); +/** + * @brief Starts discovery to find all P2P capable devices with specified frequency, asynchronously. + * @since_tizen 4.0 + * @privlevel public + * @privilege http://tizen.org/privilege/wifidirect + * @remarks The function can be called if the Wi-Fi Direct state is one of:\n + * #WIFI_DIRECT_STATE_ACTIVATED\n + * #WIFI_DIRECT_STATE_DISCOVERING\n + * #WIFI_DIRECT_STATE_GROUP_OWNER\n + * The function can be called even if there is another discovery in progress. + * All started processes will run simultaneously. Each process will receive + * #WIFI_DIRECT_DISCOVERY_FINISHED + * event in wifi_direct_discovery_state_chagned_cb(). + * @param[in] listen_only Indicates mode in which the discovery service will work. + * If @c true, the service will only listen, otherwise + * it will cycle between scanning and listening + * @param[in] timeout Specifies the duration of discovery period, in seconds. + * If @c 0, then there is no limit on how long the discovery takes. + * The actual limit (and time after which discovery stops) depends on + * the vendor's hardware and firmware + * @param[in] frequency Specifies the discovery frequency in MHz + * @return @c 0 on success, + * otherwise a negative error value + * @retval #WIFI_DIRECT_ERROR_NONE Successful + * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed + * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed + * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied + * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted + * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported + * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized + * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy + * @pre Wi-Fi Direct service must be activated by wifi_direct_activate(). + * @post wifi_direct_discovery_state_chagned_cb() will be invoked. + * @see wifi_direct_activate() + * @see wifi_direct_cancel_discovery() + * @see wifi_direct_discovery_state_chagned_cb() + * @see wifi_direct_discovered_peer_cb() + */ +int wifi_direct_start_discovery_specific_freq(bool listen_only, int timeout, int frequency); /** * @brief Cancels discovery process, asynchronously. + * @details This function stops all discovery processes started with + * wifi_direct_start_discovery... functions. * @since_tizen 2.3 * @privlevel public * @privilege http://tizen.org/privilege/wifidirect * @return @c 0 on success, * otherwise a negative error value - * @retval #WIFI_DIRECT_ERROR_NONE Successful - * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed - * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed - * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied - * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted - * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported - * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized - * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy + * @retval #WIFI_DIRECT_ERROR_NONE Successful + * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed + * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed + * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied + * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted + * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported + * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized + * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy * @pre Discovery must be started by wifi_direct_start_discovery(). * @post wifi_direct_discovery_state_chagned_cb() will be invoked. * @see wifi_direct_start_discovery() + * @see wifi_direct_start_discovery_specific_channel() + * @see wifi_direct_start_discovery_specific_freq() * @see wifi_direct_discovery_state_chagned_cb() */ int wifi_direct_cancel_discovery(void); @@ -2450,21 +2598,128 @@ int wifi_direct_get_session_timer(int *seconds); * @param[out] rssi RSSI value of the peer device * @return @c 0 on success, * otherwise a negative error value -* @retval #WIFI_DIRECT_ERROR_NONE Successful -* @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter -* @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed -* @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed -* @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied -* @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted -* @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported -* @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized -* @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy + * @retval #WIFI_DIRECT_ERROR_NONE Successful + * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed + * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed + * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied + * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted + * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported + * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized + * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize(). * @see wifi_direct_activate() */ int wifi_direct_get_peer_rssi(char *mac_address, int *rssi); /** + * @brief Adds the Wi-Fi Vendor Specific Information Element (VSIE) to specific frame type. + * @since_tizen 4.0 + * @privlevel public + * @privilege http://tizen.org/privilege/wifidirect + * @remarks @a vsie_str for @a frame_id will be in effect until Wi-Fi Direct is deactivated. + * @param[in] frame_id frame ID for setting VSIE + * @param[in] vsie_str VSIE data + * @return @c 0 on success, + * otherwise a negative error value + * @retval #WIFI_DIRECT_ERROR_NONE Successful + * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed + * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed + * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied + * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted + * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported + * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized + * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy + * @pre Wi-Fi Direct service must be activated by wifi_direct_activate(). + * @see wifi_direct_activate() + * @see wifi_direct_remove_vsie() + * @see wifi_direct_get_vsie() + */ +int wifi_direct_add_vsie(wifi_direct_vsie_frames_e frame_id, const char *vsie_str); + + +/** + * @brief Gets the Wi-Fi Vendor Specific Information Elements (VSIE) from specific frame. + * @since_tizen 4.0 + * @privlevel public + * @privilege http://tizen.org/privilege/wifidirect + * @remarks @a vsie_str must be released with free(). + * @param[in] frame_id frame ID for setting VSIE + * @param[out] vsie_str VSIE data + * @return @c 0 on success, + * otherwise a negative error value + * @retval #WIFI_DIRECT_ERROR_NONE Successful + * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed + * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed + * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied + * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted + * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported + * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized + * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy + * @pre Wi-Fi Direct service must be activated by wifi_direct_activate() + * and set VSIE for specific frame by wifi_direct_add_vsie(). + * @see wifi_direct_activate() + * @see wifi_direct_add_vsie() + * @see wifi_direct_remove_vsie() + */ +int wifi_direct_get_vsie(wifi_direct_vsie_frames_e frame_id, char **vsie_str); + + +/** + * @brief Removes the Wi-Fi Vendor Specific Information Element (VSIE) from specific frame. + * @since_tizen 4.0 + * @privlevel public + * @privilege http://tizen.org/privilege/wifidirect + * @remarks @a vsie_str for @a frame_id will be in effect until Wi-Fi Direct is deactivated. + * @param[in] frame_id frame ID for removing VSIE + * @param[in] vsie_str VSIE data + * @return @c 0 on success, + * otherwise a negative error value + * @retval #WIFI_DIRECT_ERROR_NONE Successful + * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed + * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed + * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied + * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted + * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported + * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized + * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy + * @pre Wi-Fi Direct service must be activated by wifi_direct_activate() + * and set VSIE for specific frame by wifi_direct_add_vsie(). + * @see wifi_direct_activate() + * @see wifi_direct_add_vsie() + * @see wifi_direct_get_vsie() + */ +int wifi_direct_remove_vsie(wifi_direct_vsie_frames_e frame_id, const char *vsie_str); + +/** + * @brief Gets the information of peer devices which is in the connecting state. + * @since_tizen 4.0 + * @privlevel public + * @privilege http://tizen.org/privilege/wifidirect + * @remarks @a peer_info must be released with free(). + * @param[out] peer_info connecting peer device data + * @return @c 0 on success, + * otherwise a negative error value + * @retval #WIFI_DIRECT_ERROR_NONE Successful + * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed + * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed + * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied + * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted + * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported + * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized + * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy + * @pre Wi-Fi Direct service must be connecting state by wifi_direct_connect() + * or by receiving connection request from p2p peer device. + * @see wifi_direct_activate() + * @see wifi_direct_connect() + */ +int wifi_direct_get_connecting_peer_info(wifi_direct_discovered_peer_info_s **peer_info); + +/** * @} */