From: @CHENG <2393524978@qq.com> Date: Fri, 17 May 2024 07:05:02 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=9606ced33b5c8cddc7566e4195e9c9faaa469baa;p=mirrors%2FASR3603_Z5_DS.git gengxin --- diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial_element.c b/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial_element.c index 959d2c20..d0562dea 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial_element.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial_element.c @@ -656,7 +656,9 @@ static void dial_update_canvas_label(watch_element_base_t * base) uint32_t signal_value = 0; if(true == watch_modem_sim_present_check_req()) { - signal_value = watch_modem_get_signal_bar_req() * 20; + signal_value = watch_modem_get_signal_bar_req() * 25; // four levels + if(100 < signal_value) + signal_value = 100; } snprintf(infotxt, len, "%d%%", signal_value); dial_create_canvas_text(infotxt, label_dsc->label_font, label_dsc->text_color, pos.x + label_dsc->text_pos.x, pos.y + label_dsc->text_pos.y); diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_jrtc_client_hzch.c b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_jrtc_client_hzch.c index e944476b..be3c0dfc 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_jrtc_client_hzch.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_jrtc_client_hzch.c @@ -5,8 +5,6 @@ #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ -#if 1 - typedef enum jrtc_state video_call_jrtc_state_e; typedef enum jrtc_error video_call_jrtc_error_e; typedef struct jrtc_image_t video_call_jrtc_image_t; @@ -143,15 +141,28 @@ static void mmi_video_call_jrtc_on_state(lv_task_t * task) case JRTC_TALKING: mmi_vc_call_action_connected(); - /* Get image */ - if (MODEM_VIDEO_CALL_TYPE_VIDEO == mmi_video_call_params_type_get()) + if(1 == mmi_vc_call_referral_flag_get()) + { + lv_obj_set_hidden(mmi_vc_call_get_ext()->canvas, true); + lv_obj_set_hidden(mmi_vc_call_get_ext()->img_referral, false); + lv_obj_set_hidden(mmi_vc_call_get_ext()->btn_referral, false); + } + else { - void *buf = mmi_video_call_phone_get_video_buffer(); - if(voip_jrtc_get_image(buf)) + lv_obj_set_hidden(mmi_vc_call_get_ext()->canvas, false); + lv_obj_set_hidden(mmi_vc_call_get_ext()->img_referral, true); + lv_obj_set_hidden(mmi_vc_call_get_ext()->btn_referral, true); + + /* Get image */ + if (MODEM_VIDEO_CALL_TYPE_VIDEO == mmi_video_call_params_type_get()) { - lv_canvas_set_buffer(mmi_vc_call_get_ext()->canvas, buf, canvas_width, canvas_heigh, LV_IMG_CF_TRUE_COLOR); - } - } + void *buf = mmi_video_call_phone_get_video_buffer(); + if(voip_jrtc_get_image(buf)) + { + lv_canvas_set_buffer(mmi_vc_call_get_ext()->canvas, buf, canvas_width, canvas_heigh, LV_IMG_CF_TRUE_COLOR); + } + } + } break; default: @@ -315,256 +326,5 @@ static uint8_t voip_jrtc_get_image(void * preview_buf) return ret; } - -#else -typedef enum jrtc_state video_call_jrtc_state_e; -typedef enum jrtc_error video_call_jrtc_error_e; -typedef struct jrtc_image_t video_call_jrtc_image_t; - -typedef struct -{ - void /*lv_task_t*/ *state_task; - video_call_jrtc_image_t txframe; - video_call_jrtc_image_t rxframe; - void* jrtc_ptr; - TIMER_ID closed_timer_id; - uint8_t closing; -} MMI_VIDEO_CALL_JRTC_T; - - -static MMI_VIDEO_CALL_JRTC_T s_video_call_jrtc; - - -static uint8_t voip_jrtc_get_image(void * preview_buf); - -extern UINT32 OsaGetTicks(void *pForFutureUse); - - -void mmi_video_call_jrtc_config_init_00(void) -{ -#ifdef __VIDEO_CALL_TEST__ - char appkey[24+1] = "dc1db81c19d1da4f5fb4a197"; - char key[16+1] = "K75A1vS562671d38"; - char uid[64+1] = {0}; - char tokens[128+1] = ""; - - char imei[16] = {0}; - app_adp_get_imei_req(imei); - strncpy(uid, imei, 16); - - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - jrtc_config(appkey, uid, key, tokens); - Hal_Mem_Set(&s_video_call_jrtc, 0x0, sizeof(MMI_VIDEO_CALL_JRTC_T)); -#endif -} - -void mmi_video_call_jrtc_config_init(char * t_appkey, char * t_secret, char * t_tokens, char * t_uid) -{ -#ifndef __VIDEO_CALL_TEST__ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d,%s\n", __FUNCTION__, __LINE__, strlen(t_appkey), t_appkey); - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d,%s\n", __FUNCTION__, __LINE__, strlen(t_uid), t_uid); - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d,%s\n", __FUNCTION__, __LINE__, strlen(t_secret), t_secret); - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d,%s\n", __FUNCTION__, __LINE__, strlen(t_tokens), t_tokens); - - jrtc_config(t_appkey, t_uid, t_secret, t_tokens); - Hal_Mem_Set(&s_video_call_jrtc, 0x0, sizeof(MMI_VIDEO_CALL_JRTC_T)); -#endif -} - -static void mmi_video_call_jrtc_clean_up(void) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - if(NULL != s_video_call_jrtc.state_task) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - lv_task_del(s_video_call_jrtc.state_task); - } - - Hal_Mem_Set(&s_video_call_jrtc, 0x0, sizeof(MMI_VIDEO_CALL_JRTC_T)); -} - -static void mmi_video_call_jrtc_timeout_cb(void * para) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - mmi_video_call_jrtc_clean_up(); -} - -static void mmi_video_call_jrtc_on_state(lv_task_t * task) -{ - static int8_t oldstate = -1; - video_call_jrtc_state_e state = jrtc_state(s_video_call_jrtc.jrtc_ptr); - - if(state != oldstate) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: oldstate=%d,state=%d\n", __FUNCTION__, __LINE__, oldstate, state); - } - - switch(state) - { - case JRTC_CLOSED: - if((NULL != s_video_call_jrtc.jrtc_ptr) && (NULL == s_video_call_jrtc.closed_timer_id)) - { - video_call_jrtc_error_e err = jrtc_error(s_video_call_jrtc.jrtc_ptr); - - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d\n", __FUNCTION__, __LINE__, err); - - if(!s_video_call_jrtc.closing) - { - jrtc_close(s_video_call_jrtc.jrtc_ptr, JRTC_ENIL); - s_video_call_jrtc.closing = 1; - } - - s_video_call_jrtc.closed_timer_id = Hal_Timer_Start(100, mmi_video_call_jrtc_timeout_cb, NULL, 0); - } - - if(MMI_VIDEO_CALL_STATE_NONE != mmi_video_call_params_state_get()) - { - mmi_vc_ring_off_screen(); - } - break; - - case JRTC_LEAVING: - break; - - case JRTC_OPENED: - break; - - case JRTC_JOINING: - break; - - case JRTC_JOINED: - break; - - case JRTC_TALKING: - mmi_vc_call_action_connected(); - - /* Get image */ - if (MODEM_VIDEO_CALL_TYPE_VIDEO == mmi_video_call_params_type_get()) - { - void *buf = mmi_video_call_phone_get_video_buffer(); - if(voip_jrtc_get_image(buf)) - { - lv_canvas_set_buffer(mmi_vc_call_get_ext()->canvas, buf, canvas_width, canvas_heigh, LV_IMG_CF_TRUE_COLOR); - } - } - break; - - default: - break; - } - - oldstate = state; -} - - -static int8_t mmi_video_call_jrtc_open(char * t_number, char * t_ticket) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %s\n", __FUNCTION__, __LINE__, t_number); - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %s\n", __FUNCTION__, __LINE__, t_ticket); - - if (NULL == t_number || NULL == t_ticket) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: params error\n", __FUNCTION__, __LINE__); - mmi_video_call_jrtc_clean_up(); - return -1; - } - - Hal_Mem_Set(&s_video_call_jrtc, 0, sizeof(MMI_VIDEO_CALL_JRTC_T)); - - s_video_call_jrtc.rxframe.width = s_video_call_jrtc.txframe.width = 176; - s_video_call_jrtc.rxframe.height = s_video_call_jrtc.txframe.height = 144; - s_video_call_jrtc.rxframe.fps = s_video_call_jrtc.txframe.fps = 8; // 10; - s_video_call_jrtc.rxframe.kbps = s_video_call_jrtc.txframe.kbps = 120; // 240; - - //mci_videocall_camera_set_sensor(1); // 0:rear camera; 1:front camera - - s_video_call_jrtc.jrtc_ptr= jrtc_open(t_number, t_ticket, &s_video_call_jrtc.rxframe, &s_video_call_jrtc.txframe); - - if (!s_video_call_jrtc.jrtc_ptr) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - mmi_video_call_jrtc_clean_up(); - return -1; - } - jrtc_activate(s_video_call_jrtc.jrtc_ptr, JRTC_AUDIO); - - s_video_call_jrtc.state_task = lv_task_create(mmi_video_call_jrtc_on_state, VIDEO_RENDER_PERIOD, LV_TASK_PRIO_HIGH, NULL); - return 0; -} - -int8_t mmi_video_call_dial_req(char * t_number, char * t_ticket) -{ - int8_t ret = -1; - - if (NULL == s_video_call_jrtc.jrtc_ptr) - { - ret = mmi_video_call_jrtc_open(t_number, t_ticket); - } - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %p, %d\n", __FUNCTION__, __LINE__, s_video_call_jrtc.jrtc_ptr, ret); - - return ret; -} - -void mmi_video_call_hangup_req(BOOL bye) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, bye); - - mmi_vc_call_operate_send_to_server(); - - if (NULL != s_video_call_jrtc.jrtc_ptr) - { - video_call_jrtc_error_e err = (TRUE == bye) ? JRTC_EBYE : JRTC_EAUDIOCALL; - - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %p,%d\n", __FUNCTION__, __LINE__, s_video_call_jrtc.jrtc_ptr, err); - - if(!s_video_call_jrtc.closing) - { - jrtc_close(s_video_call_jrtc.jrtc_ptr, err); - s_video_call_jrtc.closing = 1; - } - } - else - { - mmi_vc_ring_off_screen(); - } -} - - -//extern unsigned yuv420_scale(int src_width, int src_height, int dst_width, int dst_height, unsigned char *src_buf, unsigned char *dst_buf, unsigned char semi); -//extern unsigned rgb565_scale(int32_t src_width, int32_t src_height, int32_t dst_width, int32_t dst_height, uint8_t *src_buf, uint8_t *dst_buf); -//extern void yuv420_2_rgb565(int width, int height, const unsigned char *src, unsigned short *dst, unsigned semi); - -static uint8_t voip_jrtc_get_image(void * preview_buf) -{ - uint8_t ret = 0; - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - LV_ASSERT_MEM(ext); - - video_call_jrtc_image_t * frame = NULL; - if(ext->local_remote_switch_flag == VOIP_REMOTE_SWITCH_REMOTE) - frame = &s_video_call_jrtc.rxframe; - else - frame = &s_video_call_jrtc.txframe; - - if (frame->put != frame->get) { -#if (ENABLE_VIDEO_SCALE == 0) - yuv420_2_rgb565(frame->width, frame->height, frame->data, preview_buf, frame->format); -#else - Hal_Yuv420_Render(frame->width, frame->height, canvas_width, canvas_heigh, frame->data, preview_buf, frame->format); -#endif - - frame->get = frame->put; - ret = 1; - voip_fps_check(frame->fps); - } - - return ret; -} -#endif - #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.h b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.h index 1f311216..1cf7dad3 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.h @@ -199,6 +199,10 @@ typedef struct { enum enum_canvas_button_hidden_flag canvas_button_hidden_flag; lv_obj_t * signal_weak_label; lv_obj_t * canvas; +#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ + lv_obj_t * img_referral; + lv_obj_t * btn_referral; +#endif }lv_vc_call_obj_ext_t; diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_hzch.c b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_hzch.c index f64a70f0..0653c4d5 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_hzch.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_hzch.c @@ -6,2014 +6,6 @@ #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ - -#if 1 - -//static lv_signal_cb_t ancestor_signal; -#if VIDEO_SIGNAL_CHECK -static lv_task_t * signal_check_task = NULL; -#endif -static lv_task_t * rat_check_task = NULL; - -static MMI_VIDEO_CALL_PARAMS_T s_video_call_params = {0}; -lv_color_t g_cbuf[canvas_width * canvas_heigh + 8] __attribute__((aligned(8))); - -static uint8_t s_vc_contact_selected_index = 0; - -static char s_video_call_ticket[MMI_WATCH_VC_TICKET_LEN] = {0}; -static char s_video_call_tokens[MMI_WATCH_VC_TOKENS_LEN] = {0}; - - -/********************** -* STATIC PROTOTYPES -**********************/ -static void voip_phone_left_slide_callback(lv_obj_t * obj); -static void voip_phone_right_slide_callback(lv_obj_t * obj); -static void voip_phone_down_slide_callback(lv_obj_t * obj); -static void voip_volume_btn_action(lv_obj_t * obj, lv_event_t e); -static void voip_slider_action(lv_obj_t * slider, lv_event_t e); -static void voip_phone_obj_hide_anim_end(lv_anim_t * anim); -static void voip_anim_fp_dialing_ring(lv_obj_t * obj, int32_t x); -static void voip_set_volume_when_slider_act(void); -static void voip_local_remote_switch_action(lv_obj_t * btn, lv_event_t e); -static void canvas_button_hidden_event_cb(lv_obj_t * obj, lv_event_t e); -static void voip_signal_check_start(void * ext); -static void voip_signal_check_stop(void); -static bool is_rat_gsm(void); -static void voip_rat_check_start(void); -static void voip_rat_check_stop(void); - - -void mmi_vc_audio_ctrl_callback(AUDIO_CTRL_PRIORITY priority) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, priority); - - if(AUDIO_CTRL_PRIORITY_2 > priority) - { - lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VOIPPHONE); - if(activity_obj == NULL) - { - return; - } - mmi_vc_activity_destroy_req(); - Hal_Vibrator_Play_End(); - Hal_Tone_Play_End(); - Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_2); - } -} - -void * mmi_video_call_phone_get_video_buffer() -{ - return g_cbuf; -} - -/********************** -* STATIC FUNCTIONS -**********************/ -static lv_obj_t * mmi_vc_call_get_activity_obj(void) -{ - lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VOIPPHONE); - - return(activity_obj); -} - -static lv_obj_t * mmi_vc_call_get_obj(void) -{ - lv_obj_t * watch_obj = NULL; - - lv_obj_t * activity_obj = mmi_vc_call_get_activity_obj(); - - if(activity_obj) - { - lv_watch_get_child_obj(activity_obj, lv_watch_obj_signal, &watch_obj); - } - - return(watch_obj); -} - -lv_vc_call_obj_ext_t * mmi_vc_call_get_ext(void) -{ - lv_vc_call_obj_ext_t * ext = NULL; - lv_obj_t * watch_obj = mmi_vc_call_get_obj(); - - if(watch_obj) - { - ext = lv_obj_get_ext_attr(watch_obj); - } - - return(ext); -} - -static void mmi_vc_call_params_clean(void) -{ - _lv_memset_00(&s_video_call_params, sizeof(MMI_VIDEO_CALL_PARAMS_T)); -} - -static void mmi_vc_call_screen_clean(void) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - lv_obj_t * slider_activit_obj = lv_watch_get_activity_obj(ACT_ID_SLIDER); - - if(slider_activit_obj) - { - lv_obj_del(slider_activit_obj); - } - - lv_obj_t * activity_obj = mmi_vc_call_get_activity_obj(); - if(activity_obj) - { - lv_obj_del(activity_obj); - } -} - -static void voip_phone_left_slide_callback(lv_obj_t * obj) -{ - printf("%s %d\n", __FUNCTION__, __LINE__); - if((MMI_VIDEO_CALL_STATE_CALLING == s_video_call_params.state) - && (MODEM_VIDEO_CALL_TYPE_VIDEO == s_video_call_params.call_type)) - { - voip_local_remote_switch_action(NULL, LV_EVENT_CLICKED); - } -} - -static void voip_phone_right_slide_callback(lv_obj_t * obj) -{ - printf("%s %d\n", __FUNCTION__, __LINE__); - mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); -} - -static void voip_phone_down_slide_callback(lv_obj_t * obj) -{ - printf("%s %d\n", __FUNCTION__, __LINE__); - voip_volume_btn_action(NULL, LV_EVENT_CLICKED); -} - -static void voip_slider_action(lv_obj_t * slider, lv_event_t e) -{ - if(e == LV_EVENT_VALUE_CHANGED) - { - printf("%s %d\n", __FUNCTION__, __LINE__); - - uint8_t v = lv_slider_get_value(slider); - - // set speaker volume - if(!Hal_Set_BT_Audio_Path((HAL_SPEAKER_GAIN)v)) - Hal_Call_Speaker(HAL_CALL_SPK_ON, (HAL_SPEAKER_GAIN)v); - s_video_call_params.speaker_volume = v; - } -} - -static void voip_volume_btn_action(lv_obj_t * obj, lv_event_t e) -{ - if(LV_EVENT_CLICKED != e) { - return; - } - - printf("%s %d\n", __FUNCTION__, __LINE__); - slider_create(NULL, SETTING_VOIP_SPEAKER, 40, voip_slider_action); -} - -static void mmi_vc_get_time_elaps(uint32_t last_time, char * str, int8_t size) -{ - hal_rtc_t rtc_curr; // current rtc time - uint32_t second_curr = 0; // seconds of current time - - Hal_Rtc_Gettime(&rtc_curr); - second_curr = time_to_seconds(&rtc_curr); - - uint32_t elaps = second_curr - last_time; - uint32_t seconds = elaps % 60; - uint32_t minutes = elaps / 60; - uint32_t hours = minutes / 60; - minutes = minutes % 60; - - if(hours == 0) - snprintf(str, size, "%.2d:%.2d", minutes, seconds); - else - snprintf(str, size, "%.2d:%.2d:%.2d", hours, minutes, seconds); -} - -static lv_obj_t * mmi_vc_ring_off_content_create(lv_obj_t * par) -{ - printf("%s %d\n", __FUNCTION__, __LINE__); - if(par == NULL) { - par = lv_scr_act(); - } - - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - LV_ASSERT_MEM(ext); - if(ext == NULL) { - return(NULL); - } - - lv_obj_t * obj = lv_obj_create(par, NULL); - LV_ASSERT_MEM(obj); - if(obj == NULL) { - return(NULL); - } - lv_obj_set_size(obj, lv_obj_get_width(par), lv_obj_get_height(par)); - lv_obj_add_style(obj, LV_OBJ_PART_MAIN, &lv_style_transp_tight); - - lv_obj_t * content = lv_cont_create(obj, NULL); - LV_ASSERT_MEM(content); - if(content == NULL) { - return(NULL); - } - lv_obj_set_style_local_radius(content, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 15); - //lv_obj_add_style(content, LV_OBJ_PART_MAIN, &lv_watch_cont_opa1); - lv_obj_set_size(content, LV_HOR_RES - 40, 50); - lv_obj_align(content, obj, LV_ALIGN_CENTER, 0, -10); - lv_cont_set_layout(content, LV_LAYOUT_CENTER); - lv_obj_set_click(content, false); - - lv_obj_t * label = lv_label_create(content, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); // &lv_watch_font20); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - - if(is_rat_gsm()) - { - lv_label_set_text_id(label, WATCH_TEXT_ID_NETWORK_WRONG); - } - else - { - if(ext->vc_ui == MMI_VC_UI_CONNECTED) - { - char tmp[20] = ""; - char str[30] = ""; - mmi_vc_get_time_elaps(ext->connect_start_time, tmp, 20); - snprintf(str, 30, "%s(%s)", (char *)lv_lang_get_text(WATCH_TEXT_ID_RING_OFF), tmp); - lv_label_set_text(label, str); - } - else - { - lv_label_set_text_id(label, WATCH_TEXT_ID_RING_OFF); - } - } - - lv_obj_set_click(label, false); - - return(obj); -} - -static void voip_anim_fp_connecting_ring(lv_obj_t * obj, int32_t x) -{ - if(obj != NULL) { - lv_obj_set_x(obj, x); - } -} - -static void mmi_vc_connecting_animation(lv_obj_t * par) -{ - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - - LV_ASSERT_MEM(ext); - if(ext == NULL) { - return; - } - - lv_obj_t * img = lv_img_create(mmi_vc_call_get_obj(), NULL); - lv_img_set_src(img, LV_SYMBOL_LOOP); - lv_obj_add_style(img, LV_OBJ_PART_MAIN, &lv_watch_image); - lv_obj_set_style_local_text_font(img, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_THEME_WATCH_NIGHT_SYMBOL_NORMAL); - lv_obj_set_y(img, lv_obj_get_y(par) + lv_obj_get_y(lv_obj_get_parent(par))); - ext->phone_animation_obj = img; - - /*Create an animation to move the button continuously left to right*/ - lv_anim_t a; - lv_anim_path_t path; - lv_anim_value_t start = lv_obj_get_x(par) + lv_obj_get_width(par) + 6; - lv_anim_value_t end = start + 30; - - lv_anim_path_init(&path); - lv_anim_path_set_cb(&path, lv_anim_path_linear); - - lv_anim_init(&a); - lv_anim_set_var(&a, img); - lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)voip_anim_fp_connecting_ring); - lv_anim_set_path(&a, &path); - lv_anim_set_values(&a, start, end); - lv_anim_set_time(&a, 400); - lv_anim_set_playback_time(&a, 400); - lv_anim_set_playback_delay(&a, 0); - lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE); - lv_anim_set_repeat_delay(&a, 500); - - lv_anim_start(&a); -} - -static void voip_anim_fp_dialing_ring(lv_obj_t * obj, int32_t x) -{ - if(obj != NULL) { - lv_obj_set_x(obj, x); - } -} - -static void mmi_vc_dialing_animation(lv_obj_t * par) -{ - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - - LV_ASSERT_MEM(ext); - if(ext == NULL) { - return; - } - - lv_obj_t * img = lv_img_create(mmi_vc_call_get_obj(), NULL); - lv_img_set_src(img, LV_SYMBOL_RIGHT); - lv_obj_add_style(img, LV_OBJ_PART_MAIN, &lv_watch_image); - lv_obj_set_style_local_text_font(img, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_THEME_WATCH_NIGHT_SYMBOL_NORMAL); - lv_obj_set_y(img, lv_obj_get_y(par) + lv_obj_get_y(lv_obj_get_parent(par))); - ext->phone_animation_obj = img; - - /*Create an animation to move the button continuously left to right*/ - lv_anim_t a; - lv_anim_path_t path; - lv_anim_value_t start = lv_obj_get_x(par) + lv_obj_get_width(par) + 6; - lv_anim_value_t end = start + 30; - - lv_anim_path_init(&path); - lv_anim_path_set_cb(&path, lv_anim_path_linear); - - lv_anim_init(&a); - lv_anim_set_var(&a, img); - lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)voip_anim_fp_dialing_ring); - lv_anim_set_path(&a, &path); - lv_anim_set_values(&a, start, end); - lv_anim_set_time(&a, 400); - lv_anim_set_playback_time(&a, 400); - lv_anim_set_playback_delay(&a, 0); - lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE); - lv_anim_set_repeat_delay(&a, 500); - - lv_anim_start(&a); -} - -static void mmi_vc_ring_animation(lv_obj_t * par) -{ - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - - LV_ASSERT_MEM(ext); - if(ext == NULL) { - return; - } - - lv_obj_t * img = lv_img_create(mmi_vc_call_get_obj(), NULL); - lv_img_set_src(img, LV_SYMBOL_LEFT); - lv_obj_add_style(img, LV_OBJ_PART_MAIN, &lv_watch_image); - lv_obj_set_style_local_text_font(img, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_THEME_WATCH_NIGHT_SYMBOL_NORMAL); - lv_obj_set_y(img, lv_obj_get_y(par) + lv_obj_get_y(lv_obj_get_parent(par))); - ext->phone_animation_obj = img; - - /*Create an animation to move the button continuously left to right*/ - lv_anim_t a; - lv_anim_path_t path; - lv_anim_value_t start = lv_obj_get_x(par) - 20; - lv_anim_value_t end = start - 30; - - lv_anim_path_init(&path); - lv_anim_path_set_cb(&path, lv_anim_path_linear); - - lv_anim_init(&a); - lv_anim_set_var(&a, img); - lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)voip_anim_fp_dialing_ring); - lv_anim_set_path(&a, &path); - lv_anim_set_values(&a, start, end); - lv_anim_set_time(&a, 400); - lv_anim_set_playback_time(&a, 400); - lv_anim_set_playback_delay(&a, 0); - lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE); - lv_anim_set_repeat_delay(&a, 500); - - lv_anim_start(&a); -} - -static void mmi_vc_anim_fp_connected(lv_anim_t * anim) -{ - lv_obj_t * obj = (lv_obj_t *)anim->var; - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - - LV_ASSERT_MEM(ext); - if(ext == NULL) { - return; - } - - char str[20] = ""; - mmi_vc_get_time_elaps(ext->connect_start_time, str, 20); - if(obj) { - lv_label_set_text(obj, str); - } -} - -static void mmi_vc_connected_animation(lv_obj_t * obj) -{ - lv_anim_t a; - lv_anim_path_t path; - - lv_anim_path_init(&path); - lv_anim_path_set_cb(&path, lv_anim_path_step); - - lv_anim_init(&a); - lv_anim_set_var(&a, obj); - lv_anim_set_start_cb(&a, (lv_anim_ready_cb_t)mmi_vc_anim_fp_connected); - lv_anim_set_path(&a, &path); - lv_anim_set_time(&a, 1); - lv_anim_set_playback_time(&a, 0); - lv_anim_set_playback_delay(&a, 0); - lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE); - lv_anim_set_repeat_delay(&a, 1000); - - lv_anim_start(&a); -} - -static void mmi_vc_ring_off_obj_hide_anim_end(lv_anim_t * anim) -{ - (void)anim; - printf("%s %d\n", __FUNCTION__, __LINE__); - - mmi_vc_call_screen_clean(); -} - -void mmi_vc_ring_off_screen(void) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - // stop playing tone - Hal_Tone_Play_End(); - Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_2); - - // stop timer - mmi_vc_all_timer_stop(); - - // - voip_signal_check_stop(); - voip_rat_check_stop(); - - // create ring off UI - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - if(NULL != ext) - { - //if(ext->vc_ui == MMI_VC_UI_INCOMING || ext->vc_ui == MMI_VC_UI_DIALING) - { - if(ext->phone_status_label) - { - //lv_label_set_text(ext->phone_status_label, ""); - lv_obj_set_hidden(ext->phone_status_label, true); - } - } - mmi_vc_ring_off_content_create(mmi_vc_call_get_obj()); - - if(ext->phone_animation_obj) - { - lv_obj_del(ext->phone_animation_obj); - ext->phone_animation_obj = NULL; - } - - /* set speaker volume to nv when leaving activiry's slider */ - voip_set_volume_when_slider_act(); - - /* phone cleanup when anim end*/ - lv_anim_t a; - lv_anim_init(&a); - lv_anim_set_var(&a, mmi_vc_call_get_obj()); - lv_anim_set_ready_cb(&a, (lv_anim_ready_cb_t)mmi_vc_ring_off_obj_hide_anim_end); - lv_anim_set_time(&a, MMI_VC_RING_OFF_ANIM_TIMEOUT); - lv_anim_start(&a); - } - - if(MMI_MODEM_CALL_STATE_NULL != phone_get_call_state()) - { - printf("%s tele call is on going, keep para of audio\n", __FUNCTION__); - Hal_Set_Voice_Call_Status(VOICE_CALL_END); - Hal_Disconnect_BT_Audio_Path(); - } - watch_wakeup_time_reset(); - - mmi_vc_call_params_clean(); -} - -static bool mmi_vc_check_mo_permission(void) -{ - if((!watch_modem_sim_present_check_req()) - || (MMI_MODEM_SIGNAL_BAR_0 == watch_modem_get_signal_bar_req()) -// || (MODEM_VIDEO_CALL_REG_OK != watch_modem_video_call_get_reg_stat_req()) - || (is_rat_gsm()) - ) - { - return false; - } - - return true; -} - -static void voip_local_remote_switch_action(lv_obj_t * btn, lv_event_t e) -{ - if(LV_EVENT_CLICKED != e) { - return; - } - - printf("%s %d\n", __FUNCTION__, __LINE__); - lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VOIPPHONE); - if(!activity_obj) { - return; - } - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - if(!ext) { - return; - } - if(ext->local_remote_switch_flag == VOIP_REMOTE_SWITCH_NULL) { - return; - } - if(ext->local_remote_switch_flag == VOIP_REMOTE_SWITCH_REMOTE) { - ext->local_remote_switch_flag = VOIP_REMOTE_SWITCH_LOCAL; - } else { - ext->local_remote_switch_flag = VOIP_REMOTE_SWITCH_REMOTE; - } -} - -static lv_res_t video_call_element_signal_func(lv_obj_t * element, lv_signal_t sign, void * param) -{ - lv_res_t res; - - //printf("%s, sign=%d\n", __FUNCTION__, sign); - /* if not click signs, invoke ancient handler and return */ - if(sign != LV_SIGNAL_PRESSING && sign != LV_SIGNAL_PRESSED && sign != LV_SIGNAL_RELEASED && sign != LV_SIGNAL_PRESS_LOST) { - /* Include the ancient signal function */ - lv_signal_cb_t sign_func = (lv_signal_cb_t)(lv_obj_get_user_data(element).user_data); - res = sign_func(element, sign, param); - if(res != LV_RES_OK) { - return(res); - } - - return(LV_RES_OK); - } - - lv_obj_t * obj = lv_obj_get_parent(element); - while(obj) { - if(lv_obj_get_signal_cb(obj) != lv_watch_obj_signal) { - obj = lv_obj_get_parent(obj); - } else { - break; - } - } - if(obj == NULL) { - return(LV_RES_INV); - } - - res = lv_watch_obj_signal(obj, sign, param); - if(res != LV_RES_OK) { - return(res); - } - - /* Include the ancient signal function */ - lv_signal_cb_t sign_func = (lv_signal_cb_t)(lv_obj_get_user_data(element).user_data); - res = sign_func(element, sign, param); - if(res != LV_RES_OK) { - return(res); - } - - return(LV_RES_OK); -} /* video_call_element_signal_func */ - -static void video_call_add_element(lv_obj_t * element) -{ - lv_watch_set_free_ptr(element, lv_obj_get_signal_cb(element)); - lv_obj_set_signal_cb(element, video_call_element_signal_func); - lv_obj_add_protect(element, LV_PROTECT_PRESS_LOST | LV_PROTECT_CLICK_FOCUS); -} - -static void canvas_button_hidden_event_cb(lv_obj_t * obj, lv_event_t e) -{ - if(LV_EVENT_CLICKED == e) - { - printf("%s %d\n", __FUNCTION__, __LINE__); - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - if(!ext) { - return; - } - if(ext->canvas_button_hidden_flag == NOT_HIDDEN) { - ext->canvas_button_hidden_flag = HIDDEN; - } else { - ext->canvas_button_hidden_flag = NOT_HIDDEN; - } - - lv_obj_set_hidden(ext->connect_time, ext->canvas_button_hidden_flag); - lv_obj_set_hidden(ext->volume_button, ext->canvas_button_hidden_flag); - lv_obj_set_hidden(ext->view_switch_button, true); // lv_obj_set_hidden(ext->view_switch_button, ext->canvas_button_hidden_flag); - lv_obj_set_hidden(ext->ring_off_button, ext->canvas_button_hidden_flag); - } -} - -static void voip_set_volume_when_slider_act(void) -{ - printf("%s\n", __FUNCTION__); - if(lv_watch_get_activity_obj(ACT_ID_SLIDER)) { - if(MMI_VIDEO_CALL_STATE_NONE != s_video_call_params.state) { - uint8_t volume = mmi_vc_get_call_volume(); - printf("set nv, speaker volume is %d.\n", volume); - UI_NV_Write_Req(NV_SECTION_UI_PHONE, 0, 1, &volume); - } - } -} - -#if VIDEO_SIGNAL_CHECK -static void signal_check(lv_task_t *task) -{ - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - if(!ext) return; - - if((false == is_rat_gsm()) && - (watch_modem_get_signal_bar_req() < MMI_MODEM_SIGNAL_BAR_3)) { - lv_obj_set_hidden(ext->signal_weak_label, false); - } else { - lv_obj_set_hidden(ext->signal_weak_label, true); - } -} -#endif - -static void voip_signal_check_start(void * ext) -{ -#if VIDEO_SIGNAL_CHECK - if(NULL == signal_check_task) - signal_check_task = lv_task_create(signal_check, VIDEO_SIGNAL_CHECK_PERIOD, LV_TASK_PRIO_HIGH, NULL); -#endif -} - -static void voip_signal_check_stop(void) -{ -#if VIDEO_SIGNAL_CHECK - if(signal_check_task) { - lv_task_del(signal_check_task); - signal_check_task = NULL; - } -#endif -} - -static bool is_rat_gsm(void) -{ - MMI_MODEM_PLMN_RAT rat; - - watch_modem_get_operator_req(&rat); - if(MMI_MODEM_PLMN_RAT_GSM == rat) - return true; - else - return false; -} - -static void rat_check(lv_task_t *task) -{ - if(is_rat_gsm()) { - mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); - } -} - -static void voip_rat_check_start(void) -{ - if(NULL == rat_check_task) - rat_check_task = lv_task_create(rat_check, VIDEO_RAT_CHECK_PERIOD, LV_TASK_PRIO_HIGH, NULL); -} - -static void voip_rat_check_stop(void) -{ - if(rat_check_task) { - lv_task_del(rat_check_task); - rat_check_task = NULL; - } -} - -void voip_fps_check(int8_t fps) -{ - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - if(NULL != ext) { - if((VIDEO_CALL_FPS_CHECK_LIMIT >= fps) && (0 != fps)) { - printf("%s %d\n", __FUNCTION__, fps); - if(lv_obj_get_hidden(ext->signal_weak_label) == false) return; - lv_obj_set_hidden(ext->signal_weak_label, false); - } else { - if(lv_obj_get_hidden(ext->signal_weak_label) == true) return; - lv_obj_set_hidden(ext->signal_weak_label, true); - } - } -} - - - - -static nv_watch_vc_contact_t s_vc_contact = {0}; -static TIMER_ID fail_timer_id = NULL; -static MMI_VIDEO_CALL_UI_E s_vc_call_ui = MMI_VC_UI_INVALID; - -char * mmi_video_call_params_number_get(void) -{ - return (s_video_call_params.number); -} - -MMI_VIDEO_CALL_STATE_E mmi_video_call_params_state_get(void) -{ - return (s_video_call_params.state); -} - -MODEM_VIDEO_CALL_TYPE mmi_video_call_params_type_get(void) -{ - return (s_video_call_params.call_type); -} - - - -void mmi_video_call_contact_nv_write(void) -{ - uint32_t nv_data_length = sizeof(nv_watch_vc_contact_t); - - if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_VC_CONTACT, 0, nv_data_length, (uint8_t *)&s_vc_contact)) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__); - } -} - -void mmi_video_call_contact_nv_read(void) -{ - uint32_t nv_data_length = sizeof(nv_watch_vc_contact_t); - - if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_VC_CONTACT, 0, nv_data_length, (uint8_t *)&s_vc_contact)) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); - } -} - -void mmi_vc_contact_set(nv_watch_vc_contact_t * contact_list) -{ - if(NULL == contact_list) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - return; - } - - _lv_memcpy(&s_vc_contact, contact_list, sizeof(nv_watch_vc_contact_t)); - mmi_video_call_contact_nv_write(); - - - //phonebook_update_ui(contact_list, count, 0, 0); - -} - -bool mmi_vc_is_in_call(void) -{ - if(MMI_VIDEO_CALL_STATE_NONE == s_video_call_params.state || MMI_VIDEO_CALL_STATE_INVALID == s_video_call_params.state) - return false; - - return true; -} - -// -void mmi_vc_call_operate_send_to_server(void) -{ - mmi_protocol_fzd_action_VC_CALL_RESPONSE(s_video_call_params.number, s_video_call_ticket, s_video_call_params.call_type); -} - -void mmi_vc_ring_off_timer_stop(void) -{ - if(NULL != s_video_call_params.ring_off_timer_id) - { - Hal_Timer_Stop(s_video_call_params.ring_off_timer_id); - s_video_call_params.ring_off_timer_id = NULL; - } -} - -void mmi_vc_dialing_timer_stop(void) -{ - if(NULL != s_video_call_params.dialing_timer_id) - { - Hal_Timer_Stop(s_video_call_params.dialing_timer_id); - s_video_call_params.dialing_timer_id = NULL; - } -} - -void mmi_vc_connecting_timer_stop(void) -{ - if(NULL != s_video_call_params.connecting_timer_id) - { - Hal_Timer_Stop(s_video_call_params.connecting_timer_id); - s_video_call_params.connecting_timer_id = NULL; - } -} - -void mmi_vc_all_timer_stop(void) -{ - mmi_vc_dialing_timer_stop(); - mmi_vc_connecting_timer_stop(); - mmi_vc_ring_off_timer_stop(); -} - -static void mmi_vc_ui_prepare_destory(lv_obj_t * activity_obj) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - lv_watch_png_cache_all_free(); - - // ring off - mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); -} - -static void mmi_vc_hook_action(lv_obj_t * btn, lv_event_t e) -{ - if(LV_EVENT_CLICKED != e) - { - return; - } - - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - // - Hal_Vibrator_Play_End(); - Hal_Tone_Play_End(); - Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_2); - - // stop timer - mmi_vc_all_timer_stop(); - - mmi_vc_call_action_connecting(); - - //mmi_video_call_jrtc_config_init_01(s_video_call_tokens); - int8_t ret = mmi_video_call_answer_req(s_video_call_ticket); - if(ret < 0) - { - mmi_vc_ring_off_screen(); - } -} - -void mmi_vc_ring_off_action(lv_obj_t * btn, lv_event_t e) -{ - if(LV_EVENT_CLICKED != e) - { - return; - } - - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, s_video_call_params.state); - - // stop playing tone - Hal_Vibrator_Play_End(); - Hal_Tone_Play_End(); - Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_2); - - // - voip_signal_check_stop(); - voip_rat_check_stop(); - - // stop timer - mmi_vc_all_timer_stop(); - - switch(s_video_call_params.state) - { - case MMI_VIDEO_CALL_STATE_NONE: - case MMI_VIDEO_CALL_STATE_INVALID: - // do noting - break; - - case MMI_VIDEO_CALL_STATE_INCOMING: - mmi_video_call_reject_req(TRUE); - break; - - default: - mmi_video_call_hangup_req(TRUE); - break; - } - // watch_wakeup_time_reset(); - // watch_set_suspend_enable(true, ACT_ID_VOIPPHONE, 0); -} - -void mmi_ui_msg_update_vc_call_stop(void) -{ - mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); -} - -void mmi_vc_call_action_call_stop(void) -{ - if(true != mmi_vc_is_in_call()) - { - return; - } - - mmi_watch_wake_up(); - mmi_ui_msg_action_vc_call_stop(); -} - -static void mmi_vc_ui_dialing(lv_obj_t * content) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - if(ext == NULL) - { - return; - } - - lv_obj_t * label; - uint32_t text_id = WATCH_TEXT_ID_VIDEO_CALL_DAILING; - if(MODEM_VIDEO_CALL_TYPE_VIDEO != s_video_call_params.call_type) - text_id = WATCH_TEXT_ID_VOICE_CALL_DAILING; - - // label dialing - label = lv_label_create(content, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_text_id(label, text_id); - lv_obj_set_click(label, false); - lv_obj_align(label, content, LV_ALIGN_IN_TOP_MID, 0, 10); - ext->phone_status_label = label; - - // img - lv_obj_t * img = lv_img_create(content, NULL); - lv_img_set_src(img, ICON_VIDEO_CALL_CONTACT_PHOTO); - lv_obj_align(img, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); - lv_obj_set_click(img, false); - - // name - label = lv_label_create(content, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL); - lv_obj_set_width(label, lv_obj_get_width(content) - 20); - if(strlen(s_video_call_params.name) > 0) - { - lv_label_set_text(label, s_video_call_params.name); - } - else - { - lv_label_set_text(label, s_video_call_params.number); - } -#if USE_LV_WATCH_UI_240_280 - lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); -#else - lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); -#endif - lv_obj_set_click(label, false); - - #if 0 - // btn volume - lv_obj_t * btn; - btn = lv_imgbtn_create(cont, NULL); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_VOLUME); - lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_VOLUME); - lv_obj_set_event_cb(btn, voip_volume_btn_action); - lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0); - #endif - - // btn ring off - lv_obj_t * btn = lv_imgbtn_create(content, NULL); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_obj_set_event_cb(btn, mmi_vc_ring_off_action); - lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_MID, 0, MMI_VC_RING_OFF_BTN_Y_OFFSET); -} - -static void mmi_vc_ui_incoming(lv_obj_t * content) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - if(ext == NULL) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - return; - } - lv_obj_t * label; - uint32_t text_id = WATCH_TEXT_ID_VIDEO_CALL_RINGING; - if(MODEM_VIDEO_CALL_TYPE_VIDEO != s_video_call_params.call_type) - text_id = WATCH_TEXT_ID_VOICE_CALL_RINGING; - - // label ringing - label = lv_label_create(content, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_text_id(label, text_id); - lv_obj_set_click(label, false); - lv_obj_align(label, content, LV_ALIGN_IN_TOP_MID, 0, 10); - ext->phone_status_label = label; - - // img - lv_obj_t * img = lv_img_create(content, NULL); - lv_img_set_src(img, ICON_VIDEO_CALL_CONTACT_PHOTO); - lv_obj_align(img, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); - lv_obj_set_click(img, false); - - // name - label = lv_label_create(content, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL); - lv_obj_set_width(label, lv_obj_get_width(content) - 20); - if(strlen(s_video_call_params.name) > 0) - { - lv_label_set_text(label, s_video_call_params.name); - } - else - { - lv_label_set_text(label, s_video_call_params.number); - } -#if USE_LV_WATCH_UI_240_280 - lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); -#else - lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); -#endif - lv_obj_set_click(label, false); - - // btn ring off - lv_obj_t * btn; - btn = lv_imgbtn_create(content, NULL); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_obj_set_event_cb(btn, mmi_vc_ring_off_action); - lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_LEFT, MMI_VC_INCOMING_RING_OFF_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); - - // btn ring hook - btn = lv_imgbtn_create(content, NULL); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_ANSWER_BTN); - lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_ANSWER_BTN); - lv_obj_set_event_cb(btn, mmi_vc_hook_action); - lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_RIGHT, MMI_VC_INCOMING_HOOK_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); -} - -static void mmi_vc_ui_connecting(lv_obj_t * content) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - - LV_ASSERT_MEM(ext); - if(ext == NULL) { - return; - } - lv_obj_t * label; - - // label ringing - label = lv_label_create(content, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_text_id(label, WATCH_TEXT_ID_CONNECTING); - lv_obj_set_click(label, false); - lv_obj_align(label, content, LV_ALIGN_IN_TOP_MID, 0, 10); - ext->phone_status_label = label; - - // img - lv_obj_t * img = lv_img_create(content, NULL); - lv_img_set_src(img, ICON_VIDEO_CALL_CONTACT_PHOTO); - lv_obj_align(img, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); - lv_obj_set_click(img, false); - - // name - label = lv_label_create(content, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL); - lv_obj_set_width(label, lv_obj_get_width(content) - 20); - if(strlen(s_video_call_params.name) > 0) - { - lv_label_set_text(label, s_video_call_params.name); - } - else - { - lv_label_set_text(label, s_video_call_params.number); - } -#if USE_LV_WATCH_UI_240_280 - lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); -#else - lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); -#endif - lv_obj_set_click(label, false); - - // btn ring off - lv_obj_t * btn = lv_imgbtn_create(content, NULL); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_obj_set_event_cb(btn, mmi_vc_ring_off_action); - lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_MID, 0, MMI_VC_RING_OFF_BTN_Y_OFFSET); -} - -static void mmi_vc_ui_connected(lv_obj_t * content) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - if(ext == NULL) - { - return; - } - - lv_obj_t * label; - lv_obj_t * btn; - hal_rtc_t rtc_curr = {0}; // current rtc time - Hal_Rtc_Gettime(&rtc_curr); - - if(s_video_call_params.call_type == MODEM_VIDEO_CALL_TYPE_VOICE) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - ext->connect_start_time = time_to_seconds(&rtc_curr); - - ext->local_remote_switch_flag = VOIP_REMOTE_SWITCH_NULL; - - //lv_obj_add_style(content, LV_OBJ_PART_MAIN, &lv_watch_style_transp); - lv_obj_t * img = lv_img_create(content, NULL); - lv_img_set_src(img, ICON_VIDEO_CALL_CONTACT_PHOTO); - lv_obj_align(img, content, LV_ALIGN_IN_TOP_MID, 0, 30); - lv_obj_set_click(img, false); - - // name - label = lv_label_create(content, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL); - lv_obj_set_width(label, lv_obj_get_width(content) - 20); - if(strlen(s_video_call_params.name) > 0) - { - lv_label_set_text(label, s_video_call_params.name); - } - else - { - lv_label_set_text(label, s_video_call_params.number); - } - lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); - lv_obj_set_click(label, false); - - //duration - lv_obj_t * time_label = lv_label_create(content, NULL); - lv_obj_add_style(time_label, LV_OBJ_PART_MAIN, &lv_watch_font20); - lv_label_set_align(time_label, LV_LABEL_ALIGN_CENTER); - lv_label_set_text(time_label, "00:00"); - lv_obj_set_click(time_label, false); - lv_obj_set_base_dir(time_label, LV_BIDI_DIR_LTR); - lv_obj_align(time_label, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); - ext->phone_status_label = time_label; - - //btn volume - btn = lv_imgbtn_create(content, NULL); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_VOLUME_BTN); - lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_VOLUME_BTN); - lv_obj_set_event_cb(btn, voip_volume_btn_action); - lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_LEFT, MMI_VC_CALLING_VOLUME_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); //20, -50); - - //btn ring off - btn = lv_imgbtn_create(content, NULL); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_obj_set_event_cb(btn, mmi_vc_ring_off_action); - lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_RIGHT, MMI_VC_CALLING_RING_OFF_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); //-20, -50); - - //watch_set_suspend_enable(false, ACT_ID_VOIPPHONE, 0); - } - else - { - lv_obj_t * canvas; - - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: format=%d\n", __FUNCTION__, __LINE__, ext->voiph263fmt); - - ext->local_remote_switch_flag = VOIP_REMOTE_SWITCH_REMOTE; - if((ext->voiph263fmt == VOIP_H263_FMT_SQCIF) || (ext->voiph263fmt == VOIP_H263_FMT_QCIF)) - { - ext->connect_start_time = time_to_seconds(&rtc_curr); - - /*Create the canvas object*/ - canvas = lv_canvas_create(content, NULL); - lv_obj_set_click(canvas, true); - lv_obj_set_event_cb(canvas, canvas_button_hidden_event_cb); - video_call_add_element(canvas); - ext->canvas = canvas; - - lv_obj_align(canvas, content, LV_ALIGN_IN_TOP_MID, 0, 0); - /*Assign the buffer to the canvas*/ - lv_img_set_src(canvas, ICON_BACKGROUND); - voip_signal_check_start(ext); - - // duration - label = lv_label_create(canvas, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_text(label, "00:00"); - lv_obj_set_click(label, false); - lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR); - lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 0); - ext->phone_status_label = label; - - // signal weak notification - label = lv_label_create(canvas, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); - lv_label_set_text_id(label, WATCH_TEXT_ID_SIGNAL_WEAK); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_obj_align(label, canvas, LV_ALIGN_CENTER, 0, -10); - lv_obj_set_click(label, false); - lv_obj_set_hidden(label, true); - ext->signal_weak_label = label; - - // btn volume - btn = lv_imgbtn_create(canvas, NULL); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_VOLUME_BTN); - lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_VOLUME_BTN); - lv_obj_set_event_cb(btn, voip_volume_btn_action); - lv_obj_align(btn, canvas, LV_ALIGN_IN_BOTTOM_LEFT, MMI_VC_CALLING_VOLUME_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); - - // btn switch video - //btn = lv_imgbtn_create(canvas, NULL); - //lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_SETTING_VOLTE); - //lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_SETTING_VOLTE); - //lv_obj_set_event_cb(btn, voip_local_remote_switch_action); - //lv_obj_align(btn, canvas, LV_ALIGN_IN_BOTTOM_MID, 0, 0); - - // btn ring off - btn = lv_imgbtn_create(canvas, NULL); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_obj_set_event_cb(btn, mmi_vc_ring_off_action); - lv_obj_align(btn, canvas, LV_ALIGN_IN_BOTTOM_RIGHT, MMI_VC_CALLING_RING_OFF_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); - } - else if((ext->voiph263fmt == VOIP_H263_FMT_CIF) - || (ext->voiph263fmt == VOIP_H263_FMT_4CIF) - || (ext->voiph263fmt == VOIP_H263_FMT_16CIF) - || (ext->voiph263fmt == VOIP_H263_FMT_OTHER)) - { - /*Create the canvas object*/ - canvas = lv_canvas_create(content, NULL); - lv_obj_set_click(canvas, true); - lv_obj_set_event_cb(canvas, canvas_button_hidden_event_cb); - video_call_add_element(canvas); - ext->canvas = canvas; - - /*Assign the buffer to the canvas*/ - lv_img_set_src(canvas, ICON_BACKGROUND); - voip_signal_check_start(ext); - - // duration - label = lv_label_create(canvas, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_text(label, "00:00"); - lv_obj_set_click(label, false); - lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR); - lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 0); - ext->phone_status_label = label; - ext->connect_time = label; - - // signal weak notification - label = lv_label_create(canvas, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); - lv_label_set_text_id(label, WATCH_TEXT_ID_SIGNAL_WEAK); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_obj_align(label, canvas, LV_ALIGN_CENTER, 0, -10); - lv_obj_set_click(label, false); - lv_obj_set_hidden(label, true); - ext->signal_weak_label = label; - - // btn volume - btn = lv_imgbtn_create(canvas, NULL); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_VOLUME_BTN); - lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_VOLUME_BTN); - lv_obj_set_event_cb(btn, voip_volume_btn_action); - lv_obj_align(btn, canvas, LV_ALIGN_IN_BOTTOM_LEFT, MMI_VC_CALLING_VOLUME_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); - lv_obj_add_style(btn, LV_OBJ_PART_MAIN, &lv_watch_style_transp); - ext->volume_button = btn; - - // btn switch video - btn = lv_imgbtn_create(canvas, NULL); - //lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_SETTING_VOLTE); - //lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_SETTING_VOLTE); - //lv_obj_set_event_cb(btn, voip_local_remote_switch_action); - //lv_obj_align(btn, canvas, LV_ALIGN_IN_BOTTOM_MID, 0, -20); - //lv_obj_add_style(btn, LV_OBJ_PART_MAIN, &lv_watch_style_transp); - ext->view_switch_button = btn; - - // btn ring off - btn = lv_imgbtn_create(canvas, NULL); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_obj_set_event_cb(btn, mmi_vc_ring_off_action); - lv_obj_align(btn, canvas, LV_ALIGN_IN_BOTTOM_RIGHT, MMI_VC_CALLING_RING_OFF_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); - lv_obj_add_style(btn, LV_OBJ_PART_MAIN, &lv_watch_style_transp); - ext->ring_off_button = btn; - - lv_obj_set_hidden(ext->connect_time, ext->canvas_button_hidden_flag); - lv_obj_set_hidden(ext->volume_button, ext->canvas_button_hidden_flag); - lv_obj_set_hidden(ext->view_switch_button, true); // lv_obj_set_hidden(ext->view_switch_button, ext->canvas_button_hidden_flag); - lv_obj_set_hidden(ext->ring_off_button, ext->canvas_button_hidden_flag); - } - - if(mmi_vc_call_get_obj()) { - lv_watch_obj_set_down_slide_cb(mmi_vc_call_get_obj(), voip_phone_down_slide_callback); - } - } -} - -static lv_obj_t * mmi_vc_ui_create(lv_obj_t * activity_obj) -{ - if(MMI_VC_UI_CONNECTED == s_vc_call_ui) - { - /* set speaker volume to nv when leaving activiry's slider */ - voip_set_volume_when_slider_act(); - } - - mmi_vc_call_screen_clean(); - - //lv_watch_png_cache_all_free(); - - if(activity_obj == NULL) - { - lv_watch_activity_ext_t activity_ext = {0}; - - activity_ext.actId = ACT_ID_VOIPPHONE; - activity_ext.create = NULL; // mmi_vc_ui_create; - activity_ext.prepare_destory = mmi_vc_ui_prepare_destory; - activity_obj = lv_watch_creat_activity_obj(&activity_ext); - if(NULL == activity_obj) - { - return NULL; - } - } - - lv_obj_t * obj = lv_watch_obj_create(activity_obj); - if(obj == NULL) - { - return NULL; - } - lv_watch_obj_set_anim_mode(obj, LV_WATCH_LEFT_OR_RIGHT_SLIDE_CALLBACK); - lv_watch_obj_set_left_slide_cb(obj, voip_phone_left_slide_callback); - lv_watch_obj_set_right_slide_cb(obj, voip_phone_right_slide_callback); - - lv_vc_call_obj_ext_t * ext = lv_obj_allocate_ext_attr(obj, sizeof(lv_vc_call_obj_ext_t)); - if(ext == NULL) - { - return NULL; - } - - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - ext->phone_status_label = NULL; - ext->phone_animation_obj = NULL; - ext->vc_ui = s_vc_call_ui; - ext->local_remote_switch_flag = VOIP_REMOTE_SWITCH_NULL; -#if ENABLE_VIDEO_SCALE == 0 - ext->voiph263fmt = VOIP_H263_FMT_QCIF; -#else - ext->voiph263fmt = VOIP_H263_FMT_OTHER; -#endif - - hal_rtc_t rtc_curr; // current rtc time - Hal_Rtc_Gettime(&rtc_curr); - ext->connect_start_time = time_to_seconds(&rtc_curr); - ext->connect_time = NULL; - ext->volume_button = NULL; - ext->view_switch_button = NULL; - ext->ring_off_button = NULL; - ext->canvas_button_hidden_flag = NOT_HIDDEN; - - /* content */ - lv_obj_t * content = lv_cont_create(obj, NULL); - lv_obj_set_size(content, lv_obj_get_width(obj), lv_obj_get_height(obj)); - //lv_cont_set_layout(content, LV_LAYOUT_COLUMN_MID); - lv_obj_add_style(content, LV_OBJ_PART_MAIN, &lv_watch_style_transp); - //lv_obj_set_style_local_bg_color(content, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); - lv_watch_obj_add_element(content); - lv_obj_set_click(content, false); - lv_obj_align(content, obj, LV_ALIGN_CENTER, 0, 0); - - switch(ext->vc_ui) - { - case MMI_VC_UI_INCOMING: - mmi_vc_ui_incoming(content); - //mmi_vc_ring_animation(ext->phone_status_label); - break; - - case MMI_VC_UI_DIALING: - mmi_vc_ui_dialing(content); - //mmi_vc_dialing_animation(ext->phone_status_label); - break; - - case MMI_VC_UI_CONNECTING: - mmi_vc_ui_connecting(content); - //mmi_vc_connecting_animation(ext->phone_status_label); - break; - - case MMI_VC_UI_CONNECTED: - mmi_vc_ui_connected(content); - mmi_vc_connected_animation(ext->phone_status_label); - break; - - default: - break; - } - - return obj; -} - -void mmi_ui_msg_update_vc_call_incoming(void) -{ -#ifdef __MMI_ZHSX_SUPPORT_HEALTH_SENSOR__ - if(true == mmi_health_measure_state_is_ui_measure()) - { - mmi_health_heart_rate_screen_clean(); - mmi_health_spo2_screen_clean(); - #ifdef __MMI_HEALTH_MEASURE_TEMPERATURE_SUPPORT__ - mmi_health_temperature_screen_clean(); - #endif - } -#endif - - lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VC_DIAL_BTN); - if(NULL != activity_obj) - { - lv_obj_del(activity_obj); - } - - s_vc_call_ui = MMI_VC_UI_INCOMING; - mmi_vc_ui_create(NULL); -} - -void mmi_vc_call_action_incoming(char * number, MODEM_VIDEO_CALL_TYPE type, char * t_ticket, char * t_tokens) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - if(AUDIO_CTRL_PRIORITY_2 == Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_2, mmi_vc_audio_ctrl_callback)) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - mmi_vc_call_params_clean(); - s_video_call_params.call_type = type; - s_video_call_params.state = MMI_VIDEO_CALL_STATE_INCOMING; - strncpy(s_video_call_params.number, number, NV_WATCH_VC_CONTACT_NUMBER_LEN - 1); - uint8_t i = 0; - for(i = 0; i < s_vc_contact.total; i++) - { - if(0 == strncmp(s_video_call_params.number, s_vc_contact.number[i], strlen(s_video_call_params.number))) - { - strncpy(s_video_call_params.name, s_vc_contact.name[i], NV_WATCH_VC_CONTACT_NAME_LEN - 1); - break; - } - } - - memset(s_video_call_ticket, 0x0, MMI_WATCH_VC_TICKET_LEN); - strncpy(s_video_call_ticket, t_ticket, MMI_WATCH_VC_TICKET_LEN - 1); - - memset(s_video_call_tokens, 0x0, MMI_WATCH_VC_TOKENS_LEN); - strncpy(s_video_call_tokens, t_tokens, MMI_WATCH_VC_TOKENS_LEN - 1); - - // ring - uint8_t volume = 0; - #ifdef __MMI_USER_PROFILE_SUPPORT__ - volume = mmi_user_profile_current_mode_remind_volume_get(); - #else - volume = query_current_volume(); - #endif - if(!Hal_Set_BT_Audio_Path(volume)) - { - Hal_Call_Speaker(HAL_CALL_SPK_ON, volume); - } - Hal_NFFS_File_Play_Repeat(AUDIO_INCOMING_CALL, volume); - - // vibrate - if(true == mmi_watch_vibrate_is_permitted()) - { - Hal_Vibrator_Play_Repeat(); - } - - // - mmi_video_call_jrtc_config_init_01(s_video_call_tokens); - - mmi_watch_wake_up(); - - voip_rat_check_start(); - - // ui - mmi_ui_msg_action_vc_call_incoming(); - } -} - -bool mmi_vc_call_action_incoming_no_permission(void) -{ - if(true == mmi_active_screen_is_prohibit_interrupted() - || true == is_rat_gsm() - #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ - || true == mmi_watch_is_in_do_not_disturb_time() - #endif - || true == mmi_vc_is_in_call() - ) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - return true; - } - - return false; -} - -static void mmi_vc_call_connecting_timeout_cb(void * para) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); -} - -void mmi_vc_call_action_connecting(void) -{ - if(MMI_VIDEO_CALL_STATE_CALLING == s_video_call_params.state - || MMI_VIDEO_CALL_STATE_CONNECTING == s_video_call_params.state - ) - { - return; - } - - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - s_video_call_params.state = MMI_VIDEO_CALL_STATE_CONNECTING; - - // stop timer - mmi_vc_all_timer_stop(); - - // stop playing tone - Hal_Tone_Play_End(); - Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_2); - - if(NULL == s_video_call_params.connecting_timer_id) - { - s_video_call_params.connecting_timer_id = Hal_Timer_Start(MMI_VC_CONNECTING_TIMEOUT, mmi_vc_call_connecting_timeout_cb, NULL, 0); - } - - s_vc_call_ui = MMI_VC_UI_CONNECTING; - mmi_vc_ui_create(NULL); -} - -void mmi_vc_call_action_connected(void) -{ - if(MMI_VIDEO_CALL_STATE_CALLING == s_video_call_params.state) - { - return; - } - - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - s_video_call_params.state = MMI_VIDEO_CALL_STATE_CALLING; - - // stop timer - mmi_vc_all_timer_stop(); - - // stop playing tone - Hal_Tone_Play_End(); - Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_2); - - Hal_Set_Voice_Call_Status(VOICE_CALL_START); - - s_vc_call_ui = MMI_VC_UI_CONNECTED; - mmi_vc_ui_create(NULL); -} - -static void mmi_vc_call_dialing_timeout_cb(void * para) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); -} - -void mmi_vc_call_action_dialing_ext(char * t_tokens, char * t_ticket) -{ - if(MMI_VIDEO_CALL_STATE_DIALING != s_video_call_params.state) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - return; - } - - memset(s_video_call_ticket, 0x0, MMI_WATCH_VC_TICKET_LEN); - strncpy(s_video_call_ticket, t_ticket, MMI_WATCH_VC_TICKET_LEN - 1); - - memset(s_video_call_tokens, 0x0, MMI_WATCH_VC_TOKENS_LEN); - strncpy(s_video_call_tokens, t_tokens, MMI_WATCH_VC_TOKENS_LEN - 1); - - mmi_video_call_jrtc_config_init_01(s_video_call_tokens); - int8_t ret = mmi_video_call_dial_req(s_video_call_params.call_type, s_video_call_params.number, s_video_call_ticket); - if(0 > ret) - { - mmi_vc_call_dialing_timeout_cb(NULL); - } -} - -void mmi_vc_call_action_dialing(char * number, MODEM_VIDEO_CALL_TYPE type) -{ - // check call state - if(MMI_VIDEO_CALL_STATE_NONE != s_video_call_params.state) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, s_video_call_params.state); - return; - } - - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %s,%d\n", __FUNCTION__, __LINE__, number, type); - - // stop timer - mmi_vc_all_timer_stop(); - - mmi_vc_call_params_clean(); - s_video_call_params.state = MMI_VIDEO_CALL_STATE_DIALING; - s_video_call_params.call_type = type; - strcpy(s_video_call_params.number, number); - uint8_t i = 0; - for(i = 0; i < s_vc_contact.total; i++) - { - if(0 == strncmp(s_video_call_params.number, s_vc_contact.number[i], strlen(s_video_call_params.number))) - { - strncpy(s_video_call_params.name, s_vc_contact.name[i], NV_WATCH_VC_CONTACT_NAME_LEN - 1); - break; - } - } - - mmi_protocol_fzd_action_VC_CALL_REQUEST(s_video_call_params.number, s_video_call_params.call_type); - s_video_call_params.dialing_timer_id = Hal_Timer_Start(MMI_VC_DIALING_TIMEOUT, mmi_vc_call_dialing_timeout_cb, NULL, 0); - - voip_rat_check_start(); - - s_vc_call_ui = MMI_VC_UI_DIALING; - mmi_vc_ui_create(NULL); - - Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_2, mmi_vc_audio_ctrl_callback); - Hal_Set_Voice_Call_Status(VOICE_CALL_START); -} - -static void mmi_vc_main_prepare_destory(lv_obj_t * activity_obj) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - lv_watch_png_cache_all_free(); - - if(NULL != fail_timer_id) - { - Hal_Timer_Stop(fail_timer_id); - fail_timer_id = NULL; - } -} - -void mmi_vc_call_fail_timeout_cb(void *para) -{ - mmi_vc_main_prepare_destory(NULL); -} - -static void mmi_vc_call_action_no_permission(void) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - lv_obj_t * obj = lv_watch_get_activity_obj(ACT_ID_VOIP_PHONEBOOK); - - lv_obj_t * cont = lv_cont_create(obj, NULL); - lv_cont_set_fit(cont, LV_FIT_NONE); - lv_obj_set_size(cont, lv_obj_get_width(obj), lv_obj_get_height(obj)); - lv_obj_set_style_local_bg_color(cont, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); - lv_cont_set_layout(cont, LV_LAYOUT_OFF); - lv_obj_set_click(cont, false); - - lv_obj_t * label = lv_label_create(cont, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_obj_set_click(label, false); - lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NO_NETWORK); // WATCH_TEXT_ID_NO_SIM_OR_NETWORK); // WATCH_TEXT_ID_NO_CONTACTS_OR_NETWORK); - lv_obj_align(label, cont, LV_ALIGN_CENTER, 0, 0); - - fail_timer_id = Hal_Timer_Start(2*1000, mmi_vc_call_fail_timeout_cb, NULL, FALSE); -} - -static void mmi_vc_voice_btn_action(lv_obj_t * btn, lv_event_t e) -{ - if(LV_EVENT_CLICKED != e) - { - return; - } - - if(true == mmi_vc_is_in_call()) - { - return; - } - - lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VC_DIAL_BTN); - if(NULL != activity_obj) - { - lv_obj_del(activity_obj); - } - uint8_t index = s_vc_contact_selected_index; - - if(true == mmi_vc_check_mo_permission()) - { - mmi_vc_call_action_dialing(s_vc_contact.number[index], MODEM_VIDEO_CALL_TYPE_VOICE); - } - else - { - mmi_vc_call_action_no_permission(); - } -} - -static void mmi_vc_video_btn_action(lv_obj_t * btn, lv_event_t e) -{ - if(LV_EVENT_CLICKED != e) - { - return; - } - - if(true == mmi_vc_is_in_call()) - { - return; - } - - lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VC_DIAL_BTN); - if(NULL != activity_obj) - { - lv_obj_del(activity_obj); - } - uint8_t index = s_vc_contact_selected_index; - - if(true == mmi_vc_check_mo_permission()) - { - mmi_vc_call_action_dialing(s_vc_contact.number[index], MODEM_VIDEO_CALL_TYPE_VIDEO); - } - else - { - mmi_vc_call_action_no_permission(); - } -} - -static void mmi_vc_dial_btn_screen_prepare_destory(lv_obj_t * activity_obj) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - lv_watch_png_cache_all_free(); -} - -static lv_obj_t * mmi_vc_dial_btn_screen_create(lv_obj_t * activity_obj) -{ - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - if(activity_obj == NULL) - { - lv_watch_activity_ext_t activity_ext = {0}; - - activity_ext.actId = ACT_ID_VC_DIAL_BTN; - activity_ext.create = mmi_vc_dial_btn_screen_create; - activity_ext.prepare_destory = mmi_vc_dial_btn_screen_prepare_destory; - activity_obj = lv_watch_creat_activity_obj(&activity_ext); - if(NULL == activity_obj) - return NULL; - } - - lv_obj_t * obj = lv_watch_obj_create(activity_obj); - if(NULL == obj) - return NULL; - - lv_obj_t * cont = lv_cont_create(obj, NULL); - lv_cont_set_fit(cont, LV_FIT_NONE); - lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES); // lv_obj_get_width(obj), lv_obj_get_height(obj)); - lv_obj_set_style_local_bg_color(cont, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); - lv_cont_set_layout(cont, LV_LAYOUT_OFF); - lv_obj_set_click(cont, false); - - lv_obj_t * voicebtn = lv_imgbtn_create(cont, NULL); - lv_imgbtn_set_src(voicebtn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_VOICE_BTN); - lv_imgbtn_set_src(voicebtn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_VOICE_BTN); -#ifdef USE_LV_WATCH_UI_CIRCLE - lv_obj_align(voicebtn, cont, LV_ALIGN_IN_LEFT_MID, 5, 0); -#else - lv_obj_align(voicebtn, cont, LV_ALIGN_IN_TOP_MID, 0, 10); -#endif - lv_obj_set_event_cb(voicebtn, mmi_vc_voice_btn_action); - - lv_obj_t * videobtn = lv_imgbtn_create(cont, NULL); - lv_imgbtn_set_src(videobtn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_VIDEO_BTN); - lv_imgbtn_set_src(videobtn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_VIDEO_BTN); -#ifdef USE_LV_WATCH_UI_CIRCLE - lv_obj_align(videobtn, cont, LV_ALIGN_IN_RIGHT_MID, -5, 0); -#else - lv_obj_align(videobtn, cont, LV_ALIGN_IN_BOTTOM_MID, 0, -10); -#endif - lv_obj_set_event_cb(videobtn, mmi_vc_video_btn_action); - - return obj; -} - -static void mmi_vc_contact_event_cb(lv_obj_t * btn, lv_event_t e) -{ - if(LV_EVENT_CLICKED != e) - { - return; - } - - if(true == mmi_vc_is_in_call()) - { - return; - } - - s_vc_contact_selected_index = lv_watch_get_free_num(btn); - mmi_vc_dial_btn_screen_create(NULL); -} - -static lv_obj_t * mmi_vc_contact_list_create(lv_obj_t * obj) -{ - /*Allocate the object type specific extended data*/ - lv_vc_contact_list_obj_ext_t * ext = lv_obj_allocate_ext_attr(obj, sizeof(lv_vc_contact_list_obj_ext_t)); - /*ext realloc based on watch_obj_ext, do not memeset it*/ - if(NULL == ext) - { - return NULL; - } - - //ext->title = NULL; - ext->list = NULL; - - /* content */ - lv_obj_t * content = lv_cont_create(obj, NULL); - lv_cont_set_fit(content, LV_FIT_NONE); - lv_obj_set_size(content, lv_obj_get_width(obj), lv_obj_get_height(obj)); - lv_obj_add_style(content,LV_OBJ_PART_MAIN, &lv_watch_style_transp); - lv_obj_set_style_local_bg_color(content, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); - lv_cont_set_layout(content, LV_LAYOUT_OFF); // lv_cont_set_layout(content, LV_LAYOUT_COLUMN_MID); - lv_obj_set_click(content, false); - lv_obj_align(content, obj, LV_ALIGN_CENTER, 0, 0); - - lv_obj_t * label = lv_label_create(content, NULL); - lv_obj_set_size(label, LV_HOR_RES, 40); // 30); - lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font20_gray); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_text_id(label, WATCH_TEXT_ID_VIDEOCALL); - lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 10); - lv_obj_set_click(label, false); - //ext->title = label; - - lv_obj_t * list = lv_list_create(content, NULL); - if(list == NULL) - { - return NULL; - } - lv_watch_obj_add_element(list); - lv_watch_obj_add_element(lv_page_get_scrl(list)); - lv_obj_add_style(list, LV_LIST_PART_BG, &lv_watch_style_transp); - //lv_obj_add_style(list, LV_LIST_PART_SCROLLABLE, &lv_watch_style_transp); - //lv_obj_set_style_local_pad_top(list, LV_LIST_PART_SCROLLABLE, LV_STATE_DEFAULT, 4); - //lv_obj_set_style_local_pad_bottom(list, LV_LIST_PART_SCROLLABLE, LV_STATE_DEFAULT, 4); - lv_list_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); // lv_page_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); - lv_obj_set_width(list, lv_obj_get_width(content)); - lv_coord_t height = lv_obj_get_height(content) - 40; // lv_obj_get_height(label); - lv_obj_set_height(list, height); - lv_obj_align(list, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, 0); - lv_obj_set_click(list, false); - ext->list = list; - - int8_t i = 0; - lv_obj_t * btn; - - for(i = 0; i < s_vc_contact.total; i++) - { - char t_str[NV_WATCH_VC_CONTACT_NUMBER_LEN] = {0}; - - if(0 < strlen(s_vc_contact.name[i])) - strcpy(t_str, s_vc_contact.name[i]); - else - strcpy(t_str, s_vc_contact.number[i]); - - #if 0 - btn = lv_list_add_btn(list, NULL, NULL); - //lv_page_glue_obj(btn, true); - //lv_obj_add_protect(btn, LV_PROTECT_PRESS_LOST); - lv_obj_set_event_cb(btn, mmi_vc_contact_event_cb); - lv_watch_obj_add_element(btn); - - lv_obj_set_style_local_bg_color(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); - lv_obj_set_style_local_pad_top(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 5); - lv_obj_set_style_local_pad_bottom(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 5); - lv_obj_set_style_local_pad_left(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 15); - lv_obj_set_style_local_pad_right(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 15); - lv_obj_set_style_local_pad_inner(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 10); - - //label = lv_obj_get_child(btn, NULL); - //label = lv_list_get_btn_label(btn); - label = lv_label_create(btn, NULL); - //lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL); // LV_LABEL_LONG_SROLL_CIRC - lv_obj_set_width(label, lv_obj_get_width(btn)); - lv_label_set_text(label, t_str); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); - lv_label_set_align(label, LV_LABEL_ALIGN_LEFT); - lv_obj_set_click(label, false); - //lv_obj_align(label, btn, LV_ALIGN_IN_LEFT_MID, 0, 0); - - lv_watch_set_free_num(btn, i); - #else - - btn = lv_list_add_btn(list, NULL, NULL); - lv_btn_set_layout(btn, LV_LAYOUT_ROW_MID); - //lv_obj_set_event_cb(btn, mmi_vc_contact_event_cb); - //lv_watch_set_free_num(btn, i); - - lv_obj_t * cont = lv_cont_create(btn, NULL); - lv_cont_set_layout(cont, LV_LAYOUT_OFF); - lv_obj_set_width(cont, lv_obj_get_width(btn)); - lv_obj_set_height(cont, 56); // LV_VER_RES / 4); //lv_obj_get_height(btn)); - lv_obj_add_style(cont, LV_CONT_PART_MAIN, &lv_style_transp); - lv_page_glue_obj(cont, true); - lv_watch_obj_add_element(cont); - lv_obj_set_click(cont, true); - lv_obj_set_event_cb(cont, mmi_vc_contact_event_cb); - lv_watch_set_free_num(cont, i); - - label = lv_label_create(cont, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); - lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL); - lv_obj_set_width(label, lv_obj_get_width(cont) - 40); - lv_label_set_text(label, t_str); - lv_obj_align(label, cont, LV_ALIGN_IN_LEFT_MID, 20, 0); - - lv_watch_obj_add_element(btn); - #endif - } - - return obj; -} - -static lv_obj_t * mmi_vc_main_create(lv_obj_t * activity_obj) -{ - if(activity_obj == NULL) - { - lv_watch_activity_ext_t activity_ext = {0}; - - activity_ext.actId = ACT_ID_VOIP_PHONEBOOK; - activity_ext.create = mmi_vc_main_create; - activity_ext.prepare_destory = mmi_vc_main_prepare_destory; - activity_obj = lv_watch_creat_activity_obj(&activity_ext); - if(NULL == activity_obj) - return NULL; - } - - lv_obj_t * obj = lv_watch_obj_create(activity_obj); - if(NULL == obj) - return NULL; - - if(false == mmi_vc_check_mo_permission()) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - lv_obj_t * label = lv_label_create(obj, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_obj_set_click(label, false); - lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NO_NETWORK); // WATCH_TEXT_ID_NO_SIM_OR_NETWORK); // WATCH_TEXT_ID_NO_CONTACTS_OR_NETWORK); - lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -10); - } - else if(true != mmi_watch_tcp_connect_state_get() - || true != mmi_protocol_watch_bind_state_get() - ) - { - // not bind - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - lv_obj_t * label = lv_label_create(obj, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_obj_set_click(label, false); - lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NOT_BIND); - lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -10); - } - else if(0 == s_vc_contact.total) - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - lv_obj_t * label = lv_label_create(obj, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_obj_set_click(label, false); - lv_label_set_text_id(label, WATCH_TEXT_ID_NO_CONTACTS); - lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -10); - } - else - { - VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - mmi_vc_contact_list_create(obj); - } - - return obj; -} - -void mmi_video_call_create_event_cb(lv_obj_t * btn, lv_event_t e) -{ -#ifdef __VIDEO_CALL_TEST__ - nv_watch_vc_contact_t t_test_contact = - { - 3, - {"test001", "test002", "test003"}, - {"jrtc001", "jrtc002", "jrtc003"} - }; - - _lv_memcpy(&s_vc_contact, &t_test_contact, sizeof(nv_watch_vc_contact_t)); -#endif - - if(LV_EVENT_CLICKED == e) - { - lv_watch_png_cache_all_free(); - mmi_vc_main_create(NULL); - } - else if(LV_EVENT_LONG_PRESSED == e) - { - - } -} - - - -#else //static lv_signal_cb_t ancestor_signal; #if VIDEO_SIGNAL_CHECK static lv_task_t * signal_check_task = NULL; @@ -2023,12 +15,8 @@ static lv_task_t * rat_check_task = NULL; static MMI_VIDEO_CALL_PARAMS_T s_video_call_params = {0}; lv_color_t g_cbuf[canvas_width * canvas_heigh + 8] __attribute__((aligned(8))); -static char s_hzch_vc_appkey[MMI_WATCH_VC_APPKEY_LEN] = {0}; -static char s_hzch_vc_secret[MMI_WATCH_VC_SECRET_LEN] = {0}; -static char s_hzch_vc_tokens[MMI_WATCH_VC_TOKENS_LEN] = {0}; -static char s_hzch_vc_number[MMI_WATCH_VC_NUMBER_LEN] = {0}; -static char s_hzch_vc_ticket[MMI_WATCH_VC_TICKET_LEN] = {0}; -static char s_hzch_vc_uid[MMI_WATCH_VC_UID_LEN] = {0}; +static char s_video_call_ticket[MMI_WATCH_VC_TICKET_LEN] = {0}; +static char s_video_call_tokens[MMI_WATCH_VC_TOKENS_LEN] = {0}; /********************** @@ -2704,11 +692,15 @@ void voip_fps_check(int8_t fps) - -static nv_watch_vc_contact_t s_vc_contact = {0}; +static uint8_t s_vc_referral_flag = 0; // 0-default; 1-referral static TIMER_ID fail_timer_id = NULL; static MMI_VIDEO_CALL_UI_E s_vc_call_ui = MMI_VC_UI_INVALID; +char * mmi_video_call_params_number_get(void) +{ + return (s_video_call_params.number); +} + MMI_VIDEO_CALL_STATE_E mmi_video_call_params_state_get(void) { return (s_video_call_params.state); @@ -2719,8 +711,23 @@ MODEM_VIDEO_CALL_TYPE mmi_video_call_params_type_get(void) return (s_video_call_params.call_type); } + + +void mmi_video_call_contact_nv_write(void) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + +} + void mmi_video_call_contact_nv_read(void) { + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + +} + +void mmi_vc_contact_set(nv_watch_vc_contact_t * contact_list) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); } @@ -2735,7 +742,7 @@ bool mmi_vc_is_in_call(void) // void mmi_vc_call_operate_send_to_server(void) { - mmi_protocol_fzd_action_VC_CALL_CANCEL(s_hzch_vc_number, s_hzch_vc_ticket); + mmi_protocol_fzd_action_VC_CALL_RESPONSE(s_video_call_params.number, s_video_call_ticket); } void mmi_vc_ring_off_timer_stop(void) @@ -2782,6 +789,12 @@ static void mmi_vc_ui_prepare_destory(lv_obj_t * activity_obj) mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); } +static void mmi_vc_hook_action(lv_obj_t * btn, lv_event_t e) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + +} + void mmi_vc_ring_off_action(lv_obj_t * btn, lv_event_t e) { if(LV_EVENT_CLICKED != e) @@ -2811,6 +824,7 @@ void mmi_vc_ring_off_action(lv_obj_t * btn, lv_event_t e) break; case MMI_VIDEO_CALL_STATE_INCOMING: + mmi_video_call_reject_req(TRUE); break; default: @@ -2837,23 +851,6 @@ void mmi_vc_call_action_call_stop(void) mmi_ui_msg_action_vc_call_stop(); } - -void mmi_ui_msg_update_vc_call_referral(void) -{ - //mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); -} - -void mmi_vc_call_action_call_referral(void) -{ - if(true != mmi_vc_is_in_call()) - { - return; - } - - mmi_watch_wake_up(); - //mmi_ui_msg_action_vc_call_stop(); -} - static void mmi_vc_ui_dialing(lv_obj_t * content) { VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); @@ -2864,77 +861,30 @@ static void mmi_vc_ui_dialing(lv_obj_t * content) return; } - // connecting - lv_obj_t * img = lv_img_create(content, NULL); + // img + lv_obj_t * img = lv_img_create(content, NULL); lv_img_set_src(img, ICON_VIDEO_CALL_WAITTING); lv_obj_align(img, NULL, LV_ALIGN_CENTER, 0, 0); - lv_obj_set_click(img, false); + lv_obj_set_click(img, false); - lv_obj_t * btn = lv_btn_create(img, NULL); - lv_obj_set_size(btn, 80, 80); - //lv_obj_set_style_local_bg_color(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x47, 0xA6, 0xFF)); - //lv_obj_set_style_local_radius(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 30); - //lv_obj_set_style_local_bg_color(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_PRESSED, LV_COLOR_MAKE(0x47, 0xA6, 0xFF)); - //lv_obj_set_style_local_radius(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_PRESSED, 30); - lv_obj_add_style(btn, LV_BTN_PART_MAIN, &lv_style_transp_fit); - lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -10); + // btn ring off + lv_obj_t * btn = lv_imgbtn_create(content, NULL); + lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_HANGUP_BTN); + lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN); lv_obj_set_event_cb(btn, mmi_vc_ring_off_action); + lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_MID, 0, -8); } -static void mmi_vc_ui_connecting(lv_obj_t * content) +static void mmi_vc_ui_incoming(lv_obj_t * content) { VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); - - LV_ASSERT_MEM(ext); - if(ext == NULL) { - return; - } - lv_obj_t * label; - - // label ringing - label = lv_label_create(content, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_text_id(label, WATCH_TEXT_ID_CONNECTING); - lv_obj_set_click(label, false); - lv_obj_align(label, content, LV_ALIGN_IN_TOP_MID, 0, 10); - ext->phone_status_label = label; - - // img - lv_obj_t * img = lv_img_create(content, NULL); - lv_img_set_src(img, ICON_VIDEO_CALL_CONTACT_PHOTO); - lv_obj_align(img, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); - lv_obj_set_click(img, false); +} - // name - label = lv_label_create(content, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL); - lv_obj_set_width(label, lv_obj_get_width(content) - 20); - if(strlen(s_video_call_params.name) > 0) - { - lv_label_set_text(label, s_video_call_params.name); - } - else - { - lv_label_set_text(label, s_video_call_params.number); - } -#if USE_LV_WATCH_UI_240_280 - lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); -#else - lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); -#endif - lv_obj_set_click(label, false); +static void mmi_vc_ui_connecting(lv_obj_t * content) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - // btn ring off - lv_obj_t * btn = lv_imgbtn_create(content, NULL); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_obj_set_event_cb(btn, mmi_vc_ring_off_action); - lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_MID, 0, MMI_VC_RING_OFF_BTN_Y_OFFSET); } static void mmi_vc_ui_connected(lv_obj_t * content) @@ -2947,6 +897,25 @@ static void mmi_vc_ui_connected(lv_obj_t * content) return; } + // img + lv_obj_t * img_referral = lv_img_create(content, NULL); + lv_img_set_src(img_referral, ICON_VIDEO_CALL_WAITTING); + lv_obj_align(img_referral, NULL, LV_ALIGN_CENTER, 0, 0); + lv_obj_set_click(img_referral, false); + + // btn ring off + lv_obj_t * btn_referral = lv_imgbtn_create(content, NULL); + lv_imgbtn_set_src(btn_referral, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_HANGUP_BTN); + lv_imgbtn_set_src(btn_referral, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN); + lv_obj_set_event_cb(btn_referral, mmi_vc_ring_off_action); + lv_obj_align(btn_referral, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -8); + + lv_obj_set_hidden(img_referral, true); + lv_obj_set_hidden(btn_referral, true); + ext->img_referral = img_referral; + ext->btn_referral = btn_referral; + + lv_obj_t * label; lv_obj_t * btn; hal_rtc_t rtc_curr = {0}; // current rtc time @@ -2956,58 +925,6 @@ static void mmi_vc_ui_connected(lv_obj_t * content) { VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - ext->connect_start_time = time_to_seconds(&rtc_curr); - - ext->local_remote_switch_flag = VOIP_REMOTE_SWITCH_NULL; - - //lv_obj_add_style(content, LV_OBJ_PART_MAIN, &lv_watch_style_transp); - lv_obj_t * img = lv_img_create(content, NULL); - lv_img_set_src(img, ICON_VIDEO_CALL_CONTACT_PHOTO); - lv_obj_align(img, content, LV_ALIGN_IN_TOP_MID, 0, 30); - lv_obj_set_click(img, false); - - // name - label = lv_label_create(content, NULL); - lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); - lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); - lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL); - lv_obj_set_width(label, lv_obj_get_width(content) - 20); - if(strlen(s_video_call_params.name) > 0) - { - lv_label_set_text(label, s_video_call_params.name); - } - else - { - lv_label_set_text(label, s_video_call_params.number); - } - lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); - lv_obj_set_click(label, false); - - //duration - lv_obj_t * time_label = lv_label_create(content, NULL); - lv_obj_add_style(time_label, LV_OBJ_PART_MAIN, &lv_watch_font20); - lv_label_set_align(time_label, LV_LABEL_ALIGN_CENTER); - lv_label_set_text(time_label, "00:00"); - lv_obj_set_click(time_label, false); - lv_obj_set_base_dir(time_label, LV_BIDI_DIR_LTR); - lv_obj_align(time_label, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); - ext->phone_status_label = time_label; - - //btn volume - btn = lv_imgbtn_create(content, NULL); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_VOLUME_BTN); - lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_VOLUME_BTN); - lv_obj_set_event_cb(btn, voip_volume_btn_action); - lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_LEFT, MMI_VC_CALLING_VOLUME_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); //20, -50); - - //btn ring off - btn = lv_imgbtn_create(content, NULL); - lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN); - lv_obj_set_event_cb(btn, mmi_vc_ring_off_action); - lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_RIGHT, MMI_VC_CALLING_RING_OFF_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); //-20, -50); - - //watch_set_suspend_enable(false, ACT_ID_VOIPPHONE, 0); } else { @@ -3223,13 +1140,18 @@ static lv_obj_t * mmi_vc_ui_create(lv_obj_t * activity_obj) switch(ext->vc_ui) { + case MMI_VC_UI_INCOMING: + //mmi_vc_ui_incoming(content); + //mmi_vc_ring_animation(ext->phone_status_label); + break; + case MMI_VC_UI_DIALING: mmi_vc_ui_dialing(content); //mmi_vc_dialing_animation(ext->phone_status_label); break; case MMI_VC_UI_CONNECTING: - mmi_vc_ui_connecting(content); + //mmi_vc_ui_connecting(content); //mmi_vc_connecting_animation(ext->phone_status_label); break; @@ -3245,45 +1167,50 @@ static lv_obj_t * mmi_vc_ui_create(lv_obj_t * activity_obj) return obj; } -void mmi_ui_msg_update_vc_call_incoming(void) +uint8_t mmi_vc_call_referral_flag_get(void) { + return s_vc_referral_flag; +} +void mmi_vc_call_referral_flag_set(uint8_t flag) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: flag=%d\n", __FUNCTION__, __LINE__, flag) + ; + if(0 != flag && 1 != flag) + return; + + s_vc_referral_flag = flag; } -static void mmi_vc_call_connecting_timeout_cb(void * para) +void mmi_ui_msg_update_vc_call_incoming(void) { VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + +} - mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); +void mmi_vc_call_action_incoming(char * number, MODEM_VIDEO_CALL_TYPE type, char * t_ticket, char * t_tokens) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + } -void mmi_vc_call_action_connecting(void) +bool mmi_vc_call_action_incoming_no_permission(void) { - if(MMI_VIDEO_CALL_STATE_CALLING == s_video_call_params.state - || MMI_VIDEO_CALL_STATE_CONNECTING == s_video_call_params.state - ) - { - return; - } + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + return false; +} +static void mmi_vc_call_connecting_timeout_cb(void * para) +{ VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - s_video_call_params.state = MMI_VIDEO_CALL_STATE_CONNECTING; - - // stop timer - mmi_vc_all_timer_stop(); - // stop playing tone - Hal_Tone_Play_End(); - Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_2); +} - if(NULL == s_video_call_params.connecting_timer_id) - { - s_video_call_params.connecting_timer_id = Hal_Timer_Start(MMI_VC_CONNECTING_TIMEOUT, mmi_vc_call_connecting_timeout_cb, NULL, 0); - } +void mmi_vc_call_action_connecting(void) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - s_vc_call_ui = MMI_VC_UI_CONNECTING; - mmi_vc_ui_create(NULL); } void mmi_vc_call_action_connected(void) @@ -3317,7 +1244,7 @@ static void mmi_vc_call_dialing_timeout_cb(void * para) mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); } -void mmi_vc_call_action_dialing_ext(char * t_appkey, char * t_secret, char * t_tokens, char * t_number, char * t_ticket) +void mmi_vc_call_action_dialing_ext(char * t_tokens, char * t_room_id, char * t_ticket) { if(MMI_VIDEO_CALL_STATE_DIALING != s_video_call_params.state) { @@ -3325,28 +1252,17 @@ void mmi_vc_call_action_dialing_ext(char * t_appkey, char * t_secret, char * t_t return; } - _lv_memset_00(s_hzch_vc_appkey, MMI_WATCH_VC_APPKEY_LEN); - strncpy(s_hzch_vc_appkey, t_appkey, MMI_WATCH_VC_APPKEY_LEN - 1); - - _lv_memset_00(s_hzch_vc_secret, MMI_WATCH_VC_SECRET_LEN); - strncpy(s_hzch_vc_secret, t_secret, MMI_WATCH_VC_SECRET_LEN - 1); - - _lv_memset_00(s_hzch_vc_tokens, MMI_WATCH_VC_TOKENS_LEN); - strncpy(s_hzch_vc_tokens, t_tokens, MMI_WATCH_VC_TOKENS_LEN - 1); - - _lv_memset_00(s_hzch_vc_number, MMI_WATCH_VC_NUMBER_LEN); - strncpy(s_hzch_vc_number, t_number, MMI_WATCH_VC_NUMBER_LEN - 1); + memset(s_video_call_ticket, 0x0, MMI_WATCH_VC_TICKET_LEN); + strncpy(s_video_call_ticket, t_ticket, MMI_WATCH_VC_TICKET_LEN - 1); - _lv_memset_00(s_hzch_vc_ticket, MMI_WATCH_VC_TICKET_LEN); - strncpy(s_hzch_vc_ticket, t_ticket, MMI_WATCH_VC_TICKET_LEN - 1); + memset(s_video_call_tokens, 0x0, MMI_WATCH_VC_TOKENS_LEN); + strncpy(s_video_call_tokens, t_tokens, MMI_WATCH_VC_TOKENS_LEN - 1); - char imei[16] = {0}; - app_adp_get_imei_req(imei); - _lv_memset_00(s_hzch_vc_uid, MMI_WATCH_VC_UID_LEN); - strncpy(s_hzch_vc_uid, imei, MMI_WATCH_VC_UID_LEN - 1); + _lv_memset_00(s_video_call_params.number, NV_WATCH_VC_CONTACT_NUMBER_LEN); + strncpy(s_video_call_params.number, t_room_id, NV_WATCH_VC_CONTACT_NUMBER_LEN - 1); - mmi_video_call_jrtc_config_init(s_hzch_vc_appkey, s_hzch_vc_secret, s_hzch_vc_tokens, s_hzch_vc_uid); - int8_t ret = mmi_video_call_dial_req(s_hzch_vc_number, s_vc_ticket); + mmi_video_call_jrtc_config_init_01(s_video_call_tokens); + int8_t ret = mmi_video_call_dial_req(s_video_call_params.call_type, s_video_call_params.number, s_video_call_ticket); if(0 > ret) { mmi_vc_call_dialing_timeout_cb(NULL); @@ -3355,6 +1271,13 @@ void mmi_vc_call_action_dialing_ext(char * t_appkey, char * t_secret, char * t_t void mmi_vc_call_action_dialing(void) { + // check call state + if(MMI_VIDEO_CALL_STATE_NONE != s_video_call_params.state) + { + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, s_video_call_params.state); + return; + } + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); // stop timer @@ -3364,7 +1287,7 @@ void mmi_vc_call_action_dialing(void) s_video_call_params.state = MMI_VIDEO_CALL_STATE_DIALING; s_video_call_params.call_type = MODEM_VIDEO_CALL_TYPE_VIDEO; - mmi_protocol_fzd_action_VC_CALL_DIAL(); + mmi_protocol_fzd_action_VC_CALL_REQUEST(); s_video_call_params.dialing_timer_id = Hal_Timer_Start(MMI_VC_DIALING_TIMEOUT, mmi_vc_call_dialing_timeout_cb, NULL, 0); voip_rat_check_start(); @@ -3376,6 +1299,47 @@ void mmi_vc_call_action_dialing(void) Hal_Set_Voice_Call_Status(VOICE_CALL_START); } +static void mmi_vc_main_prepare_destory(lv_obj_t * activity_obj) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + lv_watch_png_cache_all_free(); + + if(NULL != fail_timer_id) + { + Hal_Timer_Stop(fail_timer_id); + fail_timer_id = NULL; + } +} + +void mmi_vc_call_fail_timeout_cb(void *para) +{ + mmi_vc_main_prepare_destory(NULL); +} + +static void mmi_vc_call_action_no_permission(void) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + lv_obj_t * obj = lv_watch_get_activity_obj(ACT_ID_VOIP_PHONEBOOK); + + lv_obj_t * cont = lv_cont_create(obj, NULL); + lv_cont_set_fit(cont, LV_FIT_NONE); + lv_obj_set_size(cont, lv_obj_get_width(obj), lv_obj_get_height(obj)); + lv_obj_set_style_local_bg_color(cont, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); + lv_cont_set_layout(cont, LV_LAYOUT_OFF); + lv_obj_set_click(cont, false); + + lv_obj_t * label = lv_label_create(cont, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_set_click(label, false); + lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NO_NETWORK); // WATCH_TEXT_ID_NO_SIM_OR_NETWORK); // WATCH_TEXT_ID_NO_CONTACTS_OR_NETWORK); + lv_obj_align(label, cont, LV_ALIGN_CENTER, 0, 0); + + fail_timer_id = Hal_Timer_Start(2*1000, mmi_vc_call_fail_timeout_cb, NULL, FALSE); +} + static void * mmi_vc_main_ext_get(void) { lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VOIP_PHONEBOOK); @@ -3413,6 +1377,7 @@ static void mmi_vc_call_btn_event_cb(lv_obj_t * btn, lv_event_t e) lv_obj_set_hidden(ext->button_call, true); lv_obj_set_hidden(ext->button_cancel, true); lv_obj_set_hidden(ext->img_no_signal, false); + lv_obj_set_hidden(ext->img_illegal, true); } else { @@ -3480,31 +1445,44 @@ static lv_obj_t * mmi_vc_main_create(lv_obj_t * activity_obj) ext->img_no_signal = obj_temp; lv_obj_set_hidden(ext->img_no_signal, true); + // illegal + obj_temp = lv_img_create(cont, NULL); + lv_img_set_src(obj_temp, ICON_VIDEO_CALL_ILLEGAL); + lv_obj_align(obj_temp, NULL, LV_ALIGN_CENTER, 0, 0); + lv_obj_set_click(obj_temp, false); + ext->img_illegal = obj_temp; + lv_obj_set_hidden(ext->img_illegal, true); + // default obj_temp = lv_img_create(cont, NULL); lv_img_set_src(obj_temp, ICON_VIDEO_CALL_DEFAULT); lv_obj_align(obj_temp, NULL, LV_ALIGN_CENTER, 0, 0); lv_obj_set_click(obj_temp, false); - ext->img_default = obj_temp; + ext->img_call_cancel = obj_temp; - obj_temp = lv_btn_create(ext->img_default, NULL); - lv_obj_set_size(obj_temp, LV_HOR_RES, LV_VER_RES / 2); + obj_temp = lv_btn_create(ext->img_call_cancel, NULL); + lv_obj_set_size(obj_temp, LV_HOR_RES, 146); //lv_obj_set_style_local_bg_color(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x47, 0xA6, 0xFF)); //lv_obj_set_style_local_radius(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 30); //lv_obj_set_style_local_bg_color(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_PRESSED, LV_COLOR_MAKE(0x47, 0xA6, 0xFF)); //lv_obj_set_style_local_radius(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_PRESSED, 30); - lv_obj_add_style(obj_temp, LV_BTN_PART_MAIN, &lv_style_transp_fit); + lv_obj_set_style_local_radius(obj_temp, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_style_local_radius(obj_temp, LV_BTN_PART_MAIN, LV_STATE_PRESSED, 0); + lv_obj_add_style(obj_temp, LV_BTN_PART_MAIN, &lv_style_transp_tight); lv_obj_align(obj_temp, NULL, LV_ALIGN_IN_TOP_MID, 0, 0); lv_obj_set_event_cb(obj_temp, mmi_vc_call_btn_event_cb); ext->button_call = obj_temp; - obj_temp = lv_btn_create(ext->img_default, NULL); - lv_obj_set_size(obj_temp, LV_HOR_RES, LV_VER_RES / 2); - lv_obj_add_style(obj_temp, LV_BTN_PART_MAIN, &lv_style_transp_fit); + obj_temp = lv_btn_create(ext->img_call_cancel, NULL); + lv_obj_set_size(obj_temp, LV_HOR_RES, 280 - 146); + lv_obj_set_style_local_radius(obj_temp, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_style_local_radius(obj_temp, LV_BTN_PART_MAIN, LV_STATE_PRESSED, 0); + lv_obj_add_style(obj_temp, LV_BTN_PART_MAIN, &lv_style_transp_tight); + //lv_obj_add_style(obj_temp, LV_BTN_PART_MAIN, &lv_style_transp_fit); lv_obj_align(obj_temp, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, 0); lv_obj_set_event_cb(obj_temp, mmi_vc_cancel_btn_event_cb); ext->button_cancel = obj_temp; - lv_obj_set_hidden(ext->img_default, false); + lv_obj_set_hidden(ext->img_call_cancel, false); lv_obj_set_hidden(ext->button_call, false); lv_obj_set_hidden(ext->button_cancel, false); @@ -3515,17 +1493,6 @@ static lv_obj_t * mmi_vc_main_create(lv_obj_t * activity_obj) void mmi_video_call_create_event_cb(lv_obj_t * btn, lv_event_t e) { -#ifdef __VIDEO_CALL_TEST__ - nv_watch_vc_contact_t t_test_contact = - { - 3, - {"test001", "test002", "test003"}, - {"jrtc001", "jrtc002", "jrtc003"} - }; - - _lv_memcpy(&s_vc_contact, &t_test_contact, sizeof(nv_watch_vc_contact_t)); -#endif - if(LV_EVENT_CLICKED == e) { lv_watch_png_cache_all_free(); @@ -3536,7 +1503,7 @@ void mmi_video_call_create_event_cb(lv_obj_t * btn, lv_event_t e) } } -#endif + //interface diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_hzch.h b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_hzch.h index a2f3658b..2a1f8e93 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_hzch.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_hzch.h @@ -22,38 +22,6 @@ extern "C" { #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ -#if 1 - -lv_vc_call_obj_ext_t * mmi_vc_call_get_ext(void); - -bool check_voipcall_enter_pm_ind(void); -void watch_voip_message_handle_init(void); - - -void mmi_video_call_jrtc_config_init_00(void); -void mmi_video_call_jrtc_config_init_01(char * t_tokens); -void mmi_video_call_contact_nv_read(void); -void mmi_vc_contact_set(nv_watch_vc_contact_t * contact_list); - -void * mmi_video_call_phone_get_video_buffer(void); -void mmi_vc_call_action_dialing(char * number, MODEM_VIDEO_CALL_TYPE type); -void mmi_vc_call_action_incoming(char * number, MODEM_VIDEO_CALL_TYPE type, char * t_ticket, char * t_tokens); -void mmi_vc_call_action_connecting(void); -void mmi_vc_call_action_connected(void); - -void mmi_ui_msg_update_vc_call_stop(void); -void mmi_vc_call_action_call_stop(void); -void mmi_ui_msg_update_vc_call_incoming(void); -bool mmi_vc_call_action_incoming_no_permission(void); - -int8_t mmi_video_call_dial_req(MODEM_VIDEO_CALL_TYPE calltype, char * pContactUri, char * t_ticket); -void mmi_video_call_hangup_req(BOOL bye); -int8_t mmi_video_call_answer_req(char * t_ticket); -void mmi_video_call_reject_req(BOOL bye); -void voip_fps_check(int8_t fps); - - -#else typedef struct { lv_watch_obj_ext_t lv_watch_obj; @@ -63,10 +31,10 @@ typedef struct lv_obj_t * button_call; lv_obj_t * button_cancel; lv_obj_t * img_no_signal; + lv_obj_t * img_illegal; }lv_hzch_vc_call_obj_ext_t; - lv_vc_call_obj_ext_t * mmi_vc_call_get_ext(void); bool check_voipcall_enter_pm_ind(void); @@ -74,22 +42,29 @@ void watch_voip_message_handle_init(void); void mmi_video_call_jrtc_config_init_00(void); -void mmi_video_call_jrtc_config_init(char * t_tokens); +void mmi_video_call_jrtc_config_init_01(char * t_tokens); void mmi_video_call_contact_nv_read(void); +void mmi_vc_contact_set(nv_watch_vc_contact_t * contact_list); void * mmi_video_call_phone_get_video_buffer(void); -void mmi_vc_call_action_dialing(char * number, MODEM_VIDEO_CALL_TYPE type); +void mmi_vc_call_action_dialing(void); +void mmi_vc_call_action_incoming(char * number, MODEM_VIDEO_CALL_TYPE type, char * t_ticket, char * t_tokens); void mmi_vc_call_action_connecting(void); void mmi_vc_call_action_connected(void); void mmi_ui_msg_update_vc_call_stop(void); void mmi_vc_call_action_call_stop(void); void mmi_ui_msg_update_vc_call_incoming(void); +bool mmi_vc_call_action_incoming_no_permission(void); -int8_t mmi_video_call_dial_req(char * t_number, char * t_ticket); +uint8_t mmi_vc_call_referral_flag_get(void); +void mmi_vc_call_referral_flag_set(uint8_t flag); + +int8_t mmi_video_call_dial_req(MODEM_VIDEO_CALL_TYPE calltype, char * pContactUri, char * t_ticket); void mmi_video_call_hangup_req(BOOL bye); +int8_t mmi_video_call_answer_req(char * t_ticket); +void mmi_video_call_reject_req(BOOL bye); void voip_fps_check(int8_t fps); -#endif #endif diff --git a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c index e22ae9cd..d79ca854 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c +++ b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c @@ -685,9 +685,7 @@ bool mmi_protocol_fzd_parse_ACTION_BIND(unsigned char * next_buff, unsigned int //video call #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ - #if 1 // ndef __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ mmi_protocol_fzd_action_get_vc_config(); - #endif #endif // hengai @@ -2418,7 +2416,7 @@ bool mmi_protocol_fzd_action_VC_CALL_RESPONSE(char * number, uint8_t state) } #endif -#if defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__) +#if defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__) bool mmi_protocol_fzd_action_get_vc_config(void) { return mmi_protocol_fzd_send_without_data(MMI_FZD_WATCH_GET_VC_CONFIG); @@ -2964,14 +2962,20 @@ bool mmi_protocol_fzd_action_VC_CALL_RESPONSE(char * number, char * ticket, MODE } #endif -#if 0 // def __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ -bool mmi_protocol_fzd_action_VC_CALL_DIAL(void); +#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ +bool mmi_protocol_fzd_action_get_vc_config(void) { - return mmi_protocol_fzd_send_without_data(MMI_FZD_ACTION_VC_CALL_DIAL); + return false; +} + +bool mmi_protocol_fzd_action_VC_CALL_REQUEST(void) +{ + return mmi_protocol_fzd_send_without_data(MMI_FZD_WATCH_VC_CALL_REQUEST); } -// [XX*YY*LEN*VC_DIAL,state,appKey,secret,tokens,number,ticket] -bool mmi_protocol_fzd_parse_VC_CALL_DIAL(unsigned char * next_buff, unsigned int next_buff_len) +// [XT*334588000000156*0006*AGTALK,0,efef2323423423,room_456,123] +// 0-continue; other-stop +bool mmi_protocol_fzd_parse_WATCH_VC_CALL_REQUEST(unsigned char * next_buff, unsigned int next_buff_len) { bool result = false; @@ -2984,91 +2988,86 @@ bool mmi_protocol_fzd_parse_VC_CALL_DIAL(unsigned char * next_buff, unsigned int result = true; char * t_value = NULL; + char * t_tokens = NULL; + char * t_room_id = NULL; + char * t_ticket = NULL; + t_value = km_strtok_r(NULL, ",", &next_buff); + t_tokens = km_strtok_r(NULL, ",", &next_buff); + t_room_id = km_strtok_r(NULL, ",", &next_buff); + t_ticket = next_buff; + PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: t_value=%s\n", __FUNCTION__, __LINE__, t_value); + //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: t_tokens,%d,%s\n", __LINE__, strlen(t_tokens), t_tokens+0); + //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: t_room_id,%d,%s\n", __LINE__, strlen(t_room_id), t_room_id+0); + //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: t_ticket,%d,%s\n", __LINE__, strlen(t_ticket), t_ticket+0); + if(0 == atoi(t_value)) { - // stop - //mmi_vc_call_action_call_stop(); + // go on + mmi_vc_call_action_dialing_ext(t_tokens, t_room_id, t_ticket); } else { - // go on - char * t_appkey = NULL; - char * t_secret = NULL; - char * t_tokens = NULL; - char * t_number = NULL; - char * t_ticket = NULL; - - t_appkey = km_strtok_r(NULL, ",", &next_buff); - t_secret = km_strtok_r(NULL, ",", &next_buff); - t_tokens = km_strtok_r(NULL, ",", &next_buff); - t_number = km_strtok_r(NULL, ",", &next_buff); - t_ticket = next_buff; - - mmi_vc_call_action_dialing_ext(t_appkey, t_secret, t_tokens, t_number, t_ticket); + // stop + mmi_vc_call_action_call_stop(); } return result; } -// [XX*YY*LEN*VC_CANCEL,number,ticket] -bool mmi_protocol_fzd_action_VC_CALL_CANCEL(char * t_number, char * t_ticket); -{ - bool result = false; - MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_ACTION_VC_CALL_CANCEL; - unsigned char content_buff[MMI_WATCH_VC_NUMBER_LEN + MMI_WATCH_VC_TICKET_LEN] = {0}; - unsigned int content_lenth = 0; - - sprintf(content_buff, ",%s,%d", t_number, t_ticket); - content_lenth = strlen(content_buff); - - result = mmi_protocol_fzd_send_with_data(action, content_buff, content_lenth); - - return result; -} - -// [XX*YY*LEN*VC_REFERRAL] -bool mmi_protocol_fzd_parse_SERVER_VC_CALL_REFERRAL(unsigned char * next_buff, unsigned int next_buff_len) +// reject +bool mmi_protocol_fzd_parse_SERVER_VC_CALL_RESPONSE(unsigned char * next_buff, unsigned int next_buff_len) { bool result = false; - MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_SERVER_VC_CALL_REFERRAL; + MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_SERVER_VC_CALL_RESPONSE; result = true; mmi_protocol_fzd_send_without_data(action); - mmi_vc_call_action_call_referral(); + // the other party is reject + mmi_vc_call_action_call_stop(); return result; } -// [XX*YY*LEN*VC_RECOVER] -bool mmi_protocol_fzd_parse_SERVER_VC_CALL_RECOVER(unsigned char * next_buff, unsigned int next_buff_len) +// [XT*YYYYYYYYYYYYYYY*LEN*RCALLING,������id,����id(û�������գ���λ�ñ�����,��Ƶ������Ƶ��0Ϊ��Ƶ��1Ϊ��Ƶ��] +bool mmi_protocol_fzd_action_VC_CALL_RESPONSE(char * number, char * ticket) { bool result = false; - MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_SERVER_VC_CALL_RECOVER; + MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_WATCH_VC_CALL_RESPONSE; - result = true; - mmi_protocol_fzd_send_without_data(action); + unsigned char content_buff[NV_WATCH_VC_CONTACT_NUMBER_LEN + 64 + 8] = {0}; + unsigned int content_lenth = 0; + + sprintf(content_buff, ",%s,%s", number, ticket); + content_lenth = strlen(content_buff); + + result = mmi_protocol_fzd_send_with_data(action, content_buff, content_lenth); - // the other party is reject - //mmi_vc_call_action_call_stop(); - return result; } -// [XX*YY*LEN*VC_OFF] -bool mmi_protocol_fzd_parse_SERVER_VC_CALL_CANCEL(unsigned char * next_buff, unsigned int next_buff_len) +// [XX*YY*LEN*VC_REFERRAL,1] +bool mmi_protocol_fzd_parse_SERVER_VC_CALL_REFERRAL(unsigned char * next_buff, unsigned int next_buff_len) { bool result = false; - MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_SERVER_VC_CALL_CANCEL; + MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_SERVER_VC_CALL_REFERRAL; + + if(NULL == next_buff || 0 == next_buff_len) + { + PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + return false; + } result = true; mmi_protocol_fzd_send_without_data(action); - // the other party is reject - //mmi_vc_call_action_call_stop(); + uint8_t flag = 0; + flag = atoi(next_buff); + mmi_vc_call_referral_flag_set(flag); + return result; } #endif @@ -4068,6 +4067,10 @@ bool mmi_protocol_fzd_action_send_telecom_info(void) strcat(content_buff, ",VERSION:"); strcat(content_buff, version_str); + //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, content_buff); + //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, content_buff + 96); + content_lenth = strlen(content_buff); result = mmi_protocol_fzd_send_with_data(action, content_buff, content_lenth); diff --git a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.h b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.h index 054cae2d..98acec81 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.h +++ b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.h @@ -144,8 +144,7 @@ typedef enum MMI_FZD_ACTION_GET_APP_QRCODE, #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ -#if defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_WULIAN__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_TONGXIN__) \ - || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__) +#if defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_WULIAN__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_TONGXIN__) MMI_FZD_WATCH_GET_VC_CONFIG, MMI_FZD_WATCH_GET_VC_CONTACT, MMI_FZD_WATCH_VC_CALL_REQUEST, @@ -153,12 +152,11 @@ typedef enum MMI_FZD_SERVER_VC_CALL_REQUEST, MMI_FZD_WATCH_VC_CALL_RESPONSE, #endif -#if 0 // def __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ - MMI_FZD_ACTION_VC_CALL_DIAL, - MMI_FZD_ACTION_VC_CALL_CANCEL, +#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ + MMI_FZD_WATCH_VC_CALL_REQUEST, + MMI_FZD_SERVER_VC_CALL_RESPONSE, + MMI_FZD_WATCH_VC_CALL_RESPONSE, MMI_FZD_SERVER_VC_CALL_REFERRAL, - MMI_FZD_SERVER_VC_CALL_RECOVER, - MMI_FZD_SERVER_VC_CALL_CANCEL, #endif #endif @@ -327,18 +325,14 @@ bool mmi_protocol_fzd_action_get_app_qrcode(void); bool mmi_protocol_fzd_parse_ACTION_GET_APP_QRCODE(unsigned char * next_buff, unsigned int next_buff_len); #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ -#if defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_WULIAN__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_TONGXIN__) \ - || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__) +#if defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_WULIAN__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_TONGXIN__) bool mmi_protocol_fzd_action_get_vc_config(void); bool mmi_protocol_fzd_action_VC_CALL_REQUEST(char * number, uint8_t call_type); #endif -#if 0 // def __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ -bool mmi_protocol_fzd_action_VC_CALL_DIAL(void); -bool mmi_protocol_fzd_parse_VC_CALL_DIAL(unsigned char * next_buff, unsigned int next_buff_len); -bool mmi_protocol_fzd_action_VC_CALL_CANCEL(char * t_number, char * t_ticket); +#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ +bool mmi_protocol_fzd_action_get_vc_config(void); +bool mmi_protocol_fzd_action_VC_CALL_REQUEST(void); bool mmi_protocol_fzd_parse_SERVER_VC_CALL_REFERRAL(unsigned char * next_buff, unsigned int next_buff_len); -bool mmi_protocol_fzd_parse_SERVER_VC_CALL_RECOVER(unsigned char * next_buff, unsigned int next_buff_len); -bool mmi_protocol_fzd_parse_SERVER_VC_CALL_CANCEL(unsigned char * next_buff, unsigned int next_buff_len); #endif #endif diff --git a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd_content.c b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd_content.c index 365f65ce..c055b672 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd_content.c +++ b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd_content.c @@ -77,7 +77,7 @@ static unsigned char * mmi_protocol_fzd_action_string_get(MMI_PROTOCOL_FZD_ACTIO {MMI_FZD_SERVER_VC_CALL_REQUEST, "jup_hoo_request"}, {MMI_FZD_WATCH_VC_CALL_RESPONSE, "jup_hoo_response"}, #endif - #if defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_TONGXIN__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__) + #if defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_TONGXIN__) {MMI_FZD_WATCH_GET_VC_CONFIG, "JPREG"}, {MMI_FZD_WATCH_GET_VC_CONTACT, "MEMBERS"}, {MMI_FZD_WATCH_VC_CALL_REQUEST, "AGTALK"}, @@ -85,12 +85,11 @@ static unsigned char * mmi_protocol_fzd_action_string_get(MMI_PROTOCOL_FZD_ACTIO {MMI_FZD_SERVER_VC_CALL_REQUEST, "CALLING"}, {MMI_FZD_WATCH_VC_CALL_RESPONSE, "RCALLING"}, #endif - #if 0 // def __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ - {MMI_FZD_ACTION_VC_CALL_DIAL, "VC_DIAL"}, - {MMI_FZD_ACTION_VC_CALL_CANCEL, "VC_CANCEL"}, + #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ + {MMI_FZD_WATCH_VC_CALL_REQUEST, "AGTALK"}, + {MMI_FZD_SERVER_VC_CALL_RESPONSE, "RTALK"}, + {MMI_FZD_WATCH_VC_CALL_RESPONSE, "RCALLING"}, {MMI_FZD_SERVER_VC_CALL_REFERRAL, "VC_REFERRAL"}, - {MMI_FZD_SERVER_VC_CALL_RECOVER, "VC_RECOVER"}, - {MMI_FZD_SERVER_VC_CALL_CANCEL, "VC_OFF"}, #endif #endif #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ @@ -338,8 +337,7 @@ static bool mmi_protocol_fzd_content_parse(unsigned char * content_ptr, unsigned break; #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ - #if defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_WULIAN__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_TONGXIN__) \ - || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__) + #if defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_WULIAN__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_TONGXIN__) case MMI_FZD_WATCH_GET_VC_CONFIG: mmi_protocol_fzd_parse_WATCH_GET_VC_CONFIG(next_buff, next_buff_len); break; @@ -363,25 +361,21 @@ static bool mmi_protocol_fzd_content_parse(unsigned char * content_ptr, unsigned case MMI_FZD_WATCH_VC_CALL_RESPONSE: break; #endif - #if 0 // def __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ - case MMI_FZD_ACTION_VC_CALL_DIAL: - mmi_protocol_fzd_parse_VC_CALL_DIAL(next_buff, next_buff_len); + #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ + case MMI_FZD_WATCH_VC_CALL_REQUEST: + mmi_protocol_fzd_parse_WATCH_VC_CALL_REQUEST(next_buff, next_buff_len); + break; + + case MMI_FZD_SERVER_VC_CALL_RESPONSE: + mmi_protocol_fzd_parse_SERVER_VC_CALL_RESPONSE(next_buff, next_buff_len); break; - case MMI_FZD_ACTION_VC_CALL_CANCEL: + case MMI_FZD_WATCH_VC_CALL_RESPONSE: break; case MMI_FZD_SERVER_VC_CALL_REFERRAL: mmi_protocol_fzd_parse_SERVER_VC_CALL_REFERRAL(next_buff, next_buff_len); break; - - case MMI_FZD_SERVER_VC_CALL_RECOVER: - mmi_protocol_fzd_parse_SERVER_VC_CALL_RECOVER(next_buff, next_buff_len); - break; - - case MMI_FZD_SERVER_VC_CALL_CANCEL: - mmi_protocol_fzd_parse_SERVER_VC_CALL_CANCEL(next_buff, next_buff_len); - break; #endif #endif