Fix logical dead code issue
[platform/core/connectivity/wifi-direct-manager.git] / include / wifi-direct-manager.h
index b8d20d4..73067b9 100644 (file)
 #ifndef __WIFI_DIRECT_MANAGER_H__
 #define __WIFI_DIRECT_MANAGER_H__
 
-#define DEFAULT_DEVICE_NAME "Tizen_Device"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define DEFAULT_IFNAME "p2p0"
-#define GROUP_IFNAME "p2p-wlan0-0"
+#define GROUP_IFNAME   "p2p0"
+#define DEFAULT_PRIMARY_DEVICE_TYPE WIFI_DIRECT_PRIMARY_DEVICE_TYPE_TELEPHONE
+#define DEFAULT_SECONDARY_DEVICE_TYPE WIFI_DIRECT_SECONDARY_DEVICE_TYPE_TELEPHONE_SMARTPHONE_DUAL
+
+#define WFD_MAX_TYPE 8
+#define WFD_GO_INTENT_MIN 0
+#define WFD_GO_INTENT_DISPLY_SOURCE 2
+#define WFD_GO_INTENT_MAX 15
 #define WFD_MAX_CLIENT 16
 #define WFD_MAX_STATION 8
 
 #define IPADDR_LEN 4
 #define IPSTR_LEN 16
 #define PINSTR_LEN 8
