diff options
author | Jaeyun Jeong <jyjeong@samsung.com> | 2013-04-07 16:52:19 +0900 |
---|---|---|
committer | Jaeyun Jeong <jyjeong@samsung.com> | 2013-04-07 16:52:34 +0900 |
commit | 7f1bb30bd4cde45436e32fa0a3650dfb717432e0 (patch) | |
tree | 050d478eb5713ec76c8546085c5951021e46b6be | |
parent | 2ab866301232643bc0f99e26cc6adc1ac2c8d682 (diff) | |
parent | 2bce9c4c47496863fd2f61bfe827953020e66c20 (diff) | |
download | message-app-7f1bb30bd4cde45436e32fa0a3650dfb717432e0.tar.gz message-app-7f1bb30bd4cde45436e32fa0a3650dfb717432e0.tar.bz2 message-app-7f1bb30bd4cde45436e32fa0a3650dfb717432e0.zip |
Merge branch 'master' into tizen_2.1
Change logs:
- Change rotation API.
- Removing feature related with video call.
Change-Id: Ib00905f6d7c54cd2170b13c3079c4bee4b461a14
-rwxr-xr-x | class0/msg-ui-class0-main.c | 41 | ||||
-rwxr-xr-x | class0/msg-ui-class0-main.h | 1 | ||||
-rwxr-xr-x | composer/include/msg-ui-composer-bubble.h | 2 | ||||
-rwxr-xr-x | composer/src/bubble/msg-ui-composer-bubble-callback.c | 23 | ||||
-rwxr-xr-x | composer/src/bubble/msg-ui-composer-bubble-util.c | 35 | ||||
-rwxr-xr-x | dialog/message-dialog.c | 42 | ||||
-rwxr-xr-x | dialog/message-dialog.h | 2 | ||||
-rwxr-xr-x | main/message.c | 77 | ||||
-rwxr-xr-x | main/message.h | 1 | ||||
-rwxr-xr-x | packaging/org.tizen.message.spec | 6 | ||||
-rwxr-xr-x | thread/include/msg-ui-thread-main.h | 1 |
11 files changed, 76 insertions, 155 deletions
diff --git a/class0/msg-ui-class0-main.c b/class0/msg-ui-class0-main.c index f3e4862..56073c0 100755 --- a/class0/msg-ui-class0-main.c +++ b/class0/msg-ui-class0-main.c @@ -33,7 +33,7 @@ static int __msg_ui_class0_create_view(void *data); static void __msg_ui_class0_win_del(void *data, Evas_Object *obj, void *event); static Evas_Object *__msg_ui_class0_create_win(const char *name); static int __msg_ui_class0_show_message (void* data); - +static void __msg_ui_class0_rotation_changed_cb(void *data, Evas_Object *obj, void *event); void msg_ui_class0_exit(void *data) @@ -511,6 +511,13 @@ static bool app_create(void *data) elm_win_resize_object_add(ad->win_main, ad->bg); evas_object_show(ad->bg); + if(elm_win_wm_rotation_supported_get(ad->win_main)) { + int rotation[4] = {0, 90, 180, 270}; + elm_win_wm_rotation_available_rotations_set(ad->win_main, rotation, 4); + ad->cur_rotation = elm_win_rotation_get(ad->win_main); + D_MSG("current rotation %d", ad->cur_rotation); + evas_object_smart_callback_add(ad->win_main, "wm,rotation,changed", __msg_ui_class0_rotation_changed_cb, ad); + } return TRUE; } @@ -584,38 +591,18 @@ static void lang_changed(void * data) elm_object_text_set(ad->right_btn, __RIGHT_BTN_TEXT()); } -static void rotated(app_device_orientation_e orientation, void *data) +static void __msg_ui_class0_rotation_changed_cb(void *data, Evas_Object *obj, void *event) { struct appdata *ad = data; - int r; if (ad == NULL || ad->win_main == NULL) return; - switch (orientation) { - case APP_DEVICE_ORIENTATION_0: - r = 0; - break; - case APP_DEVICE_ORIENTATION_180: - r = 180; - break; - case APP_DEVICE_ORIENTATION_270: - r = 270; - break; - case APP_DEVICE_ORIENTATION_90: - r = 90; - break; - default: - r = -1; - break; - } + int changed_rotation = elm_win_rotation_get(obj); - if (r >= 0) { - if (ad->win_main) { - elm_win_rotation_with_resize_set(ad->win_main, r); - } else { - MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid case !!"); - } + if(changed_rotation != ad->cur_rotation) { + D_MSG("current rotation [%d], changed rotation [%d]", ad->cur_rotation, changed_rotation); + ad->cur_rotation = changed_rotation; } } @@ -636,7 +623,7 @@ int main(int argc, char *argv[]) event_callback.service = app_service; event_callback.low_memory = NULL; event_callback.low_battery = NULL; - event_callback.device_orientation = rotated; + event_callback.device_orientation = NULL; event_callback.language_changed = lang_changed; event_callback.region_format_changed = NULL; diff --git a/class0/msg-ui-class0-main.h b/class0/msg-ui-class0-main.h index 39d1abd..5210ae6 100755 --- a/class0/msg-ui-class0-main.h +++ b/class0/msg-ui-class0-main.h @@ -53,6 +53,7 @@ struct appdata { /* argument */ // int msg_id; Eina_List *msgid_list; + int cur_rotation; msg_struct_t msgInfo; }; diff --git a/composer/include/msg-ui-composer-bubble.h b/composer/include/msg-ui-composer-bubble.h index caf2cdb..117c8f8 100755 --- a/composer/include/msg-ui-composer-bubble.h +++ b/composer/include/msg-ui-composer-bubble.h @@ -287,7 +287,6 @@ void msg_ui_bubble_more_delete_clicked_cb(void *data, Evas_Object *obj, void *ev void msg_ui_bubble_backup_clicked_cb(void *data, Evas_Object *obj, void *event_info); void msg_ui_bubble_ctlbar_call_cb(void *data, Evas_Object *obj, void *event_info); -void msg_ui_bubble_ctlbar_vcall_cb(void *data, Evas_Object *obj, void *event_info); void msg_ui_bubble_ctlbar_email_cb(void *data, Evas_Object *obj, void *event_info); void msg_ui_bubble_ctlbar_add_to_contact_cb(void *data, Evas_Object *obj, void *event_info); void msg_ui_bubble_ctlbar_view_ct_detail_cb(void *data, Evas_Object *obj, void *event_info); @@ -312,7 +311,6 @@ void msg_ui_bubble_anchor_menu_click_cb(void *data, Evas_Object *obj, void *even void msg_ui_bubble_main_layout_clicked_cb(void *data, Evas *e, Evas_Object *obj, void *event_info); void msg_ui_bubble_launch_voice_call(const char *call_num); -void msg_ui_bubble_launch_video_call(const char *call_num); char *msg_ui_bubble_get_trimmed_number(const char *org_num); void msg_ui_bubble_launch_add_to_contact_ug(PMSG_BUBBLE_DATA pData); void msg_ui_bubble_launch_contact_list_ug(PMSG_BUBBLE_DATA pData, int type, const char *str); diff --git a/composer/src/bubble/msg-ui-composer-bubble-callback.c b/composer/src/bubble/msg-ui-composer-bubble-callback.c index 87cb0cf..482ba64 100755 --- a/composer/src/bubble/msg-ui-composer-bubble-callback.c +++ b/composer/src/bubble/msg-ui-composer-bubble-callback.c @@ -459,9 +459,7 @@ static void __msg_ui_bubble_list_popup_selected_cb(void *data, Evas_Object *obj, if (g_strcmp0(label, dgettext("sys_string", "IDS_COM_BODY_CALL")) == 0) { msg_ui_bubble_launch_voice_call(addr_info->address); - } else if (g_strcmp0(label, dgettext("sys_string", "IDS_COM_BODY_VIDEO_CALL")) == 0) { - msg_ui_bubble_launch_video_call(addr_info->address); - } else if (g_strcmp0(label, dgettext("sys_string", "IDS_COM_OPT_ADD_TO_CONTACTS")) == 0) { /* Add to contact with phone number string... */ + } else if (g_strcmp0(label, dgettext("sys_string", "IDS_COM_OPT_ADD_TO_CONTACTS")) == 0) { /* Add to contact with phone number string... */ msg_ui_composer_launch_contact_list_ug(cd, MSG_CT_UG_REQUEST_UPDATE_WITH_NUM, addr_info->address); } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_VIEW_CONTACT")) == 0) { msg_ui_composer_launch_contact_detail_ug(cd, addr_info->contact_id); @@ -565,7 +563,6 @@ static void __msg_ui_bubble_gl_sel(void *data, Evas_Object *obj, void *event_inf if (num_type == WORD_TYPE_NUM) { elm_list_item_append(list, dgettext("sys_string", "IDS_COM_BODY_CALL"), NULL, NULL, __msg_ui_bubble_list_popup_selected_cb, (void *)addr_info); - elm_list_item_append(list, dgettext("sys_string", "IDS_COM_BODY_VIDEO_CALL"), NULL, NULL, __msg_ui_bubble_list_popup_selected_cb, (void *)addr_info); } else if (num_type == WORD_TYPE_EMAIL) { elm_list_item_append(list, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_SEND_EMAIL"), NULL, NULL, __msg_ui_bubble_list_popup_selected_cb, (void *)addr_info); } else { @@ -655,7 +652,6 @@ void msg_ui_bubble_open_title_menu_genlist(PMSG_BUBBLE_DATA bubble_data) if (num_type == WORD_TYPE_NUM) { elm_genlist_item_append(genlist, &(bubble_data->itc_title_single), dgettext("sys_string", "IDS_COM_BODY_CALL"), NULL, ELM_GENLIST_ITEM_NONE, msg_ui_bubble_ctlbar_call_cb, cd); - elm_genlist_item_append(genlist, &(bubble_data->itc_title_single), dgettext("sys_string", "IDS_COM_BODY_VIDEO_CALL"), NULL, ELM_GENLIST_ITEM_NONE, msg_ui_bubble_ctlbar_vcall_cb, cd); } else if (num_type == WORD_TYPE_EMAIL) { elm_genlist_item_append(genlist, &(bubble_data->itc_title_single), dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_SEND_EMAIL"), NULL, ELM_GENLIST_ITEM_NONE, msg_ui_bubble_ctlbar_email_cb, cd); } else { @@ -1153,20 +1149,6 @@ void msg_ui_bubble_ctlbar_call_cb(void *data, Evas_Object *obj, void *event_info msg_ui_bubble_close_title_menu_genlist(pData); } -void msg_ui_bubble_ctlbar_vcall_cb(void *data, Evas_Object *obj, void *event_info) -{ - D_ENTER; - MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj); - MSG_COMPOSER_VIEW_DATA_S *cd = data; - PMSG_BUBBLE_DATA pData = cd->bubble_data; - MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !pData); - - if (pData->addr_list.addr_cnt == 1) - msg_ui_bubble_launch_video_call(pData->addr_list.addr_info[0].address); - - msg_ui_bubble_close_title_menu_genlist(pData); -} - void msg_ui_bubble_ctlbar_add_to_contact_cb(void *data, Evas_Object *obj, void *event_info) { D_ENTER; @@ -1739,9 +1721,6 @@ void msg_ui_bubble_anchor_menu_click_cb(void *data, Evas_Object *obj, void *even service_destroy(svc_handle); } - - } else if (g_strcmp0(label, dgettext("sys_string", "IDS_COM_BODY_VIDEO_CALL")) == 0) { - msg_ui_bubble_launch_video_call(title); } else if (g_strcmp0(label, dgettext("sys_string", "IDS_COM_OPT_ADD_TO_CONTACTS")) == 0) { /* Add to contact with phone number string... */ msg_ui_composer_launch_contact_list_ug(cd, MSG_CT_UG_REQUEST_UPDATE_WITH_NUM, title); } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_VIEW_CONTACT")) == 0) { diff --git a/composer/src/bubble/msg-ui-composer-bubble-util.c b/composer/src/bubble/msg-ui-composer-bubble-util.c index 8b82b2d..2134fb1 100755 --- a/composer/src/bubble/msg-ui-composer-bubble-util.c +++ b/composer/src/bubble/msg-ui-composer-bubble-util.c @@ -48,41 +48,6 @@ void msg_ui_bubble_launch_voice_call(const char *call_num) MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG); } -void msg_ui_bubble_launch_video_call(const char *call_num) -{ - MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG); - MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !call_num); - - char *num_str = msg_ui_bubble_get_trimmed_number(call_num); - - service_h svc_handle = NULL; - char tel_num[DEF_BUF_LEN] = {0,}; - char contact_id[DEF_BUF_LEN_D] = {0,}; - - if (service_create(&svc_handle) < 0 || svc_handle == NULL) { - D_EMSG("service_create() is failed !!"); - } else { - service_set_operation(svc_handle, "http://tizen.org/appcontrol/operation/vt"); - - if (num_str) { - snprintf(tel_num, sizeof(tel_num), "tel:%s", num_str); - service_set_uri(svc_handle, tel_num); - } - snprintf(contact_id, sizeof(contact_id), "%d", -1); - service_add_extra_data(svc_handle, "ctindex", contact_id); - - service_send_launch_request(svc_handle, NULL, NULL); - service_destroy(svc_handle); - } - - if (num_str) { - free(num_str); - num_str = NULL; - } - - MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG); -} - char *msg_ui_bubble_get_trimmed_number(const char *org_num) { char num_str[DEF_BUF_LEN_L] = { 0, }; diff --git a/dialog/message-dialog.c b/dialog/message-dialog.c index 0cdc2bc..add2901 100755 --- a/dialog/message-dialog.c +++ b/dialog/message-dialog.c @@ -22,7 +22,7 @@ static void __msg_ui_dialog_always_ask_left_btn_cb(void *data, Evas_Object *obj, void *event_info); static void __msg_ui_dialog_always_ask_right_btn_cb(void *data, Evas_Object *obj, void *event_info); static int __msg_ui_dialog_create_always_ask_popup(void *data); -static void __msg_ui_dialog_rotate(app_device_orientation_e orientation, void *data); +static void __msg_ui_dialog_rotation_changed_cb(void *data, Evas_Object *obj, void *event); static void __msg_ui_dialog_win_del(void *data, Evas_Object *obj, void *event); static Evas_Object *__msg_ui_dialog_create_win(const char *name); static int parse_opt(int argc, char **argv, struct appdata *ad); @@ -145,38 +145,18 @@ static int __msg_ui_dialog_create_always_ask_popup(void *data) return MSG_UI_RET_SUCCESS; } -static void __msg_ui_dialog_rotate(app_device_orientation_e orientation, void *data) +static void __msg_ui_dialog_rotation_changed_cb(void *data, Evas_Object *obj, void *event) { struct appdata *ad = data; - int r; if (ad == NULL || ad->main_window == NULL) return; - switch (orientation) { - case APP_DEVICE_ORIENTATION_0: - r = 0; - break; - case APP_DEVICE_ORIENTATION_180: - r = 180; - break; - case APP_DEVICE_ORIENTATION_270: - r = 270; - break; - case APP_DEVICE_ORIENTATION_90: - r = 90; - break; - default: - r = -1; - break; - } + int changed_rotation = elm_win_rotation_get(obj); - if (r >= 0) { - if (ad->main_window) { - elm_win_rotation_with_resize_set(ad->main_window, r); - } else { - MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid case !!"); - } + if(changed_rotation != ad->cur_rotation) { + D_MSG("current rotation [%d], changed rotation [%d]", ad->cur_rotation, changed_rotation); + ad->cur_rotation = changed_rotation; } } @@ -240,6 +220,14 @@ static bool app_create(void *data) return FALSE; } + if(elm_win_wm_rotation_supported_get(ad->main_window)) { + int rotation[4] = {0, 90, 180, 270}; + elm_win_wm_rotation_available_rotations_set(ad->main_window, rotation, 4); + ad->cur_rotation = elm_win_rotation_get(ad->main_window); + D_MSG("current rotation %d", ad->cur_rotation); + evas_object_smart_callback_add(ad->main_window, "wm,rotation,changed", __msg_ui_dialog_rotation_changed_cb, ad); + } + return TRUE; } @@ -321,7 +309,7 @@ int main(int argc, char **argv) event_callback.service = app_service; event_callback.low_memory = NULL; event_callback.low_battery = NULL; - event_callback.device_orientation = __msg_ui_dialog_rotate; + event_callback.device_orientation = NULL; event_callback.language_changed = NULL; event_callback.region_format_changed = NULL; diff --git a/dialog/message-dialog.h b/dialog/message-dialog.h index d818462..a03d235 100755 --- a/dialog/message-dialog.h +++ b/dialog/message-dialog.h @@ -45,7 +45,7 @@ struct appdata { MSG_UI_DIALOG_MODE dialog_mode; char *url; char *msg; - + int cur_rotation; }; void msg_ui_dialog_exit(void *data); diff --git a/main/message.c b/main/message.c index 5ea7823..65263e3 100755 --- a/main/message.c +++ b/main/message.c @@ -25,7 +25,6 @@ #include "msg-ui-thread-main.h" #include "msg-ui-common-utility.h" -static void __rotate(app_device_orientation_e orientation, void *data); static void __msg_ui_popup_warning(Evas_Object *parent, const char *msg); static service_h __msg_ui_parse_sms_uri(service_h service, const char *uri); static service_h __msg_ui_parse_mmsto_uri(service_h service, const char *uri); @@ -73,51 +72,45 @@ static void region_changed_cb(void *data) ug_send_event(UG_EVENT_REGION_CHANGE); } -static void device_orientation(app_device_orientation_e orientation, void *data) -{ - D_ENTER; - - struct appdata *ad = data; - if (ad == NULL || ad->win_main == NULL) - return; - - __rotate(orientation, data); -} - -static void __rotate(app_device_orientation_e orientation, void *data) +static void rotation_changed_cb(void *data, Evas_Object *obj, void *event) { D_ENTER; struct appdata *ad = data; int ret = 0; int rot = THREAD_ROTATE_ANGLE_UNKNOWN; + int changed_rotation = elm_win_rotation_get(obj); - switch (orientation) { - case APP_DEVICE_ORIENTATION_0: - rot = THREAD_ROTATE_ANGLE_PORTRAIT; - ret = ug_send_event(UG_EVENT_ROTATE_PORTRAIT); - break; - case APP_DEVICE_ORIENTATION_180: - rot = THREAD_ROTATE_ANGLE_PORTRAIT_UPSIDEDOWN; - ret = ug_send_event(UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN); - break; - case APP_DEVICE_ORIENTATION_270: - rot = THREAD_ROTATE_ANGLE_LANDSCAPE; - ret = ug_send_event(UG_EVENT_ROTATE_LANDSCAPE); - break; - case APP_DEVICE_ORIENTATION_90: - rot = THREAD_ROTATE_ANGLE_LANDSCAPE_UPSIDEDOWN; - ret = ug_send_event(UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN); - break; - default: - rot = THREAD_ROTATE_ANGLE_UNKNOWN; - break; + if(changed_rotation != ad->cur_rotation) { + D_MSG("current rotation [%d], changed rotation [%d]", ad->cur_rotation, changed_rotation); + ad->cur_rotation = changed_rotation; + + switch (changed_rotation) { + case 0: + rot = THREAD_ROTATE_ANGLE_PORTRAIT; + ret = ug_send_event(UG_EVENT_ROTATE_PORTRAIT); + break; + case 90: + rot = THREAD_ROTATE_ANGLE_LANDSCAPE_UPSIDEDOWN; + ret = ug_send_event(UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN); + break; + case 180: + rot = THREAD_ROTATE_ANGLE_PORTRAIT_UPSIDEDOWN; + ret = ug_send_event(UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN); + break; + case 270: + rot = THREAD_ROTATE_ANGLE_LANDSCAPE; + ret = ug_send_event(UG_EVENT_ROTATE_LANDSCAPE); + break; + default: + rot = THREAD_ROTATE_ANGLE_UNKNOWN; + break; + } } - if (rot >= 0) { + if (rot >= 0) msg_ui_thread_rotation_set(ad->thread_data, rot); - elm_win_rotation_with_resize_set(ad->win_main, rot); - } + D_LEAVE; } @@ -1114,7 +1107,14 @@ static bool app_create(void *data) UG_INIT_EFL(ad->win_main, UG_OPT_INDICATOR_ENABLE); elm_win_indicator_mode_set(ad->win_main, ELM_WIN_INDICATOR_SHOW); - __rotate(app_get_device_orientation(), ad); + + if(elm_win_wm_rotation_supported_get(ad->win_main)) { + int rotation[4] = {0, 90, 180, 270}; + elm_win_wm_rotation_available_rotations_set(ad->win_main, rotation, 4); + ad->cur_rotation = elm_win_rotation_get(ad->win_main); + D_MSG("current rotation %d", ad->cur_rotation); + evas_object_smart_callback_add(ad->win_main, "wm,rotation,changed", rotation_changed_cb, ad); + } ad->cbs.layout_cb = layout_cb; ad->cbs.result_cb = result_cb; @@ -1380,7 +1380,6 @@ static void app_service(service_h service, void *data) } else { msg_ui_thread_reset_thread_view(ad->thread_data, service); } - __rotate(app_get_device_orientation(), ad); } } else { MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "show app-service view"); @@ -1498,8 +1497,8 @@ int main(int argc, char *argv[]) event_callback.service = app_service; event_callback.low_memory = NULL; event_callback.low_battery = low_battery_cb; - event_callback.device_orientation = device_orientation; event_callback.language_changed = lang_changed; + event_callback.device_orientation = NULL; event_callback.region_format_changed = region_changed_cb; D_LEAVE; diff --git a/main/message.h b/main/message.h index 78f11ca..18aac2b 100755 --- a/main/message.h +++ b/main/message.h @@ -66,6 +66,7 @@ struct appdata struct ug_cbs cbs; ugdata *composer_data; + int cur_rotation; msg_handle_t msgHandle; void *thread_data; }; diff --git a/packaging/org.tizen.message.spec b/packaging/org.tizen.message.spec index fb53542..1315fe8 100755 --- a/packaging/org.tizen.message.spec +++ b/packaging/org.tizen.message.spec @@ -1,6 +1,6 @@ Name: org.tizen.message Summary: message application -Version: 0.8.47 +Version: 0.8.48 Release: 1 Group: devel License: Samsung @@ -92,6 +92,10 @@ ln -sf /usr/bin/ug-client /usr/ug/bin/msg-composer-efl /usr/share/icons/default/small/*.png %changelog +* Sun Apr 7 2013 Jaeyun Jeong <jyjeong@samsung.com> +- Change rotation API. +- Removing feature related with video call. + * Fri Mar 29 2013 Jaeyun Jeong <jyjeong@samsung.com> - Remove setting menu in message app. diff --git a/thread/include/msg-ui-thread-main.h b/thread/include/msg-ui-thread-main.h index 275ef3b..6dfea7b 100755 --- a/thread/include/msg-ui-thread-main.h +++ b/thread/include/msg-ui-thread-main.h @@ -400,7 +400,6 @@ void msg_ui_thread_panes_handler_unpress_cb(void *data, Evas_Object *obj, void * /* THREAD UTILS */ int msg_ui_thread_launch_voice_call(const char *call_num); -void msg_ui_thread_launch_video_call(const char *call_num); void msg_ui_thread_launch_setting(PMSG_THREAD_LIST_DATA pListData); void msg_ui_thread_launch_viewer_ug(PMSG_THREAD_LIST_DATA pListData, int nMsgId); void msg_ui_thread_launch_msg_detail_view(PMSG_THREAD_LIST_DATA pListData, int msgID, int addrCnt, PMSG_APP_THREAD_ADDR_INFO_S *addr_info); |