summaryrefslogtreecommitdiff
path: root/ug-wifidirect/include
diff options
context:
space:
mode:
Diffstat (limited to 'ug-wifidirect/include')
-rw-r--r--ug-wifidirect/include/wfd_client.h156
-rw-r--r--ug-wifidirect/include/wfd_motion_control.h43
-rw-r--r--[-rwxr-xr-x]ug-wifidirect/include/wfd_ug.h431
-rw-r--r--[-rwxr-xr-x]ug-wifidirect/include/wfd_ug_view.h494
4 files changed, 891 insertions, 233 deletions
diff --git a/ug-wifidirect/include/wfd_client.h b/ug-wifidirect/include/wfd_client.h
index 2e65b2e..e8b6c5e 100644
--- a/ug-wifidirect/include/wfd_client.h
+++ b/ug-wifidirect/include/wfd_client.h
@@ -22,44 +22,150 @@
#define __WFD_CLIENT_H__
-typedef enum
-{
- WFD_DEVICE_TYPE_COMPUTER = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_COMPUTER, // 1
- WFD_DEVICE_TYPE_INPUT_DEVICE= WIFI_DIRECT_PRIMARY_DEVICE_TYPE_INPUT_DEVICE,
- WFD_DEVICE_TYPE_PRINTER = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_PRINTER,
- WFD_DEVICE_TYPE_CAMERA = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_CAMERA,
- WFD_DEVICE_TYPE_STORAGE = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_STORAGE, // 5
- WFD_DEVICE_TYPE_NW_INFRA = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_NETWORK_INFRA,
- WFD_DEVICE_TYPE_DISPLAYS = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_DISPLAY,
- WFD_DEVICE_TYPE_MM_DEVICES = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_MULTIMEDIA_DEVICE,
- WFD_DEVICE_TYPE_GAME_DEVICES = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_GAME_DEVICE,
- WFD_DEVICE_TYPE_TELEPHONE = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_TELEPHONE, // 10
- WFD_DEVICE_TYPE_AUDIO = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_AUDIO,
- WFD_DEVICE_TYPE_OTHER = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_OTHER, // 255
+typedef enum {
+ WFD_DEVICE_TYPE_COMPUTER = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_COMPUTER,
+ WFD_DEVICE_TYPE_INPUT_DEVICE = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_INPUT_DEVICE,
+ WFD_DEVICE_TYPE_PRINTER = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_PRINTER,
+ WFD_DEVICE_TYPE_CAMERA = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_CAMERA,
+ WFD_DEVICE_TYPE_STORAGE = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_STORAGE,
+ WFD_DEVICE_TYPE_NW_INFRA = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_NETWORK_INFRA,
+ WFD_DEVICE_TYPE_DISPLAYS = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_DISPLAY,
+ WFD_DEVICE_TYPE_MM_DEVICES = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_MULTIMEDIA_DEVICE,
+ WFD_DEVICE_TYPE_GAME_DEVICES = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_GAME_DEVICE,
+ WFD_DEVICE_TYPE_TELEPHONE = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_TELEPHONE,
+ WFD_DEVICE_TYPE_AUDIO = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_AUDIO,
+ WFD_DEVICE_TYPE_OTHER = WIFI_DIRECT_PRIMARY_DEVICE_TYPE_OTHER,
} device_type_e;
typedef enum {
- WFD_LINK_STATUS_DEACTIVATED = WIFI_DIRECT_STATE_DEACTIVATED, // 0
- WFD_LINK_STATUS_DEACTIVATING = WIFI_DIRECT_STATE_DEACTIVATING,
- WFD_LINK_STATUS_ACTIVATING = WIFI_DIRECT_STATE_ACTIVATING,
- WFD_LINK_STATUS_ACTIVATED = WIFI_DIRECT_STATE_ACTIVATED,
- WFD_LINK_STATUS_DISCOVERING = WIFI_DIRECT_STATE_DISCOVERING,
- WFD_LINK_STATUS_CONNECTING = WIFI_DIRECT_STATE_CONNECTING, // 5
- WFD_LINK_STATUS_DISCONNECTING = WIFI_DIRECT_STATE_DISCONNECTING,
- WFD_LINK_STATUS_CONNECTED = WIFI_DIRECT_STATE_CONNECTED,
- WFD_LINK_STATUS_GROUP_OWNER = WIFI_DIRECT_STATE_GROUP_OWNER,
+ WFD_LINK_STATUS_DEACTIVATED = WIFI_DIRECT_STATE_DEACTIVATED,
+ WFD_LINK_STATUS_DEACTIVATING = WIFI_DIRECT_STATE_DEACTIVATING,
+ WFD_LINK_STATUS_ACTIVATING = WIFI_DIRECT_STATE_ACTIVATING,
+ WFD_LINK_STATUS_ACTIVATED = WIFI_DIRECT_STATE_ACTIVATED,
+ WFD_LINK_STATUS_DISCOVERING = WIFI_DIRECT_STATE_DISCOVERING,
+ WFD_LINK_STATUS_CONNECTING = WIFI_DIRECT_STATE_CONNECTING,
+ WFD_LINK_STATUS_DISCONNECTING = WIFI_DIRECT_STATE_DISCONNECTING,
+ WFD_LINK_STATUS_CONNECTED = WIFI_DIRECT_STATE_CONNECTED,
+ WFD_LINK_STATUS_GROUP_OWNER = WIFI_DIRECT_STATE_GROUP_OWNER,
} link_status_e;
-int wfd_get_vconf_status(void *data);
+/**
+ * This function let the ug get wi-fi direct status from vconf
+ * @return If success, return the wfd status, else return -1
+ * @param[in] void
+ */
+int wfd_get_vconf_status();
+
+/**
+ * This function let the ug get device name from vconf
+ * @return If success, return 0, else return -1
+ * @param[in] data the pointer to the main data structure
+ */
+int wfd_get_vconf_device_name(void *data);
+
+#ifndef MODEL_BUILD_FEATURE_WLAN_CONCURRENT_MODE
+/**
+ * This function let the ug turn wifi off
+ * @return If success, return 0, else return -1
+ * @param[in] data the pointer to the main data structure
+ */
int wfd_wifi_off(void *data);
+#endif /* MODEL_BUILD_FEATURE_WLAN_CONCURRENT_MODE */
+
+/**
+ * This function let the ug turn AP on
+ * @return If success, return 0, else return -1
+ * @param[in] data the pointer to the main data structure
+ */
+int wfd_mobile_ap_on(void *data);
+
+/**
+ * This function let the ug turn AP off
+ * @return If success, return 0, else return -1
+ * @param[in] data the pointer to the main data structure
+ */
+int wfd_mobile_ap_off(void *data);
+
+/**
+ * This function let the ug do initialization
+ * @return If success, return 0, else return -1
+ * @param[in] data the pointer to the main data structure
+ */
int init_wfd_client(void *data);
+
+
+/**
+ * This function let the ug load wfd manager
+ * @return If success, return 0, else return -1
+ * @param[in] data the pointer to the main data structure
+ */
+int launch_wifi_direct_manager(void *data);
+
+/**
+ * This function let the ug do de-initialization
+ * @return If success, return 0, else return -1
+ * @param[in] data the pointer to the main data structure
+ */
int deinit_wfd_client(void *data);
-int wfd_client_start_discovery(void *data);
+
+/**
+ * This function let the ug turn wi-fi direct on
+ * @return If success, return 0, else return -1
+ * @param[in] data the pointer to the main data structure
+ */
int wfd_client_switch_on(void *data);
+
+/**
+ * This function let the ug turn wi-fi direct off
+ * @return If success, return 0, else return -1
+ * @param[in] data the pointer to the main data structure
+ */
int wfd_client_switch_off(void *data);
+
+#ifdef WFD_ON_OFF_GENLIST
+/**
+ * This function let the ug turn wi-fi direct on/off forcely
+ * @return If success, return 0, else return -1
+ * @param[in] data the pointer to the main data structure
+ * @param[in] onoff whether to turn on/off wi-fi direct
+ */
int wfd_client_swtch_force(void *data, int onoff);
+#endif
+
+/**
+ * This function let the ug create a group
+ * @return If success, return 0, else return -1
+ */
+int wfd_client_group_add();
+
+/**
+ * This function let the ug connect to the device by mac address
+ * @return If success, return 0, else return -1
+ * @param[in] mac_addr the pointer to the mac address of device
+ */
int wfd_client_connect(const char *mac_addr);
+
+/**
+ * This function let the ug disconnect to the device by mac address
+ * @return If success, return 0, else return -1
+ * @param[in] mac_addr the pointer to the mac address of device
+ */
int wfd_client_disconnect(const char *mac_addr);
+
+/**
+ * This function let the ug set the intent of a group owner
+ * @return If success, return 0, else return -1
+ * @param[in] go_intent the intent parameter
+ */
int wfd_client_set_p2p_group_owner_intent(int go_intent);
+/**
+ * This function let the ug destroy tethering
+ * @return void
+ * @param[in] ugd the pointer to the main data structure
+ */
+void wfd_client_destroy_tethering(struct ug_data *ugd);
+
+void wfd_client_free_raw_discovered_peers(struct ug_data *ugd);
+
#endif /* __WFD_CLIENT_H__ */
diff --git a/ug-wifidirect/include/wfd_motion_control.h b/ug-wifidirect/include/wfd_motion_control.h
new file mode 100644
index 0000000..f3f5bd3
--- /dev/null
+++ b/ug-wifidirect/include/wfd_motion_control.h
@@ -0,0 +1,43 @@
+/*
+ * Wi-Fi Direct
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MOTION_CONTROL_H__
+#define __MOTION_CONTROL_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <Evas.h>
+#include "wfd_ug.h"
+
+typedef enum {
+ MOTION_TARGET_VIEW_FOCUS_ON = 0,
+ MOTION_TARGET_VIEW_FOCUS_OFF
+}TARGET_VIEW_FOCUS;
+
+void motion_create(struct ug_data *);
+void motion_destroy(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/ug-wifidirect/include/wfd_ug.h b/ug-wifidirect/include/wfd_ug.h
index c24b1ee..306d178 100755..100644
--- a/ug-wifidirect/include/wfd_ug.h
+++ b/ug-wifidirect/include/wfd_ug.h
@@ -22,58 +22,118 @@
#define __WFD_UG_H__
#include <dlog.h>
+#include <notification.h>
#include <ui-gadget-module.h>
+
#include <tethering.h>
+#include <wifi-direct.h>
+#include <efl-assist/efl_assist.h>
+
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <glib.h>
+#include <assert.h>
+
#define PACKAGE "ug-setting-wifidirect-efl"
-#define LOCALEDIR "/opt/ug/res/locale"
+#define LOCALEDIR "/usr/share/locale"
+#define COLOR_TABLE "/usr/apps/setting-wifidirect-efl/shared/res/tables/setting-wifidirect-efl_ChangeableColorTable.xml"
+#define FONT_TABLE "/usr/apps/setting-wifidirect-efl/shared/res/tables/setting-wifidirect-efl_FontInfoTable.xml"
#define DIRECT_TAG "wfd_ug"
+/* TODO:: To change the log level as LOG_INFO */
#define DBG(log_level, format, args...) \
- LOG(log_level, DIRECT_TAG, "[%s()][%d] " format, __FUNCTION__, __LINE__, ##args)
+ LOG(LOG_ERROR, DIRECT_TAG, "[%s()][%d] " format, __FUNCTION__, __LINE__, ##args)
+#define DBG_SECURE(log_level, format, args...) \
+ SECURE_LOG(LOG_ERROR, DIRECT_TAG, "[%s()][%d] " format, __FUNCTION__, __LINE__, ##args)
+
+#define MAC2SECSTR(a) (a)[0], (a)[4], (a)[5]
+#define MACSECSTR "%02x:%02x:%02x"
+#if 0
+#define IP2SECSTR(a) (a)[0], (a)[3]
+#define IPSECSTR "%d..%d"
+#endif
-#define __FUNC_ENTER__ DBG(LOG_VERBOSE, "+\n")
-#define __FUNC_EXIT__ DBG(LOG_VERBOSE, "-\n")
+#define __FUNC_ENTER__ DBG(LOG_INFO, "+\n")
+#define __FUNC_EXIT__ DBG(LOG_INFO, "-\n")
+#if 0
+#define __FUNC_ENTER__
+#define __FUNC_EXIT__
+#endif
-#define VCONF_WFD_APNAME "db/setting/device_name"
+#define VCONF_WFD_APNAME "db/setting/device_name"
#define assertm_if(expr, fmt, arg...) do { \
- if(expr) { \
+ if (expr) { \
DBG(LOG_VERBOSE, " ##(%s) -> %s() assert!!## "fmt, #expr, __FUNCTION__, ##arg); \
assert(1); \
- } \
-} while (0) // retvm if
-
-#define MAC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
-#define MACSTR "%02x:%02x:%02x:%02x:%02x:%02x"
-
-#define AP_NAME_LENGTH_MAX 32 //allowed lenght is 31 + '\0'
-#define AP_PASSWORD_LENGTH_MAX 64 //allowed lenght is 63 + '\0'
-#define AP_PASSWORD_LENGTH_MIN 8 //min limit
+ } \
+} while (0)
+
+#define WFD_IF_DEL_OBJ(obj) \
+ do { \
+ if(obj) { \
+ evas_object_del(obj); \
+ obj = NULL; \
+ } \
+ } while (0)
+
+#define WFD_IF_DEL_ITEM(obj) \
+ do { \
+ if(obj) { \
+ elm_object_item_del(obj); \
+ obj = NULL; \
+ } \
+ } while (0)
+
+#define WFD_RET_IF(expr, fmt, args...) \
+ do { \
+ if(expr) { \
+ DBG(LOG_ERROR, "[%s] Return, message "fmt, #expr, ##args );\
+ return; \
+ } \
+ } while (0)
+
+#define WFD_RETV_IF(expr, val, fmt, args...) \
+ do { \
+ if(expr) { \
+ DBG(LOG_ERROR,"[%s] Return value, message "fmt, #expr, ##args );\
+ return (val); \
+ } \
+ } while (0)
+
+#define WFD_IF_FREE_MEM(mem) \
+ do { \
+ if(mem) { \
+ free(mem); \
+ mem = NULL; \
+ } \
+ } while (0)
+
+#define AP_NAME_LENGTH_MAX 32
+#define AP_PASSWORD_LENGTH_MAX 64
+#define AP_PASSWORD_LENGTH_MIN 8
#define AP_REJECT_CHAR_LIST "=,"
-#define DEFAULT_DEV_NAME "GT_I9500"
+#define DEFAULT_DEV_NAME "ZEQ"
#define MAC_LENGTH 18
#define SSID_LENGTH 32
+#define MAX_CONNECTED_PEER_NUM 7
#define MAX_PEER_NUM 10
-#define MAX_POPUP_PEER_NUM 7
#define MAX_POPUP_TEXT_SIZE 256
-#define MAX_DISPLAY_TIME_OUT 30
+#define MAX_DISPLAY_TIME_OUT 3
+#define MAX_NO_ACTION_TIME_OUT 300 /*5min*/
+#define MAX_SCAN_TIME_OUT 0
+
+#define GENLIST_HEADER_POS 1
+#define SR_CHECKBOX_ON_MSG "on/off button on"
+#define SR_CHECKBOX_OFF_MSG "on/off button off"
+#define SR_BUTTON_MSG "multiple connect button"
#define _(s) dgettext(PACKAGE, s)
#define N_(s) dgettext_noop(s)
#define S_(s) dgettext("sys_string", s)
-
-#if 1 //To-Do : Text should be translated.
-
-#define IDS_WFD_POP_SCAN_AGAIN "To start new scanning,<br>current connection will be<br>ended.Continue?"
-#define IDS_WFD_POP_WARN_BUSY_DEVICE "Unavailable device. Device is connected to another device."
-#define IDS_WFD_BODY_FAILED_DEVICES "Failed Devices"
-
-#endif
-
-
#define WFD_GLOBALIZATION_STR_LENGTH 256
typedef enum {
@@ -82,146 +142,234 @@ typedef enum {
WFD_MULTI_CONNECT_MODE_COMPLETED,
} wfd_multi_connect_mode_e;
-typedef enum
-{
- PEER_CONN_STATUS_DISCONNECTED,
- PEER_CONN_STATUS_DISCONNECTING,
- PEER_CONN_STATUS_CONNECTING = PEER_CONN_STATUS_DISCONNECTING,
- PEER_CONN_STATUS_CONNECTED,
- PEER_CONN_STATUS_FAILED_TO_CONNECT,
- PEER_CONN_STATUS_WAIT_FOR_CONNECT,
+typedef enum {
+ PEER_CONN_STATUS_DISCONNECTED,
+ PEER_CONN_STATUS_DISCONNECTING,
+ PEER_CONN_STATUS_CONNECTING = PEER_CONN_STATUS_DISCONNECTING,
+ PEER_CONN_STATUS_CONNECTED,
+ PEER_CONN_STATUS_FAILED_TO_CONNECT,
+ PEER_CONN_STATUS_WAIT_FOR_CONNECT,
} conn_status_e;
-
-typedef struct
-{
- char ssid[SSID_LENGTH]; // 31 + 1('\0')
- unsigned int category;
- char mac_addr[MAC_LENGTH];
- char if_addr[MAC_LENGTH];
- conn_status_e conn_status;
- bool is_group_owner; /** Is an active P2P Group Owner */
- bool is_persistent_group_owner; /** Is a stored Persistent GO */
- bool is_connected; /** Is peer connected*/
- Elm_Object_Item *gl_item;
+typedef enum {
+ WIFI_DIRECT_DISCOVERY_NONE,
+ WIFI_DIRECT_DISCOVERY_SOCIAL_CHANNEL_START,
+ WIFI_DIRECT_DISCOVERY_FULL_SCAN_START,
+ WIFI_DIRECT_DISCOVERY_STOPPED,
+ WIFI_DIRECT_DISCOVERY_BACKGROUND,
+} discovery_status_e;
+
+
+typedef struct device_type_s_{
+ char ssid[SSID_LENGTH];
+ unsigned int category;
+ unsigned int sub_category;
+ char mac_addr[MAC_LENGTH];
+ char if_addr[MAC_LENGTH];
+ conn_status_e conn_status;
+ bool is_group_owner; /** Is an active P2P Group Owner */
+ bool is_persistent_group_owner; /** Is a stored Persistent GO */
+ bool is_connected; /** Is peer connected*/
+ bool is_alive;
+ bool dev_sel_state;
+ Elm_Object_Item *gl_item;
+ struct device_type_s_ *next;
} device_type_s;
-typedef struct
-{
- bool dev_sel_state;
- device_type_s peer;
-} wfd_multi_sel_data_s;
+struct ug_data {
+ Evas_Object *base;
+ ui_gadget_h ug;
+
+ Evas_Object *win;
+ Evas_Object *bg;
+ Evas_Object *layout;
+ Evas_Object *naviframe;
+ Elm_Object_Item *navi_item;
+ Elm_Object_Item *multi_navi_item;
+ Elm_Object_Item *head;
+ Evas_Object *genlist;
+ Evas_Object *multiconn_view_genlist;
+ Evas_Object *multiconn_layout;
+ Evas_Object *popup;
+ Evas_Object *act_popup;
+ Evas_Object *warn_popup;
+ Evas_Object *rename_popup;
+ Evas_Object *ctxpopup;
+ Evas_Object *scan_btn;
+ Evas_Object *disconnect_btn;
+ Evas_Object *toolbar;
+ Evas_Object *rename_entry;
+ Evas_Object *rename_button;
+
+#ifdef WFD_ON_OFF_GENLIST
+ Evas_Object *on_off_check;
+#endif
-struct ug_data
-{
- Evas_Object *base;
- ui_gadget_h ug;
+ Evas_Object *scan_toolbar;
+ Evas_Object *multiconn_scan_stop_btn;
+ Evas_Object *multiconn_conn_btn;
+ Evas_Object *select_all_icon;
- Evas_Object *win;
- Evas_Object *bg;
- Evas_Object *naviframe;
- Evas_Object *genlist;
- Evas_Object *multiconn_view_genlist;
- Evas_Object *popup;
- Evas_Object *act_popup;
- Evas_Object *warn_popup;
- Elm_Object_Item *head;
- Elm_Object_Item *scan_btn;
- Elm_Object_Item *multi_scan_btn;
- Elm_Object_Item *multi_connect_btn;
- Elm_Object_Item *nodevice_title_item;
- Elm_Object_Item *nodevice_item;
- Elm_Object_Item *nodevice_sep_low_item;
+ Elm_Object_Item *multi_connect_toolbar_item;
+ Elm_Object_Item *multi_view_connect_toolbar_item;
- Elm_Object_Item *about_wfd_item;
- Elm_Object_Item *about_wfdsp_sep_end_item;
+ Elm_Object_Item *select_all_view_genlist;
+#ifdef WFD_ON_OFF_GENLIST
+ Elm_Object_Item *item_wifi_onoff;
+#endif
+ Elm_Object_Item *device_name_item;
+ Elm_Genlist_Item_Class *rename_entry_itc;
+ Elm_Genlist_Item_Class *rename_desc_itc;
+ Elm_Object_Item *multi_connect_sep_item;
- Elm_Object_Item *conn_wfd_item;
+ Elm_Object_Item *nodevice_title_item;
+ Elm_Object_Item *nodevice_item;
- Elm_Object_Item *conn_failed_wfd_item;
- Elm_Object_Item *conn_failed_wfd_sep_item;
+ Elm_Object_Item *conn_wfd_item;
+ Elm_Object_Item *conn_failed_wfd_item;
+ Elm_Object_Item *avlbl_wfd_item;
+ Elm_Object_Item *busy_wfd_item;
+ Elm_Object_Item *multi_connect_wfd_item;
- Elm_Object_Item *avlbl_wfd_item;
+ Elm_Object_Item *mcview_title_item;
+ Elm_Object_Item *mcview_nodevice_item;
+ Elm_Object_Item *more_btn_multiconnect_item;
- Elm_Object_Item *busy_wfd_item;
- Elm_Object_Item *busy_wfd_sep_item;
+ Evas_Object *back_btn;
- Elm_Object_Item *multi_connect_wfd_item;
+ // Notify
+ Evas_Object *notify;
+ Evas_Object *notify_layout;
- Elm_Object_Item *multi_button_item;
- Elm_Object_Item *multi_button_sep_high_item;
- Elm_Object_Item *multi_button_sep_low_item;
+ int head_text_mode;
+ char *mac_addr_connecting;
+ char *mac_addr_req;
- Elm_Object_Item *mcview_select_all_item;
- Elm_Object_Item *mcview_title_item;
- Elm_Object_Item *mcview_nodevice_item;
+ //Connection is incoming or not
+ bool is_conn_incoming;
- Evas_Object *multi_btn;
+ // title mode of device list
+ int title_content_mode;
- int head_text_mode;
+ // Raw peer data
+ device_type_s raw_connected_peers[MAX_CONNECTED_PEER_NUM];
+ int raw_connected_peer_cnt;
+ GList *raw_discovered_peer_list;
+ int raw_discovered_peer_cnt;
- // Raw peer data
- device_type_s raw_connected_peers[MAX_PEER_NUM];
- int raw_connected_peer_cnt;
- device_type_s raw_discovered_peers[MAX_PEER_NUM];
- int raw_discovered_peer_cnt;
+ // Peer data in the Genlist
+ int gl_connected_peer_cnt;
+ device_type_s *gl_conn_peers_start;
- // Peer data in the Genlist
- device_type_s gl_connected_peers[MAX_PEER_NUM];
- int gl_connected_peer_cnt;
+ int gl_connected_failed_peer_cnt;
+ device_type_s *gl_failed_peers_start;
- device_type_s gl_connected_failed_peers[MAX_PEER_NUM];
- int gl_connected_failed_peer_cnt;
+ int gl_available_peer_cnt;
+ device_type_s *gl_avlb_peers_start;
- device_type_s gl_available_peers[MAX_PEER_NUM];
- int gl_available_peer_cnt;
+ int gl_busy_peer_cnt;
+ device_type_s *gl_busy_peers_start;
- device_type_s gl_busy_peers[MAX_PEER_NUM];
- int gl_busy_peer_cnt;
+ device_type_s raw_multi_selected_peers[MAX_PEER_NUM];
+ int raw_multi_selected_peer_cnt;
- device_type_s raw_multi_selected_peers[MAX_PEER_NUM];
- int raw_multi_selected_peer_cnt;
+ int gl_multi_connect_peer_cnt;
+ device_type_s *gl_mul_conn_peers_start;
- device_type_s gl_multi_connect_peers[MAX_PEER_NUM];
- int gl_multi_connect_peer_cnt;
+ // My status
+ bool I_am_group_owner;
+ bool I_am_connected;
- // My status
- bool I_am_group_owner;
- bool I_am_connected;
+ // Following variables are used at the Multi connect view.
+ wfd_multi_connect_mode_e multi_connect_mode;
+ device_type_s *multi_conn_dev_list_start;
+ int gl_available_dev_cnt_at_multiconn_view;
+ int g_source_multi_connect_next;
- // Following variables are used at the Multi connect view.
- wfd_multi_connect_mode_e multi_connect_mode;
- wfd_multi_sel_data_s multi_conn_dev_list[MAX_PEER_NUM];
- int gl_available_dev_cnt_at_multiconn_view;
- int g_source_multi_connect_next;
+#ifdef WFD_ON_OFF_GENLIST
+ int wfd_onoff;
+#endif
+ wifi_direct_state_e wfd_status;
+ char *dev_name;
+ char *dev_pass;
- int wfd_onoff;
- int wfd_status;
- char *dev_name;
- char *dev_pass;
+ // For connect failed peers
+ int last_display_time;
+ Ecore_Timer *display_timer;
- // For connect failed peers
- int last_display_time;
- Ecore_Timer *display_timer;
+ // Tethering
+ bool is_hotspot_off;
+ bool is_hotspot_locally_disabled;
+ tethering_h hotspot_handle;
- //tethering
- tethering_h hotspot_handle;
-
+ // wfds service
+ char *wfds;
+
+ // Device filter
+ int device_filter;
+
+ // Whether support auto exit after successed connection
+ bool is_auto_exit;
+
+ //Whether support multi connection
+ bool is_multi_connect;
+ bool is_select_all_checked;
+
+ //view type for search
+ char *view_type;
+
+ //Title of UG
+ char *title;
+
+ // The ip address of connected peer
+ char *peer_ip_address;
+
+ // The service name that supported WFDSP
+ char *service_name;
+
+ // Whether initialize wfd-namager ok
+ bool is_init_ok;
+
+ //timer for deleting progress bar
+ int timer_stop_progress_bar;
+
+ //timer for multi connect reset
+ int timer_multi_reset;
+
+ //if all the items are selected or not
+ bool is_multi_check_all_selected;
+
+ //timer for remove not alive peer
+ int timer_delete_not_alive_peer;
+
+ //wifi direct discovery status
+ int wfd_discovery_status;
+
+ bool is_paused;
+
+#ifdef WFD_DBUS_LAUNCH
+ GCancellable *dbus_cancellable;
+ GDBusConnection *conn;
+#endif
+ Ea_Theme_Color_Table *color_table;
+ Ea_Theme_Font_Table *font_table;
};
-extern Elm_Gen_Item_Class sep_itc;
-extern Elm_Gen_Item_Class sep_itc_end;
-extern Elm_Gen_Item_Class head_itc;
-extern Elm_Gen_Item_Class name_itc;
+extern Elm_Gen_Item_Class device_name_title_itc;
+#ifdef WFD_ON_OFF_GENLIST
+extern Elm_Gen_Item_Class wfd_onoff_itc;
+#endif
+extern Elm_Gen_Item_Class device_name_itc;
extern Elm_Gen_Item_Class title_itc;
+extern Elm_Gen_Item_Class multi_view_title_itc;
extern Elm_Gen_Item_Class peer_itc;
+extern Elm_Gen_Item_Class title_no_device_itc;
extern Elm_Gen_Item_Class noitem_itc;
-extern Elm_Gen_Item_Class help_itc;
-extern Elm_Gen_Item_Class button_itc;
+extern Elm_Gen_Item_Class title_available_itc;
extern Elm_Gen_Item_Class title_conn_itc;
extern Elm_Gen_Item_Class peer_conn_itc;
@@ -231,9 +379,30 @@ extern Elm_Gen_Item_Class peer_busy_itc;
extern Elm_Gen_Item_Class title_multi_connect_itc;
extern Elm_Gen_Item_Class peer_multi_connect_itc;
+extern Elm_Gen_Item_Class select_all_multi_connect_itc;
extern Elm_Gen_Item_Class title_conn_failed_itc;
extern Elm_Gen_Item_Class peer_conn_failed_itc;
+/**
+ * This function let the ug destroy the ug
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ */
+void wfd_destroy_ug(void *data);
+
+/**
+ * This function is called when ON/OFF button is turned ON/OFF
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ * @param[in] object
+ * @param[in] event
+ */
+void _onoff_changed_cb(void *data, Evas_Object *obj, void *event_info);
+void toolbar_language_changed(void *data, Evas_Object *obj, void *event_info);
+void ctxpopup_dismissed_cb(void *data, Evas_Object *obj, void *event_info);
+void wfd_free_nodivice_item(struct ug_data *ugd);
+void discover_cb(int error_code, wifi_direct_discovery_state_e discovery_state, void *user_data);
+
#endif /* __WFD_UG_H__ */
diff --git a/ug-wifidirect/include/wfd_ug_view.h b/ug-wifidirect/include/wfd_ug_view.h
index 2a35949..d4ec29e 100755..100644
--- a/ug-wifidirect/include/wfd_ug_view.h
+++ b/ug-wifidirect/include/wfd_ug_view.h
@@ -21,119 +21,459 @@
#define __WFD_UG_VIEW_H__
#include <glib.h>
-#include <syspopup_caller.h>
-#define EDJDIR "/opt/ug/res/edje/ug-setting-wifidirect-efl"
+#define EDJDIR "/usr/apps/setting-wifidirect-efl/res/edje/ug-setting-wifidirect-efl"
#define WFD_UG_EDJ_PATH EDJDIR"/wfd_ug.edj"
-#define WFD_IMG_DIR "/opt/ug/res/images/ug-setting-wifidirect-efl"
-#define TICKERNOTI_SYSPOPUP "tickernoti-syspopup"
-
+#define WFD_IMG_DIR "/usr/apps/setting-wifidirect-efl/res/images/ug-setting-wifidirect-efl"
/* Define icons */
+#define WFD_ICON_DEVICE_COMPUTER "A09_device_computer.png"
+#define WFD_ICON_DEVICE_INPUT_DEVICE "A09_device_input_device.png"
+#define WFD_ICON_DEVICE_PRINTER "A09_device_printer.png"
+#define WFD_ICON_DEVICE_CAMERA "A09_device_camera.png"
+#define WFD_ICON_DEVICE_STORAGE "A09_device_storage.png"
+#define WFD_ICON_DEVICE_NETWORK_INFRA "A09_device_network_infrastructure.png"
+#define WFD_ICON_DEVICE_DISPLAY "A09_device_display.png"
+#define WFD_ICON_DEVICE_MULTIMEDIA "A09_device_multimedia.png"
+#define WFD_ICON_DEVICE_GAMING "A09_device_gaming.png"
+#define WFD_ICON_DEVICE_TELEPHONE "A09_device_telephone.png"
+#define WFD_ICON_DEVICE_HEADSET "A09_device_headset.png"
+#define WFD_ICON_DEVICE_UNKNOWN "A09_device_unknown.png"
+#define WFD_ICON_DEVICE_BD "U04_device_BD.png"
+#define WFD_ICON_DEVICE_DONGLE "U04_device_Dongle.png"
+#define WFD_ICON_DEVICE_HOME_THEATER "U04_device_Home_Theater.png"
+#define WFD_ICON_DEVICE_STB "U04_device_STB.png"
+
+/* Not support */
+#define WFD_ICON_DEVICE_HEADPHONE "A09_device_headphone.png"
+#define WFD_ICON_DEVICE_MEDICAL "A09_device_Medical.png"
+#define WFD_ICON_DEVICE_MOUSE "A09_device_mouse.png"
-#define WFD_ICON_DEVICE_COMPUTER WFD_IMG_DIR"/A09_device_computer.png"
-#define WFD_ICON_DEVICE_INPUT_DEVICE WFD_IMG_DIR"/A09_device_input_device.png"
-#define WFD_ICON_DEVICE_PRINTER WFD_IMG_DIR"/A09_device_printer.png"
-#define WFD_ICON_DEVICE_CAMERA WFD_IMG_DIR"/A09_device_camera.png"
-#define WFD_ICON_DEVICE_STORAGE WFD_IMG_DIR"/A09_device_storage.png"
-#define WFD_ICON_DEVICE_NETWORK_INFRA WFD_IMG_DIR"/A09_device_network_infrastructure.png"
-#define WFD_ICON_DEVICE_DISPLAY WFD_IMG_DIR"/A09_device_display.png"
-#define WFD_ICON_DEVICE_MULTIMEDIA_DEVICE WFD_IMG_DIR"/A09_device_multimedia_devices.png"
-#define WFD_ICON_DEVICE_GAMING_DEVICE WFD_IMG_DIR"/A09_device_gaming_devices.png"
-#define WFD_ICON_DEVICE_TELEPHONE WFD_IMG_DIR"/A09_device_telephone.png"
-#define WFD_ICON_DEVICE_AUDIO_DEVICE WFD_IMG_DIR"/A09_device_audio_devices.png"
-
-#define WFD_ICON_DEVICE_COMPUTER_CONNECT WFD_IMG_DIR"/A09_device_computer_connect.png"
-#define WFD_ICON_DEVICE_INPUT_DEVICE_CONNECT WFD_IMG_DIR"/A09_device_input_device_connect.png"
-#define WFD_ICON_DEVICE_PRINTER_CONNECT WFD_IMG_DIR"/A09_device_printer_connect.png"
-#define WFD_ICON_DEVICE_CAMERA_CONNECT WFD_IMG_DIR"/A09_device_camera_connect.png"
-#define WFD_ICON_DEVICE_STORAGE_CONNECT WFD_IMG_DIR"/A09_device_storage_connect.png"
-#define WFD_ICON_DEVICE_NETWORK_INFRA_CONNECT WFD_IMG_DIR"/A09_device_network_infrastructure_connect.png"
-#define WFD_ICON_DEVICE_DISPLAY_CONNECT WFD_IMG_DIR"/A09_device_display_connect.png"
-#define WFD_ICON_DEVICE_MULTIMEDIA_DEVICE_CONNECT WFD_IMG_DIR"/A09_device_multimedia_devices_connect.png"
-#define WFD_ICON_DEVICE_GAMING_DEVICE_CONNECT WFD_IMG_DIR"/A09_device_gaming_devices_connect.png"
-#define WFD_ICON_DEVICE_TELEPHONE_CONNECT WFD_IMG_DIR"/A09_device_telephone_connect.png"
-#define WFD_ICON_DEVICE_AUDIO_DEVICE_CONNECT WFD_IMG_DIR"/A09_device_audio_devices_connect.png"
-
-#define WFD_ICON_CONNECTED WFD_IMG_DIR"/A09_Connect.png"
-
-
-enum
-{
- HEAD_TEXT_TYPE_DIRECT,
- HEAD_TEXT_TYPE_DEACTIVATING,
- HEAD_TEXT_TYPE_ACTIVATING,
- HEAD_TEXT_TYPE_ACTIVATED,
- HEAD_TEXT_TYPE_SCANING,
+#define WFD_ICON_DEVICE_MORE_HELP "A09_popup_help.png"
+
+enum {
+ HEAD_TEXT_TYPE_DIRECT,
+ HEAD_TEXT_TYPE_DEACTIVATING,
+ HEAD_TEXT_TYPE_ACTIVATING,
+ HEAD_TEXT_TYPE_ACTIVATED,
};
-enum
-{
- /* User confirm */
- POPUP_TYPE_WIFI_OFF,
- POPUP_TYPE_HOTSPOT_OFF,
+enum {
+ TITLE_CONTENT_TYPE_NONE,
+ TITLE_CONTENT_TYPE_SCANNING,
+ TITLE_CONTENT_TYPE_FOUND,
+};
+
+
+enum {
+ /* User confirm */
+#ifndef MODEL_BUILD_FEATURE_WLAN_CONCURRENT_MODE
+ POPUP_TYPE_WIFI_OFF,
+#endif
+
+ POPUP_TYPE_HOTSPOT_OFF = 1,
- /* Activation */
- POPUP_TYPE_ACTIVATE_FAIL,
- POPUP_TYPE_DEACTIVATE_FAIL,
+ /* Activation */
+ POPUP_TYPE_ACTIVATE_FAIL,
+ POPUP_TYPE_ACTIVATE_FAIL_POLICY_RESTRICTS,
+ POPUP_TYPE_DEACTIVATE_FAIL,
- /* Connection */
- POPUP_TYPE_LINK_TIMEOUT,
- POPUP_TYPE_AUTH_FAIL,
- POPUP_TYPE_LINK_FAIL,
- POPUP_TYPE_UNKNOWN_ERROR,
+ /* Connection */
+ POPUP_TYPE_LINK_TIMEOUT,
+ POPUP_TYPE_AUTH_FAIL,
+ POPUP_TYPE_LINK_FAIL,
+ POPUP_TYPE_UNKNOWN_ERROR,
- POPUP_TYPE_TERMINATE,
+ POPUP_TYPE_INFO,
+ POPUP_TYPE_TERMINATE,
+ POPUP_TYPE_TERMINATE_DEACTIVATE_FAIL,
+ POPUP_TYPE_TERMINATE_NOT_SUPPORT,
- /* Disconnect */
- POP_TYPE_DISCONNECT,
+ /* Disconnect */
+ POP_TYPE_DISCONNECT,
- /* Disconnect All*/
- POP_TYPE_DISCONNECT_ALL,
+ POP_TYPE_CANCEL_CONNECT,
- /* Scan again */
- POP_TYPE_SCAN_AGAIN,
+ POP_TYPE_ACCEPT_CONNECTION,
- /* multi connect */
- POP_TYPE_MULTI_CONNECT_POPUP,
+ /* Scan again */
+ POP_TYPE_SCAN_AGAIN,
- /* Busy device */
- POP_TYPE_BUSY_DEVICE_POPUP,
+ /* multi connect */
+ POP_TYPE_MULTI_CONNECT_POPUP,
+
+ /* Busy device */
+ POP_TYPE_BUSY_DEVICE_POPUP,
+
+ /* Automaticlly turn off */
+ POP_TYPE_AUTOMATIC_TURN_OFF,
};
struct ug_data *wfd_get_ug_data();
+
+/**
+ * This function let the ug create the main view
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ */
void create_wfd_ug_view(void *data);
+
+/**
+ * This function let the ug destroy the main view
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ */
void destroy_wfd_ug_view(void *data);
-void wfd_ug_view_refresh_glitem(void *obj);
-void wfd_ug_view_refresh_button(void *obj, const char *text, int enable);
+
+/**
+ * This function let the ug update the genlist item
+ * @return void
+ * @param[in] gl_item the pointer to genlist item
+ */
+void wfd_ug_view_refresh_glitem(Elm_Object_Item *gl_item);
+
+/**
+ * This function let the ug refresh the attributes of button
+ * @return void
+ * @param[in] tb_item the pointer to the toolbar button
+ * @param[in] text the pointer to the text of button
+ * @param[in] enable whether the button is disabled
+ */
+void wfd_ug_view_refresh_button(Evas_Object *tb_item, const char *text,
+ int enable);
+
+/**
+ * This function let the ug update the peers
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ */
void wfd_ug_view_update_peers(void *data);
+
+/**
+ * This function let the ug free the peers
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ */
void wfd_ug_view_free_peers(void *data);
+
+/**
+ * This function let the ug create a action popup
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ * @param[in] message the pointer to the text of popup
+ * @param[in] popup_type the message type
+ */
void wfd_ug_act_popup(void *data, const char *message, int popup_type);
+
+/**
+ * This function let the ug remove the action popup
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ */
void wfg_ug_act_popup_remove(void *data);
+
+/**
+ * This function let the ug create a warning popup
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ * @param[in] message the pointer to the text of popup
+ * @param[in] popup_type the message type
+ */
void wfd_ug_warn_popup(void *data, const char *message, int popup_type);
-void wfg_ug_warn_popup_remove(void *data);
-int _create_connected_dev_list(void *data);
-int _change_multi_button_title(void *data);
-void _wifid_create_about_view(struct ug_data *ugd);
+/**
+ * This function let the ug create the view for multi connection
+ * @return void
+ * @param[in] ugd the pointer to the main data structure
+ */
void _wifid_create_multiconnect_view(struct ug_data *ugd);
-void _sub_view_back_btn_cb(void *data, Evas_Object * obj, void *event_info);
-void _back_btn_cb(void *data, Evas_Object * obj, void *event_info);
+/**
+ * This function let the ug call it when click 'back' button
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ * @param[in] obj the pointer to the evas object
+ * @param[in] event_info the pointer to the event information
+ */
+Eina_Bool _back_btn_cb(void *data, Elm_Object_Item *it);
+
+/**
+ * This function let the ug call it when click 'scan' button
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ * @param[in] obj the pointer to the evas object
+ * @param[in] event_info the pointer to the event information
+ */
void _scan_btn_cb(void *data, Evas_Object * obj, void *event_info);
-void _wfd_onoff_btn_cb(void *data, Evas_Object *obj, void *event_info);
-void _wifid_create_multibutton_cb(void *data, Evas_Object * obj, void *event_info);
+/**
+ * This function let the ug call it when click 'disconnect' button
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ * @param[in] obj the pointer to the evas object
+ * @param[in] event_info the pointer to the event information
+ */
+void _wfd_ug_disconnect_button_cb(void *data, Evas_Object *obj, void *event_info);
+
+/**
+ * This function let the ug call it when click "Cancel Connection" button
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ * @param[in] obj the pointer to the evas object
+ * @param[in] event_info the pointer to the event information
+ */
+void _wfd_ug_cancel_connection_button_cb(void *data, Evas_Object *obj, void *event_info);
+/**
+ * This function let the ug get the found peers
+ * @return If success, return 0, else return -1
+ * @param[in] ugd the pointer to the main data structure
+ */
int wfd_ug_get_discovered_peers(struct ug_data *ugd);
+
+/**
+ * This function let the ug get the connecting peer mac
+ * @return If success, return 0, else return -1
+ * @param[in] ugd the pointer to the main data structure
+ */
+int wfd_ug_get_connecting_peer(struct ug_data *ugd);
+
+/**
+ * This function let the ug get the connected peers
+ * @return If success, return 0, else return -1
+ * @param[in] ugd the pointer to the main data structure
+ */
int wfd_ug_get_connected_peers(struct ug_data *ugd);
-int wfd_refresh_wifi_direct_state(void* data);
-int wfd_multi_connect_next(void* data);
+/**
+ * This function let the ug get the device status
+ * @return If success, return 0-3(available: 0, connected: 1, busy: 2, connected failed: 3), else return -1
+ * @param[in] ugd the pointer to the main data structure
+ * @param[in] device the pointer to the number of connected failed devices
+ */
+//int wfd_get_device_status(void *data, device_type_s *device);
+
+/**
+ * This function let the ug refresh current status of wi-fi direct
+ * @return If success, return 0, else return -1
+ * @param[in] data the pointer to the main data structure
+ */
+int wfd_refresh_wifi_direct_state(void *data);
+
+/**
+ * This function let the ug free the selected peers in multi connect view
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ */
+void wfd_free_multi_selected_peers(void *data);
+
+/**
+ * This function let the ug stop to connect to selected peer
+ * @return If success, return 0, else return -1
+ * @param[in] data the pointer to the main data structure
+ */
int wfd_stop_multi_connect(void *data);
-gboolean wfd_multi_connect_next_cb(void* data);
+/**
+ * This function let the ug connect to the next selected peer automatically
+ * @return If stop the timer, return false, else return true
+ * @param[in] data the pointer to the main data structure
+ */
+gboolean wfd_multi_connect_next_cb(void *data);
+
+/**
+ * This function let the ug add a dialogue separator
+ * @return the separator item
+ * @param[in] genlist the pointer to the genlist
+ * @param[in] separator_style the style of separator
+ */
+Elm_Object_Item *wfd_add_dialogue_separator(Evas_Object *genlist,
+ const char *separator_style);
+
+/**
+ * This function let the ug free the multi connect devices
+ * @return 0
+ * @param[in] data the pointer to the main data structure
+ */
+int wfd_free_multiconnect_device(struct ug_data *ugd);
+
+/**
+ * This function let the ug update the multi connect devices
+ * @return 0
+ * @param[in] ugd the pointer to the main data structure
+ * @param[in] is_free_all_peers true to free all peers
+ */
+int wfd_update_multiconnect_device(struct ug_data *ugd, bool is_free_all_peers);
+
+/**
+ * This function let the ug create the view for multi connection
+ * @return void
+ * @param[in] ugd the pointer to the main data structure
+ */
+void wfd_create_multiconnect_view(struct ug_data *ugd);
+
+/**
+ * This function let the ug delete search progressbar
+ * @return void
+ * @param[in] user_data the pointer to the main data structure
+ */
+int wfd_delete_progressbar_cb(void *user_data);
+
+/**
+ * This function let the ug insert peer item to genlist
+ * @return int
+ * @param[in] genlist the pointer to genlist
+ * @param[in] item the pointer to item to insert after
+ * @param[in] itc Elm_Gen_Item_Class
+ * @param[in] start_pos the pointer to the start position of peer array
+ * @param[in] peer_for_insert the pointer to the peer to insert
+ * @param[in] callback callback for peer select
+ */
+int insert_gl_item(Evas_Object *genlist, Elm_Object_Item *item,
+ Elm_Gen_Item_Class *itc, device_type_s **start_pos,
+ device_type_s *peer_for_insert, void *callback);
+
+/**
+ * This function let the ug get the insert position for next item
+ * @return item the position to insert after
+ * @param[in] peer the pointer to peer to search
+ * @param[in] pre_item the title item of peer list
+ * @param[in] peer_cnt the count of gl peers
+ */
+Elm_Object_Item *get_insert_postion(device_type_s *peer,
+ Elm_Object_Item *pre_item, int peer_cnt);
+
+/**
+ * This function let the ug find a peer in genlist
+ * @return peer the pointer of peer that found
+ * @param[in] start_pos the start position of peers list
+ * @param[in] mac_addr the mac_addr of peer for search
+ */
+device_type_s *find_peer_in_glist(device_type_s *start_pos, const char *mac_addr);
+
+/**
+ * This function let the ug free gl peers
+ * @return void
+ * @param[in] gl_peers_start the start pointer of peer list that for free
+ */
+void wfd_ug_view_free_peer(device_type_s *gl_peers_start);
+
+/**
+ * This function let the ug exits automatically after successed connection
+ * @return void
+ * @param[in] user_data the pointer to the main data structure
+ */
+void _wfd_ug_auto_exit(void *user_data);
+
+/**
+ * This function let the ug update the buttons of toolbar
+ * @return void
+ * @param[in] ugd the pointer to the main data structure
+ */
+void wfd_ug_update_toolbar(struct ug_data *ugd);
+
+/**
+ * This function let the ug update the available and busy peers
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ */
+void wfd_ug_update_available_peers(void *data);
+
+/**
+ * This function let the ug init the genlist
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ * @param[in] is_free_all_peers true to free all peer items
+ */
+void wfd_ug_view_init_genlist(void *data, bool is_free_all_peers);
+
+/**
+ * This function let the ug delete dead peers
+ * @return void
+ * @param[in] ugd the pointer to the main data structure
+ * @param[in] start_pos the pointer to start of peer list
+ * @param[in] cnt the pointer to the number of peets in list
+ */
+void delete_not_alive_peers(struct ug_data *ugd, device_type_s **start_pos,
+ int *cnt);
+
+/**
+ * This function let the ug mark up the dead peers
+ * @return void
+ * @param[in] ugd the pointer to the main data structure
+ * @param[in] start_pos the pointer to start of peer list
+ */
+void set_not_alive_peers(device_type_s *start_pos);
+
+/**
+ * This function let the ug update connected peers
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ */
+void wfd_ug_update_connected_peers(void *data);
+
+/**
+ * This function let the ug update the multi-connect peers
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ */
+void wfd_ug_view_update_multiconn_peers(void *data);
+
+/**
+ * This function let the ug update the failed peers
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ */
+void wfd_ug_update_failed_peers(void *data);
+
+/**
+ * This function let the ug cancel progressbar stop timer
+ * @return void
+ * @param[in] ugd the pointer to the main data structure
+ */
+void wfd_cancel_progressbar_stop_timer(struct ug_data *ugd);
+
+/**
+ * This function let the ug cancel not-alive devices delete timer
+ * @return void
+ * @param[in] ugd the pointer to the main data structure
+ */
+void wfd_cancel_not_alive_delete_timer(struct ug_data *ugd);
+
+/**
+ * This function let the ug move ctxpopup to specified location
+ * @return void
+ */
+void _ctxpopup_move();
+
+int _create_available_dev_genlist(void *data);
+
+Evas_Object *_create_no_device_genlist(void *data);
+
+Evas_Object *_create_no_device_multiconnect_genlist(struct ug_data *ugd);
+
+/**
+ * This function let the ug create rename popup
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ */
+
+void _gl_rename_device_sel(void *data, Evas_Object *obj, void *event_info);
-void wfd_ug_tickernoti_popup(char *msg);
+#ifdef WFD_ON_OFF_GENLIST
+/**
+ * This function let the ug create on off check
+ * @return void
+ * @param[in] parent the pointer to the naviframe
+ */
+void wfd_ug_create_on_off_check(struct ug_data *ugd);
+#endif
+/**
+ * This function is called after select all button is checked to select all available devices
+ * @return void
+ * @param[in] data the pointer to the main data structure
+ */
+void wfd_genlist_select_all_check_changed_cb(void *data, Evas_Object *obj,
+ void *event_info);
#endif /* __WFD_UG_VIEW_H__ */