4 * Copyright 2012 Samsung Electronics Co., Ltd
6 * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
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 application functions.
24 * @author Sungsik Jang (sungsik.jang@samsung.com)
29 #ifndef __WFD_SYS_POPAPP_MAIN_H__
30 #define __WFD_SYS_POPAPP_MAIN_H__
32 #include <wifi-direct.h>
34 #define PACKAGE "org.tizen.wifi-direct-popup"
35 #define PACKAGE_ALLSHARE_CAST "org.tizen.allshare-cast-popup"
36 #define EDJ_NAME RESDIR"/edje/wifi-direct-popup.edj"
37 #define WFD_MAX_CONNECTED_PEER 7
38 #define WFD_POP_STR_MAX_LEN 256
39 #define NO_ACTION_TIME_OUT 300 /*5min*/
41 #define NOTIFICATION_BUNDLE_PARAM "NotiType"
42 #define NOTIFICATION_BUNDLE_VALUE "WiFi-Direct"
44 #define LOCALE_FILE_NAME "wifi-direct-popup"
45 #define LOCALEDIR "/usr/apps/org.tizen.wifi-direct-popup/res/locale"
46 #define WFD_NOTI_ICON_PATH "/usr/apps/org.tizen.quickpanel/shared/res/noti_icons/Wi-Fi/noti_wifi_direct_auto_off.png"
47 #define WFD_INDICATOR_ICON_PATH "/usr/apps/org.tizen.wifi-direct-popup/res/images/B03_wi-fi_direct_on_connected.png"
48 #define WFD_ACTIVATED_NOTI_ICON_PATH "/usr/apps/org.tizen.wifi-direct-popup/res/images/B03_wi-fi_direct_on_not_connected.png"
49 #define WFD_EDJ_POPUP_PATH "/usr/apps/org.tizen.wifi-direct-popup/res/edje/wfd_popup.edj"
50 #define SCREEN_MIRRIONG_INDICATOR_ICON_PATH "/usr/apps/org.tizen.wifi-direct-popup/res/images/B03_event_screen_mirroring.png"
51 #define SCREEN_MIRRIONG_INDICATOR_PLAY_ICON_PATH "/usr/apps/org.tizen.wifi-direct-popup/res/images/B03_event_screen_mirroring_play.png"
52 #define SCREEN_MIRRIONG_NOTI_ICON_PATH "/usr/apps/org.tizen.wifi-direct-popup/res/images/ug-setting-allshare-cast-efl.png"
54 #define _(s) dgettext(LOCALE_FILE_NAME, s)
55 #define N_(s) dgettext_noop(s)
56 #define S_(s) dgettext("sys_string", s)
58 #define MAX_NO_ACTION_TIME_OUT 300 /*5min*/
59 #define MAX_POPUP_TEXT_SIZE 256
60 #define DEV_NAME_LENGTH 32
61 #define MACSTR_LENGTH 17
66 WFD_POP_TIMER_10 = 10,
67 WFD_POP_TIMER_30 = 30,
68 WFD_POP_TIMER_120 = 120,
72 WFD_POP_APRV_CONNECTION_WPS_PUSHBUTTON_REQ,
73 WFD_POP_APRV_CONNECTION_WPS_DISPLAY_REQ,
74 WFD_POP_APRV_CONNECTION_WPS_KEYPAD_REQ,
77 WFD_POP_PROG_DISCONNECT,
78 WFD_POP_PROG_CONNECT_CANCEL,
79 WFD_POP_PROG_CONNECT_WITH_PIN,
80 WFD_POP_PROG_CONNECT_WITH_KEYPAD,
81 WFD_POP_NOTI_DISCONNECTED,
89 WFD_POP_RESP_APRV_CONNECT_PBC_YES = 1,
90 WFD_POP_RESP_APRV_CONNECT_DISPLAY_OK,
91 WFD_POP_RESP_APRV_CONNECT_KEYPAD_YES,
92 WFD_POP_RESP_APRV_CONNECT_NO,
93 WFD_POP_RESP_PROG_CONNECT_KEYPAD_OK,
94 WFD_POP_RESP_APRV_ENTER_PIN_YES,
95 WFD_POP_RESP_APRV_ENTER_PIN_NO,
98 #ifdef WFD_SCREEN_MIRRORING_ENABLED
100 WFD_POP_SCREEN_MIRROR_NONE,
101 WFD_POP_SCREEN_MIRROR_DISCONNECT_BY_RECONNECT_WIFI_AP,
107 char text[WFD_POP_STR_MAX_LEN];
108 char label1[WFD_POP_STR_MAX_LEN];
109 char label2[WFD_POP_STR_MAX_LEN];
118 char mac_address[18];
119 unsigned int category;
120 bool is_miracast_device;
125 char peer_name[DEV_NAME_LENGTH+1];
126 char peer_addr[MACSTR_LENGTH+1];
127 unsigned int device_type;
129 wifi_direct_wps_type_e wps_type;
130 char wps_pin[PIN_LENGTH+1];
132 } wfd_connection_info_s;
137 Evas_Object *pin_entry;
138 Evas_Object *conformant;
140 Evas_Object *back_grnd;
141 wfd_popup_t *popup_data;
142 uint popup_timeout_handle;
144 wfd_connection_info_s *connection;
147 #ifdef NOT_CONNECTED_INDICATOR_ICON
148 notification_h noti_wifi_direct_on;
150 notification_h noti_wifi_direct_connected;
151 notification_h noti_screen_mirroring_on;
152 notification_h noti_screen_mirroring_play;
153 wfd_device_info_t raw_connected_peers[WFD_MAX_CONNECTED_PEER];
154 int raw_connected_peer_cnt;
157 wifi_direct_state_e wfd_status;
158 int last_wfd_transmit_time;
159 Ecore_Timer *transmit_timer;
161 /* auto deactivation after 5 mins if not connected*/
162 #ifdef WFD_FIVE_MIN_IDLE_DEACTIVATION
163 Ecore_Timer *monitor_timer;
165 wifi_direct_state_e last_wfd_status;
168 Ecore_Event_Handler *rotate_event_handler;
170 #ifdef WFD_SCREEN_MIRRORING_ENABLED
171 int screen_mirroring_state;
175 Elm_Genlist_Item_Class *pin_entry_itc;
176 Elm_Genlist_Item_Class *pin_desc_itc;
177 Elm_Genlist_Item_Class *paswd_itc;
179 /*Mac address for connecting device*/
180 char mac_addr_connecting[MACSTR_LENGTH];
182 /* Down Key Press Handler */
183 Ecore_Event_Handler *downkey_handler;
188 Evas_Object *progressbar;
190 } wfd_wps_display_popup_t;
192 extern wfd_appdata_t *wfd_get_appdata();
195 * This function let the app do initialization
196 * @return If success, return TRUE, else return FALSE
197 * @param[in] ad the pointer to the main data structure
199 bool init_wfd_client(wfd_appdata_t *ad);
202 * This function let the app do de-initialization
203 * @return If success, return TRUE, else return FALSE
204 * @param[in] ad the pointer to the main data structure
206 int deinit_wfd_client(wfd_appdata_t *ad);
208 void wfd_app_util_del_notification(wfd_appdata_t *ad);
209 Eina_Bool wfd_automatic_deactivated_for_connection_cb(void *user_data);
210 int wfd_app_util_deregister_hard_key_down_cb(void *data);
211 int wfd_app_get_connected_peers(void *user_data);
212 int wfd_app_client_switch_off(void *data);
215 * This function let the app destroy the popup
219 extern void wfd_destroy_popup();
222 * This function let the app create a popup
224 * @param[in] type the type of popup
225 * @param[in] userdata the pointer to the data which will be used
227 extern void wfd_prepare_popup(int type, void *userdata);
229 #endif /* __WFD_SYS_POPAPP_MAIN_H__ */