-#define PASSPHRASE_LEN 8
-
-#if 0
-typedef enum {
-       WFD_STATE_DEACTIVATED,
-       WFD_STATE_ACTIVATED,
-       WFD_STATE_IDLE,                 // passive scaning
-       WFD_STATE_SCANNING,             // active scanning
-       WFD_STATE_CONNECTING,
-       WFD_STATE_CONNECTED,
-} wfd_state_e;
-#endif
+#define PASSPHRASE_LEN_MAX 64
+#define PASSPHRASE_LEN_MIN 8
 
 typedef enum {
        WFD_WPS_MODE_NONE,
        WFD_WPS_MODE_PBC = 0x1,
        WFD_WPS_MODE_DISPLAY = 0x2,
        WFD_WPS_MODE_KEYPAD = 0x4,
+       WFD_WPS_MODE_P2PS = 0x8,
 } wfd_wps_mode_e;
 
 typedef enum {
@@ -72,7 +73,46 @@ typedef enum {
        WFD_SCAN_MODE_PASSIVE,
 } wfd_scan_mode_e;
 
+typedef enum {
+       WFD_PEER_STATE_DISCOVERED,
+       WFD_PEER_STATE_CONNECTING,
+       WFD_PEER_STATE_CONNECTED,
+} wfd_peer_state_e;
+
+typedef enum {
+       WFD_IP_TYPE_DYNAMIC = 0x0,
+       WFD_IP_TYPE_OVER_EAPOL = 0x1,
+} wfd_ip_type_e;
+
+typedef enum {
+       WFD_DISPLAY_TYPE_SOURCE,
+       WFD_DISPLAY_TYPE_PRISINK,
+       WFD_DISPLAY_TYPE_SECSINK,
+       WFD_DISPLAY_TYPE_DUAL,
+       WFD_DISPLAY_TYPE_NONE,
+} wfd_display_type_e;
+
+typedef struct {
+       int type;
+       int availability;
+       int wsd_support;
+       int tdls_support;
+       int hdcp_support;
+       int sync_support;
+       int port;
+       int max_tput;
+} wfd_display_s;
+
+#define WIFI_DISPLAY_DEFAULT_TYPE WFD_DISPLAY_TYPE_SOURCE
+#define WIFI_DISPLAY_DEFAULT_AVAIL 1
+#define WIFI_DISPLAY_DEFAULT_HDCP 1
+#define WIFI_DISPLAY_DEFAULT_PORT 7236
+#define WIFI_DISPLAY_DEFAULT_TPUT 54
+
 typedef struct {
+       int state;
+       unsigned long time;
+
        char dev_name[DEV_NAME_LEN+1];
        unsigned char dev_addr[MACADDR_LEN];
        unsigned char intf_addr[MACADDR_LEN];
@@ -85,30 +125,39 @@ typedef struct {
        int dev_flags;
        int group_flags;
        int wps_mode;
+       int is_p2p;
+
+       char passphrase[PASSPHRASE_LEN_MAX + 1];
+
+       wfd_display_s display;
 
-       int wfd_dev_info;
-       int wfd_ctrl_port;
-       int wfd_max_tput;
+       GList *services;
+       unsigned int service_count;
 
        unsigned char ip_addr[IPADDR_LEN];
+
+       int ip_type;
+       unsigned char client_ip_addr[IPADDR_LEN];
+       unsigned char go_ip_addr[IPADDR_LEN];
+       int rssi;
+       char *vsie;
 } wfd_device_s;
 
 typedef struct {
        GMainLoop *main_loop;
 
-       int serv_sock;
-       unsigned int client_handle;     // for accept clients
-       GList *clients;
-       unsigned int client_count;
+       wifi_direct_state_e state;
 
-       int state;
        unsigned int exit_timer;
-
+       int client_count;
+       GSList *client_list;
        wfd_device_s *local;
        int go_intent;
        int req_wps_mode;
        int max_station;
        int autoconnection;
+       unsigned char autoconnection_peer[MACADDR_LEN];
+       char auto_pin[PINSTR_LEN+1];    /* for NFC Printer */
        int scan_mode;
 
        GList *peers;
@@ -120,22 +169,45 @@ typedef struct {
 
        void *oem_ops;
        void *plugin_handle;
+#if defined TIZEN_ENABLE_PRD
+       void *prd_plugin_handle;
+#endif /* TIZEN_ENABLE_PRD */
+
+       int session_timer;
+       int go_intent_per_type[WFD_MAX_TYPE];
+       int connection_timeout;
+       gboolean auto_group_remove_enable;
+       gboolean is_on_demand_supported;
+       gboolean is_service_discovery_supported;
+       gboolean is_wifi_display_supported;
+       gboolean is_tethering_wifi_supported;
+       gboolean is_tethering_wifi_direct_supported;
+       gboolean is_asp_supported;
+       gboolean is_on_demand;
+       gboolean is_connection_agent;
+       gboolean is_ip_over_eapol;
+       void *wfd_oem_conf;
 } wfd_manager_s;
 
 wfd_manager_s *wfd_get_manager();
 int wfd_local_reset_data(wfd_manager_s *manager);
 int wfd_local_get_dev_name(char *dev_name);
 int wfd_local_set_dev_name(char *dev_name);
-int wfd_local_get_dev_mac(unsigned char *dev_mac);
+int wfd_local_get_dev_mac(char *dev_mac);
+#if 0
 int wfd_local_get_intf_mac(unsigned char *intf_mac);
+int wfd_local_set_wps_mode(int wps_mode);
+wfd_device_s *wfd_manager_find_connected_peer(wfd_manager_s *manager, unsigned char *peer_addr);
+#endif
+int wfd_manager_load();
+void wfd_manager_unload();
 int wfd_local_get_ip_addr(char *ip_str);
 int wfd_local_get_supported_wps_mode(int *wps_mode);
-int wfd_local_set_req_wps_mode(int wps_mode);
 int wfd_local_get_wps_mode(int *wps_mode);
-int wfd_local_get_req_wps_mode(int *req_wps_mode);
-
 int wfd_manager_get_go_intent(int *go_intent);
 int wfd_manager_set_go_intent(int go_intent);
+int wfd_manager_get_go_intent_per_type(int type, int *go_intent);
+int wfd_manager_set_go_intent_per_type(int type, int go_intent);
 int wfd_manager_get_max_station(int *max_station);
 int wfd_manager_set_max_station(int max_station);
 int wfd_manager_get_autoconnection(int *autoconnection);
@@ -148,10 +220,32 @@ int wfd_manager_activate(wfd_manager_s *manager);
 int wfd_manager_deactivate(wfd_manager_s *manager);
 int wfd_manager_connect(wfd_manager_s *manager, unsigned char *peer_addr);
 int wfd_manager_accept_connection(wfd_manager_s *manager, unsigned char *peer_addr);
+int wfd_manager_cancel_connection(wfd_manager_s *manager, unsigned char *peer_addr);
+int wfd_manager_reject_connection(wfd_manager_s *manager, unsigned char *peer_addr);
+int wfd_manager_disconnect(wfd_manager_s *manager, unsigned char *peer_addr);
+int wfd_manager_disconnect_all(wfd_manager_s *manager);
+int wfd_manager_get_peer_info(wfd_manager_s *manager, unsigned char* addr, wfd_discovery_entry_s **peer);
 int wfd_manager_get_peers(wfd_manager_s *manager, wfd_discovery_entry_s **peers);
 int wfd_manager_get_connected_peers(wfd_manager_s *manager, wfd_connected_peer_info_s **peers_data);
-wfd_device_s *wfd_manager_find_connected_peer(wfd_manager_s *manager, unsigned char *peer_addr);
-wfd_device_s *wfd_manager_get_current_peer(wfd_manager_s *manager);
 int wfd_manager_get_goup_ifname(char **ifname);
+wfd_device_s *wfd_manager_get_peer_by_addr(wfd_manager_s *manager, unsigned char *peer_addr);
+int wfd_manager_set_display_device(int type, int port, int hdcp);
+int wfd_manager_set_session_availability(int availability);
+int wfd_manager_get_display_device(int *type, int *port, int *hdcp);
+int wfd_manager_get_session_availability(int *availability);
+int wfd_manager_start_discovery(wfd_manager_s *manager, int mode, int timeout,
+                               const char* type, int channel, int frequency);
+int wfd_manager_cancel_discovery(wfd_manager_s *manager);
+wfd_device_s *wfd_manager_get_connected_peer_by_addr(wfd_manager_s *manager, unsigned char *peer_addr);
+int wfd_manager_asp_connect_session(wfd_manager_s *manager, void *params);
+int wfd_manager_asp_confirm_session(wfd_manager_s *manager, void *params, int confirmed);
+void wfd_manager_free_active_client_list(void);
+void wfd_manager_add_active_client(const char *client_id);
+void wfd_manager_remove_active_client(const char *name,
+                                                const gchar *old_owner,
+                                                const char *new_owner);
+#ifdef __cplusplus
+}
+#endif
 
 #endif /* __WIFI_DIRECT_MANAGER_H__ */