2 * Network Configuration Module
4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
21 * This file declares wifi direct manager functions and structures.
23 * @file wifi-direct-manager.h
24 * @author Gibyoung Kim (lastkgb.kim@samsung.com)
28 #ifndef __WIFI_DIRECT_MANAGER_H__
29 #define __WIFI_DIRECT_MANAGER_H__
31 #define DEFAULT_DEVICE_NAME "Tizen_Device"
32 #define DEFAULT_IFNAME "p2p0"
33 #define GROUP_IFNAME "p2p-wlan0-0"
34 #define WFD_MAX_CLIENT 16
35 #define WFD_MAX_STATION 8
37 #define DEV_NAME_LEN 32
43 #define PASSPHRASE_LEN 8
44 #define QUERY_HANDLE_LIMIT 256
48 WFD_STATE_DEACTIVATED,
50 WFD_STATE_IDLE, // passive scaning
51 WFD_STATE_SCANNING, // active scanning
59 WFD_WPS_MODE_PBC = 0x1,
60 WFD_WPS_MODE_DISPLAY = 0x2,
61 WFD_WPS_MODE_KEYPAD = 0x4,
73 WFD_SCAN_MODE_PASSIVE,
77 wifi_direct_display_type_e type;
86 wifi_direct_service_type_e service_type;
89 int service_str_length;
95 unsigned char mac_addr[6];
96 wifi_direct_service_type_e service_type;
101 WFD_PEER_STATE_DISCOVERED,
102 WFD_PEER_STATE_CONNECTING,
103 WFD_PEER_STATE_CONNECTED,
110 char dev_name[DEV_NAME_LEN+1];
111 unsigned char dev_addr[MACADDR_LEN];
112 unsigned char intf_addr[MACADDR_LEN];
113 unsigned char go_dev_addr[MACADDR_LEN];
124 wfd_display_info_s *wifi_display;
126 unsigned char ip_addr[IPADDR_LEN];
130 GMainLoop *main_loop;
133 unsigned int client_handle; // for accept clients
135 unsigned int client_count;
138 unsigned int exit_timer;
148 unsigned int peer_count;
154 GList *query_handles;
160 wfd_manager_s *wfd_get_manager();
161 int wfd_local_reset_data(wfd_manager_s *manager);
162 int wfd_local_get_dev_name(char *dev_name);
163 int wfd_local_set_dev_name(char *dev_name);
164 int wfd_local_get_dev_mac(unsigned char *dev_mac);
165 int wfd_local_get_intf_mac(unsigned char *intf_mac);
166 int wfd_local_get_ip_addr(char *ip_str);
167 int wfd_local_get_supported_wps_mode(int *wps_mode);
168 int wfd_local_set_req_wps_mode(int req_wps_mode);
169 int wfd_local_get_wps_mode(int *wps_mode);
170 int wfd_local_get_req_wps_mode(int *req_wps_mode);
172 int wfd_local_get_display_port(int *port);
173 int wfd_local_get_display_type(wifi_direct_display_type_e *type);
175 int wfd_manager_get_go_intent(int *go_intent);
176 int wfd_manager_set_go_intent(int go_intent);
177 int wfd_manager_get_max_station(int *max_station);
178 int wfd_manager_set_max_station(int max_station);
179 int wfd_manager_get_autoconnection(int *autoconnection);
180 int wfd_manager_set_autoconnection(int autoconnection);
181 int wfd_manager_get_req_wps_mode(int *req_wps_mode);
182 int wfd_manager_set_req_wps_mode(int req_wps_mode);
184 int wfd_manager_service_add(wfd_manager_s *manager, wifi_direct_service_type_e type, char *data);
185 int wfd_manager_service_del(wfd_manager_s *manager, wifi_direct_service_type_e type, char *data);
186 int wfd_manager_serv_disc_req(wfd_manager_s *manager, unsigned char* mad_addr, wifi_direct_service_type_e type, char *data);
187 int wfd_manager_serv_disc_cancel(wfd_manager_s *manager, int handle);
188 int wfd_manager_init_service(wfd_device_s *device);
189 int wfd_manager_init_query(wfd_manager_s *manager);
191 int wfd_manager_init_wifi_display(wifi_direct_display_type_e type, int port, int hdcp);
192 int wfd_manager_deinit_wifi_display();
194 int wfd_manager_local_config_set(wfd_manager_s *manager);
195 int wfd_manager_activate(wfd_manager_s *manager);
196 int wfd_manager_deactivate(wfd_manager_s *manager);
197 int wfd_manager_connect(wfd_manager_s *manager, unsigned char *peer_addr);
198 int wfd_manager_accept_connection(wfd_manager_s *manager, unsigned char *peer_addr);
199 int wfd_manager_cancel_connection(wfd_manager_s *manager, unsigned char *peer_addr);
200 int wfd_manager_reject_connection(wfd_manager_s *manager, unsigned char *peer_addr);
201 int wfd_manager_disconnect(wfd_manager_s *manager, unsigned char *peer_addr);
202 int wfd_manager_disconnect_all(wfd_manager_s *manager);
203 int wfd_manager_get_peers(wfd_manager_s *manager, wfd_discovery_entry_s **peers);
204 int wfd_manager_get_connected_peers(wfd_manager_s *manager, wfd_connected_peer_info_s **peers_data);
205 wfd_device_s *wfd_manager_find_connected_peer(wfd_manager_s *manager, unsigned char *peer_addr);
206 wfd_device_s *wfd_manager_get_current_peer(wfd_manager_s *manager);
207 int wfd_manager_get_goup_ifname(char **ifname);
209 #endif /* __WIFI_DIRECT_MANAGER_H__ */