/**********************
* STATIC PROTOTYPES
**********************/
-static lv_obj_t * voip_phone_cont_create(lv_obj_t * par, lv_align_t cont_layout, lv_style_t * style, lv_coord_t width);
static lv_obj_t * voip_ring_off_content_create(lv_obj_t * par);
-static void mmi_video_call_phone_dialing(lv_obj_t * content);
-static void mmi_video_call_phone_ring(lv_obj_t * content);
-static void mmi_video_call_phone_connected(lv_obj_t * content);
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_connected_animation(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_ring_hook_action(lv_obj_t * btn, lv_event_t e);
-static void voip_phone_ring_off_timeout_cb(void * para);
-static void voip_phone_callreq_timeout_cb(void * para);
static void voip_phone_cleanup(void);
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 video_call_add_element(lv_obj_t * element);
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);
-#if VOIP_PHONE_TEST
-static void voip_phone_connected_cb(void * para);
-static void watch_voip_call_response_originating(int32_t index);
-#endif
-
void voip_audio_ctrl_callback(AUDIO_CTRL_PRIORITY priority)
{
return(voip_append_obj);
}
-static lv_obj_t * mmi_video_call_phone_create(lv_obj_t * activity_obj, voip_phone_ui_e phone_ui_id)
-{
- printf("%s %d\n", __FUNCTION__, __LINE__);
-
- if(VOIP_PHONE_UI_CONNECTED == phone_ui_id) {
- /* set speaker volume to nv when leaving activiry's slider */
- voip_set_volume_when_slider_act();
- }
-
- /* cleanup phone first */
- voip_phone_cleanup();
-
- if(activity_obj == NULL)
- {
- lv_watch_activity_ext_t activity_ext = {0};
-
- activity_ext.actId = ACT_ID_VOIPPHONE;
- activity_ext.create = NULL;
- activity_ext.prepare_destory = voip_phone_prepare_destory;
- activity_obj = lv_watch_creat_activity_obj(&activity_ext);
- LV_ASSERT_MEM(activity_obj);
- if(activity_obj == NULL) {
- return(NULL);
- }
- }
-
- lv_obj_t * obj = lv_watch_obj_create(activity_obj);
- LV_ASSERT_MEM(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_voip_phone_obj_ext_t * ext = lv_obj_allocate_ext_attr(obj, sizeof(lv_voip_phone_obj_ext_t));
- LV_ASSERT_MEM(ext);
- if(ext == NULL) {
- return(NULL);
- }
-
- ext->phone_status_label = NULL;
- ext->phone_animation_obj = NULL;
- ext->phone_ui_t = phone_ui_id;
- 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->ring_value_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) - 20);
- //lv_cont_set_layout(content, LV_LAYOUT_COLUMN_MID);
- LV_ASSERT_MEM(content);
- if(content == NULL) {
- return(NULL);
- }
- lv_obj_add_style(content, LV_OBJ_PART_MAIN, &lv_watch_style_transp);
- /* must click false */
- lv_obj_set_click(content, false);
- lv_obj_align(content, obj, LV_ALIGN_CENTER, 0, 0);
-
- if(ext->phone_ui_t == VOIP_PHONE_UI_DIALING) {
- mmi_video_call_phone_dialing(content);
- voip_dialing_animation(ext->phone_status_label);
- } else if(ext->phone_ui_t == VOIP_PHONE_UI_INCOMING) {
- mmi_video_call_phone_ring(content);
- voip_ring_animation(ext->phone_status_label);
- } else if(ext->phone_ui_t == PHONE_UI_CONNECTED) {
- mmi_video_call_phone_connected(content);
- voip_connected_animation(ext->phone_status_label);
- }
-
- return(obj);
-}
-
-lv_res_t mmi_video_call_phone_ring_off_create()
-{
- printf("%s %d\n", __FUNCTION__, __LINE__);
-
- lv_voip_phone_obj_ext_t * ext = voip_phone_get_ext();
- LV_ASSERT_MEM(ext);
- if(ext == NULL) {
- return(LV_RES_INV);
- }
-
- // stop callreq timer
- if(NULL != s_video_call_params.callreq_timer_id) {
- Hal_Timer_Stop(s_video_call_params.callreq_timer_id);
- s_video_call_params.callreq_timer_id = NULL;
- }
-
- if(ext->phone_ui_t == VOIP_PHONE_UI_INCOMING || ext->phone_ui_t == VOIP_PHONE_UI_DIALING) {
- if(ext->phone_status_label) {
- lv_label_set_text(ext->phone_status_label, "");
- }
-
- voip_ring_off_content_create(voip_phone_get_obj());
- } else if(ext->phone_ui_t == PHONE_UI_CONNECTED) {
- voip_ring_off_content_create(voip_phone_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, voip_phone_get_obj());
- lv_anim_set_ready_cb(&a, (lv_anim_ready_cb_t)voip_phone_obj_hide_anim_end);
- lv_anim_set_time(&a, VOIP_PHONE_RING_OFF_CONTINUE_TIME);
- lv_anim_start(&a);
-
- voip_signal_check_stop();
- voip_rat_check_stop();
-
- return(LV_RES_OK);
-}
-
-void mmi_video_call_phone_ring_off_action(lv_obj_t * btn, lv_event_t e)
-{
- if(LV_EVENT_CLICKED != e) {
- return;
- }
-
- printf("%s: %d, state=%d\n", __FUNCTION__, __LINE__, s_video_call_params.state);
-
- if(false == s_video_call_params.ring_off) {
- s_video_call_params.ring_off = true;
-
- if(NULL == s_video_call_params.ring_off_timer_id) {
- s_video_call_params.ring_off_timer_id = Hal_Timer_Start(VOIP_RING_OFF_TIMER_LEN, voip_phone_ring_off_timeout_cb, NULL, 0);
- }
- // stop callreq timer
- if(NULL != s_video_call_params.callreq_timer_id) {
- Hal_Timer_Stop(s_video_call_params.callreq_timer_id);
- s_video_call_params.callreq_timer_id = NULL;
- }
- }
-
- switch(s_video_call_params.state) {
- case MMI_VOIP_CALL_STATE_NULL:
- case MMI_VOIP_CALL_STATE_INVALID:
- // do noting
- break;
-
- case MMI_VOIP_CALL_STATE_ACTIVE:
- mmi_video_call_hangup_req(TRUE);
- break;
-
- case MMI_VOIP_CALL_STATE_INCOMING:
- Hal_Tone_Play_End();
- mmi_video_call_reject_req(TRUE);
- break;
-
- default:
- mmi_video_call_hangup_req(TRUE);
- break;
- } /* switch */
-
- voip_signal_check_stop();
- voip_rat_check_stop();
-
-#if VOIP_PHONE_TEST
- watch_voip_call_response_no_carrier(s_video_call_params.index, 0);
-#endif
-}
-
lv_voip_phone_obj_ext_t * voip_phone_get_ext(void)
{
lv_voip_phone_obj_ext_t * ext = NULL;
return(watch_obj);
}
-#if VOIP_PHONE_TEST
-
-static void voip_phone_connected_cb(void * para)
-{
- printf("%s %d\n", __FUNCTION__, __LINE__);
- watch_voip_call_response_connect(s_video_call_params.index);
-}
-#endif
-
static void voip_phone_left_slide_callback(lv_obj_t * obj)
{
printf("%s %d\n", __FUNCTION__, __LINE__);
-#if VOIP_PHONE_TEST
- if((MMI_VOIP_CALL_STATE_INCOMING == s_video_call_params.state)) { // MT call
- int32_t index = 1;
-
- watch_voip_call_response_originating(index);
- watch_voip_call_response_alerting(index);
-
- Hal_Timer_Start(60, voip_phone_connected_cb, NULL, 0);
- }
-
- else if(MMI_VOIP_CALL_STATE_DIALING == s_video_call_params.state) { // MO call
- int32_t index = 1;
-
- watch_voip_call_response_originating(index);
- watch_voip_call_response_alerting(index);
-
- Hal_Timer_Start(60, voip_phone_connected_cb, NULL, 0);
- } else
-#endif
- if((MMI_VOIP_CALL_STATE_ACTIVE == s_video_call_params.state)
- && (MODEM_VIDEO_CALL_TYPE_VIDEO == s_video_call_params.voip_call_type)) {
+ 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_video_call_phone_ring_off_action(NULL, LV_EVENT_CLICKED);
+ mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED);
}
static void voip_phone_down_slide_callback(lv_obj_t * obj)
voip_volume_btn_action(NULL, LV_EVENT_CLICKED);
}
-static lv_obj_t * voip_phone_cont_create(lv_obj_t * par, lv_align_t cont_layout, lv_style_t * style, lv_coord_t width)
-{
- printf("%s %d\n", __FUNCTION__, __LINE__);
-
- lv_obj_t * content = lv_cont_create(par, NULL);
-
- if(width > 0) {
- lv_cont_set_fit2(content, LV_FIT_NONE, LV_FIT_TIGHT);
- lv_obj_set_width(content, width);
- } else {
- lv_cont_set_fit2(content, LV_FIT_TIGHT, LV_FIT_TIGHT);
- }
- lv_obj_add_style(content, LV_OBJ_PART_MAIN, style);
- lv_cont_set_layout(content, cont_layout);
- lv_obj_set_click(content, false);
- return(content);
-}
-
static void voip_slider_action(lv_obj_t * slider, lv_event_t e)
{
if(e == LV_EVENT_VALUE_CHANGED)
lv_obj_add_style(content, LV_OBJ_PART_MAIN, &lv_watch_cont_opa1);
lv_obj_set_size(content, 204, 44);
- if(ext->phone_ui_t == VOIP_PHONE_UI_INCOMING || ext->phone_ui_t == VOIP_PHONE_UI_DIALING) {
+ if(ext->phone_ui_t == MMI_VC_UI_INCOMING || ext->phone_ui_t == MMI_VC_UI_DIALING) {
lv_obj_align(content, obj, LV_ALIGN_IN_TOP_MID, 0, 10);
} else {
lv_obj_align(content, obj, LV_ALIGN_CENTER, 0, -12);
lv_obj_set_click(label, false);
return(obj);
-} /* voip_ring_off_content_create */
-
-static void voip_phone_ring_off_timeout_cb(void * para)
-{
- printf("%s %d\n", __FUNCTION__, __LINE__);
- s_video_call_params.ring_off_timer_id = NULL;
- s_video_call_params.ring_off_timeout = true;
- watch_voip_call_response_no_carrier(s_video_call_params.index, 0);
}
-static void voip_ring_hook_action(lv_obj_t * btn, lv_event_t e)
-{
- if(LV_EVENT_CLICKED != e) {
- return;
- }
-
- printf("%s %d\n", __FUNCTION__, __LINE__);
-
- if(btn) {
- lv_obj_set_click(btn, false);
- }
- Hal_Tone_Play_End();
- int8_t ret = mmi_video_call_answer_req();
- if(ret < 0) {
- watch_voip_call_response_no_carrier(s_video_call_params.index, 0);
- }
-}
static void voip_phone_cleanup(void)
{
}
}
-static void mmi_video_call_phone_dialing(lv_obj_t * content)
-{
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
- lv_voip_phone_obj_ext_t * ext = voip_phone_get_ext();
+static void voip_phone_prepare_destory(lv_obj_t * activity_obj)
+{
+ printf("%s %d\n", __FUNCTION__, __LINE__);
- LV_ASSERT_MEM(ext);
- if(ext == NULL) {
- return;
- }
+ lv_watch_png_cache_all_free();
- // label dialing
- lv_obj_t * 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_DAILING);
- lv_obj_set_click(label, false);
- lv_obj_align(label, content, LV_ALIGN_IN_TOP_MID, 0, 10);
- ext->phone_status_label = label;
+ // stop playing tone
+ Hal_Tone_Play_End();
- // 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);
+ // ring off
+ mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED);
- // 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, 20);
- 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_video_call_phone_ring_off_action);
- lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_MID, 0, -30);
-}
-
-static void mmi_video_call_phone_ring(lv_obj_t * content)
-{
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
-
- lv_voip_phone_obj_ext_t * ext = voip_phone_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_RINGING);
- lv_obj_set_click(label, false);
- 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, 10);
- 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);
-
- // 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_video_call_phone_ring_off_action);
- lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_LEFT, 20, -30);
-
- // 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, voip_ring_hook_action);
- lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_RIGHT, -20, -30);
-}
-
-static void mmi_video_call_phone_connected(lv_obj_t * content)
-{
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
-
- lv_voip_phone_obj_ext_t * ext = voip_phone_get_ext();
-
- LV_ASSERT_MEM(ext);
- if(ext == NULL) {
- return;
- }
-
- if(s_video_call_params.voip_call_type == MODEM_VIDEO_CALL_TYPE_VOICE)
- {
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
-
- hal_rtc_t rtc_curr; // current rtc time
- Hal_Rtc_Gettime(&rtc_curr);
- 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, 10);
- lv_obj_set_click(img, false);
-
- // name
- lv_obj_t * 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
- lv_obj_t * btn;
- btn = lv_imgbtn_create(content, 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, content, LV_ALIGN_IN_BOTTOM_LEFT, 20, -50);
-
- //btn ring off
- btn = lv_imgbtn_create(content, NULL);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_OFF);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_OFF);
- lv_obj_set_event_cb(btn, mmi_video_call_phone_ring_off_action);
- lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_RIGHT, -20, -50);
- }
- else
- {
- lv_obj_t * canvas;
- lv_obj_t * label;
- lv_obj_t * btn;
-
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%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))
- {
- hal_rtc_t rtc_curr; // current rtc time
- Hal_Rtc_Gettime(&rtc_curr);
- ext->connect_start_time = time_to_seconds(&rtc_curr);
-
- lv_obj_t * cont = voip_phone_cont_create(content, LV_LAYOUT_OFF, &lv_watch_style_transp, -1);
- lv_obj_set_width(cont, lv_obj_get_width(content));
- lv_obj_add_style(content, LV_OBJ_PART_MAIN, &lv_watch_style_transp);
-
- /*Create the canvas object*/
- canvas = lv_canvas_create(cont, 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, cont, LV_ALIGN_IN_TOP_MID, 0, 0);
- /*Assign the buffer to the canvas*/
- lv_img_set_src(canvas, ICON_VIDEO_CALL);
- 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, "0:0");
- lv_obj_set_click(label, false);
- lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
- if(LV_BIDI_DIR_RTL == lv_obj_get_base_dir(content)) {
- lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_RIGHT, -lv_obj_get_width(label), 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_font30);
- 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;
-
- cont = voip_phone_cont_create(content, LV_LAYOUT_OFF, &lv_watch_style_transp, lv_obj_get_width(content) - 40);
- // btn volume
- 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);
-
- // btn switch video
- btn = lv_imgbtn_create(cont, 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, cont, LV_ALIGN_IN_BOTTOM_MID, 0, 0);
-
- // btn ring off
- btn = lv_imgbtn_create(cont, NULL);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_OFF);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_OFF);
- lv_obj_set_event_cb(btn, mmi_video_call_phone_ring_off_action);
- lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
- }
- 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_VIDEO_CALL);
- 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, "0:0");
- lv_obj_set_click(label, false);
- lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
- if(LV_BIDI_DIR_RTL == lv_obj_get_base_dir(content)) {
- lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_RIGHT, -lv_obj_get_width(label), 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_font30);
- 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_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, canvas, LV_ALIGN_IN_BOTTOM_LEFT, 0, -20);
- lv_obj_add_style(btn, LV_OBJ_PART_MAIN, &lv_watch_style_transp);
- ext->ring_value_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_PHONE_RING_OFF);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_OFF);
- lv_obj_set_event_cb(btn, mmi_video_call_phone_ring_off_action);
- lv_obj_align(btn, canvas, LV_ALIGN_IN_BOTTOM_RIGHT, 0, -20);
- 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->ring_value_button, ext->canvas_button_hidden_flag);
- 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(voip_phone_get_obj()) {
- lv_watch_obj_set_down_slide_cb(voip_phone_get_obj(), voip_phone_down_slide_callback);
- }
- }
-}
-
-static void voip_phone_prepare_destory(lv_obj_t * activity_obj)
-{
- printf("%s %d\n", __FUNCTION__, __LINE__);
-
- lv_watch_png_cache_all_free();
-
- // stop playing tone
- Hal_Tone_Play_End();
-
- // ring off
- mmi_video_call_phone_ring_off_action(NULL, LV_EVENT_CLICKED);
-
- // stop ring off timer
- 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;
+ // stop ring off timer
+ 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;
}
// stop callreq timer
}
Hal_Mem_Set(&s_video_call_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
- s_video_call_params.state = MMI_VOIP_CALL_STATE_NULL;
+ s_video_call_params.state = MMI_VIDEO_CALL_STATE_NONE;
}
static void voip_get_time_elaps(uint32_t last_time, char * str, int8_t size)
}
}
-#if VOIP_PHONE_TEST != 0
-
-static void watch_voip_call_response_originating(int32_t index)
+void mmi_vc_ring_off_no_carrier(uint8_t isNoCarrier)
{
- printf("%s %d\n", __FUNCTION__, __LINE__);
-
- if(MMI_VOIP_CALL_STATE_DIALING == s_video_call_params.state) {
+ if((false == s_video_call_params.ring_off_timeout)
+ && (1 == isNoCarrier)
+ && (MMI_VIDEO_CALL_STATE_NONE == s_video_call_params.state))
+ {
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
return;
}
- printf("%s: %d\n", __func__, index);
- s_video_call_params.index = index;
-
- // state: NULL -> DIALLING
- s_video_call_params.state = MMI_VOIP_CALL_STATE_DIALING;
-}
-#endif
-
-void watch_voip_call_response_alerting(int32_t index)
-{
- printf("%s %d index is %d\n", __FUNCTION__, __LINE__, index);
- if(MMI_VOIP_CALL_STATE_ALERTING == s_video_call_params.state) {
- return;
- }
-
- uint8_t volume;
-
- // state: DIALLING -> ALERTING
- s_video_call_params.state = MMI_VOIP_CALL_STATE_ALERTING;
-
- // set speaker volume
- UI_NV_Read_Req(NV_SECTION_UI_PHONE, VOIP_PHONE_NV_VOLUME_OFFSET, 1, &volume);
- if(!Hal_Set_BT_Audio_Path((HAL_SPEAKER_GAIN)volume))
- Hal_Call_Speaker(HAL_CALL_SPK_ON, (HAL_SPEAKER_GAIN)volume);
-}
-
-void watch_voip_call_response_ring(int32_t index)
-{
- printf("%s: %d\n", __func__, index);
- Hal_NFFS_File_Play_Repeat(AUDIO_INCOMING_CALL, query_current_volume());
-
- s_video_call_params.state = MMI_VOIP_CALL_STATE_ALERTING;
-}
-
-void watch_voip_call_response_connect(int32_t index)
-{
- printf("%s %d index is %d\n", __FUNCTION__, __LINE__, index);
- if(MMI_VOIP_CALL_STATE_ACTIVE == s_video_call_params.state) {
- return;
- }
-
- s_video_call_params.state = MMI_VOIP_CALL_STATE_ACTIVE;
-
- // stop callreq timer
- if(NULL != s_video_call_params.callreq_timer_id) {
- Hal_Timer_Stop(s_video_call_params.callreq_timer_id);
- s_video_call_params.callreq_timer_id = NULL;
- }
-
- // stop playing tone
- Hal_Tone_Play_End();
-
- Hal_Set_Voice_Call_Status(VOICE_CALL_START);
-
- // create connected UI
- mmi_video_call_phone_create(NULL, VOIP_PHONE_UI_CONNECTED);
-}
-
-void watch_voip_call_response_disconnect(int32_t index)
-{
- // not used
- (void)index;
- printf("%s: %d\n", __func__, index);
- Hal_Tone_Play_End();
-
- // create ring off UI
- if(voip_phone_get_activity_obj()) {
- mmi_video_call_phone_ring_off_create();
- // remove donw slider handle
- lv_watch_obj_set_down_slide_cb(voip_phone_get_obj(), NULL);
- }
- Hal_Mem_Set(&s_video_call_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
- s_video_call_params.state = MMI_VOIP_CALL_STATE_NULL;
-}
-
-void watch_voip_call_response_no_carrier(int32_t index, uint8_t isNoCarrier)
-{
- printf("%s: %d\n", __func__, __LINE__);
-
- if((false == s_video_call_params.ring_off_timeout)
- && (1 == isNoCarrier)
- && (MMI_VOIP_CALL_STATE_NULL == s_video_call_params.state)) {
- printf("%s: ignore no carrier in state NULL\n", __func__);
- return;
- }
-
- printf("%s: %d\n", __func__, index);
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
// stop playing tone
Hal_Tone_Play_End();
// stop ring off timer
- if(NULL != s_video_call_params.ring_off_timer_id) {
+ 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;
}
// stop callreq timer
- if(NULL != s_video_call_params.callreq_timer_id) {
+ if(NULL != s_video_call_params.callreq_timer_id)
+ {
Hal_Timer_Stop(s_video_call_params.callreq_timer_id);
s_video_call_params.callreq_timer_id = NULL;
}
// create ring off UI
lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VOIPPHONE);
- if(activity_obj) {
+ if(activity_obj)
+ {
mmi_video_call_phone_ring_off_create();
}
- if(MMI_MODEM_CALL_STATE_NULL != phone_get_call_state()) {
+ 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();
Hal_Mem_Set(&s_video_call_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
- s_video_call_params.state = MMI_VOIP_CALL_STATE_NULL;
-} /* watch_voip_call_response_no_carrier */
-
-void watch_voip_call_response_state_change(MMI_Modem_Call_Response_State_Change_t * state)
-{
- printf("%s %d\n", __FUNCTION__, __LINE__);
-
- for(uint8_t i = 0; i < state->count; i++) {
- Hal_Mem_Free(state->calls[i].number);
- Hal_Mem_Free(state->calls[i].name);
- }
- Hal_Mem_Free(state->calls);
- Hal_Mem_Free(state);
-}
-
-void watch_voip_call_response_bottom_error(void)
-{
- printf("%s %d\n", __FUNCTION__, __LINE__);
- voip_phone_cleanup();
- Hal_Mem_Set(&s_video_call_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
-}
-
-void watch_voip_call_response_bottom_need_redail(void)
-{
- printf("%s %d\n", __FUNCTION__, __LINE__);
- //voip_call_dial_req(s_video_call_params.voip_call_type, s_video_call_params.number);
-}
-
-void watch_voip_incomingcall_response(char * number, int32_t calltype)
-{
- uint8_t volume;
- voip_phonebook_contact_t * contact_info = NULL;
-
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %s,%d\n", __FUNCTION__, __LINE__, number, calltype);
-
- if((MMI_MODEM_CALL_STATE_NULL != phone_get_call_state()) || is_rat_gsm()) {
- printf("tele call is on going %d or in gsm mode, reject voip call\n", phone_get_call_state());
- mmi_video_call_reject_req(TRUE);
- return;
- }
-
- Hal_Mem_Set(&s_video_call_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
- s_video_call_params.voip_call_type = (MODEM_VIDEO_CALL_TYPE)calltype;
- s_video_call_params.is_mt = true;
- s_video_call_params.state = MMI_VOIP_CALL_STATE_INCOMING;
- strncpy(s_video_call_params.number, number, NV_CONTACTS_MAX_NUMBER_LEN);
-
- //Hal_Mem_Free(number);
-
- if(1)
- {
- if(AUDIO_CTRL_PRIORITY_2 == Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_2,voip_audio_ctrl_callback))
- {
- watch_set_lcd_status(true);
- // set speaker volume
-
- UI_NV_Read_Req(NV_SECTION_UI_PHONE, VOIP_PHONE_NV_VOLUME_OFFSET, 1, &volume);
- if(!Hal_Set_BT_Audio_Path((HAL_SPEAKER_GAIN)volume))
- Hal_Call_Speaker(HAL_CALL_SPK_ON, (HAL_SPEAKER_GAIN)volume);
-
- // play tone
- Hal_NFFS_File_Play_Repeat(AUDIO_INCOMING_CALL, query_current_volume());
-
- // start rat checking
- voip_rat_check_start();
-
- // create ring UI
- mmi_video_call_phone_create(NULL, VOIP_PHONE_UI_INCOMING);
- }
- else
- { // AUDIO_CTRL_PRIORITY_1
- printf("%s: phone call has been run, auto reject\n", __func__);
- // auto reject
- mmi_video_call_reject_req(FALSE);
- voip_signal_check_stop();
- voip_rat_check_stop();
-
- // stop ring off timer
- 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;
- }
-
- // stop callreq timer
- if(NULL != s_video_call_params.callreq_timer_id) {
- Hal_Timer_Stop(s_video_call_params.callreq_timer_id);
- s_video_call_params.callreq_timer_id = NULL;
- }
-
- Hal_Mem_Set(&s_video_call_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
- s_video_call_params.state = MMI_VOIP_CALL_STATE_NULL;
- voip_set_volume_when_slider_act();
- voip_phone_cleanup();
- lv_watch_png_cache_all_free();
- Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_2);
- }
- } else {
- printf("%s: not a contact, auto reject\n", __func__);
- // auto reject
- mmi_video_call_reject_req(TRUE);
-
-#if VOIP_PHONE_TEST
- watch_voip_call_response_no_carrier(s_video_call_params.index, 0);
-#endif
- }
-} /* watch_voip_incomingcall_response */
-
-void watch_ui_voip_message_handle(void * msg)
-{
-}
-
-void watch_voip_autotest_handle(void * testmsg)
-{
+ s_video_call_params.state = MMI_VIDEO_CALL_STATE_NONE;
}
static bool mmi_video_call_check_mo_permission(void)
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_voip_phone_obj_ext_t * ext = voip_phone_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;
+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_voip_phone_obj_ext_t * ext = voip_phone_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->ring_value_button, ext->canvas_button_hidden_flag);
+ 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 = voip_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_voip_phone_obj_ext_t * ext = voip_phone_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_voip_phone_obj_ext_t * ext = voip_phone_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);
+ }
+ }
+}
+
+
+
+#ifdef __VIDEO_CALL_TEST__
+#define MMI_VC_ROOM_ID "jrtc001" // "104799"
+#endif
+
+static nv_watch_vc_contact_t s_vc_contact = {0};
+static TIMER_ID fail_timer_id = NULL;
+
+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][%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);
+
+}
+
+// state: 0-hang up or reject; 1-accepte; 2-dial
+void mmi_vc_call_operate_send_to_server(uint_8 flag)
+{
+ if(0 == flag)
+ mmi_protocol_fzd_action_VC_CALL_RESPONSE(s_video_call_params.number, 0);
+ else if(1 == flag)
+ mmi_protocol_fzd_action_VC_CALL_RESPONSE(s_video_call_params.number, 1);
+ else if(2 == flag)
+ mmi_protocol_fzd_action_VC_CALL_REQUEST(s_video_call_params.number, s_video_call_params.call_type);
+}
+
+static void mmi_vc_incoming_hook_action(lv_obj_t * btn, lv_event_t e)
+{
+ if(LV_EVENT_CLICKED != e)
+ {
+ return;
+ }
+
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ if(btn) {
+ lv_obj_set_click(btn, false);
+ }
+
+ Hal_Tone_Play_End();
+
+ int8_t ret = mmi_video_call_answer_req();
+ if(ret < 0) {
+ mmi_vc_ring_off_no_carrier(0);
+ }
+}
+
+
+lv_res_t mmi_video_call_phone_ring_off_create()
+{
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ lv_voip_phone_obj_ext_t * ext = voip_phone_get_ext();
+ LV_ASSERT_MEM(ext);
+ if(ext == NULL) {
+ return(LV_RES_INV);
+ }
+
+ // stop callreq timer
+ if(NULL != s_video_call_params.callreq_timer_id) {
+ Hal_Timer_Stop(s_video_call_params.callreq_timer_id);
+ s_video_call_params.callreq_timer_id = NULL;
+ }
+
+ if(ext->phone_ui_t == MMI_VC_UI_INCOMING || ext->phone_ui_t == MMI_VC_UI_DIALING) {
+ if(ext->phone_status_label) {
+ lv_label_set_text(ext->phone_status_label, "");
+ }
+
+ voip_ring_off_content_create(voip_phone_get_obj());
+ } else if(ext->phone_ui_t == PHONE_UI_CONNECTED) {
+ voip_ring_off_content_create(voip_phone_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, voip_phone_get_obj());
+ lv_anim_set_ready_cb(&a, (lv_anim_ready_cb_t)voip_phone_obj_hide_anim_end);
+ lv_anim_set_time(&a, VOIP_PHONE_RING_OFF_CONTINUE_TIME);
+ lv_anim_start(&a);
+
+ voip_signal_check_stop();
+ voip_rat_check_stop();
+
+ return(LV_RES_OK);
+}
+
+static void mmi_vc_ring_off_timeout_cb(void * para)
+{
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ s_video_call_params.ring_off_timer_id = NULL;
+ s_video_call_params.ring_off_timeout = true;
+ mmi_vc_ring_off_no_carrier(0);
+}
+
+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][%s][%d]: %d\n", __FUNCTION__, __LINE__, s_video_call_params.state);
+
+ if(false == s_video_call_params.ring_off)
+ {
+ s_video_call_params.ring_off = true;
+
+ if(NULL == s_video_call_params.ring_off_timer_id) {
+ s_video_call_params.ring_off_timer_id = Hal_Timer_Start(VOIP_RING_OFF_TIMER_LEN, mmi_vc_ring_off_timeout_cb, NULL, 0);
+ }
+ // stop callreq timer
+ if(NULL != s_video_call_params.callreq_timer_id) {
+ Hal_Timer_Stop(s_video_call_params.callreq_timer_id);
+ s_video_call_params.callreq_timer_id = NULL;
+ }
+ }
+
+ 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_CALLING:
+ mmi_video_call_hangup_req(TRUE);
+ break;
+
+ case MMI_VIDEO_CALL_STATE_INCOMING:
+ Hal_Tone_Play_End();
+ mmi_video_call_reject_req(TRUE);
+ break;
+
+ default:
+ mmi_video_call_hangup_req(TRUE);
+ break;
+ }
+
+ voip_signal_check_stop();
+ voip_rat_check_stop();
+}
+
+static void mmi_vc_ui_dialing(lv_obj_t * content)
+{
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ lv_voip_phone_obj_ext_t * ext = voip_phone_get_ext();
+ if(ext == NULL) {
+ return;
+ }
+
+ // label dialing
+ lv_obj_t * 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_DAILING);
+ 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);
+ }
+ lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
+ 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][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ lv_voip_phone_obj_ext_t * ext = voip_phone_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_RINGING);
+ lv_obj_set_click(label, false);
+ 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, 10);
+ 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);
+
+ // 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_incoming_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_connected(lv_obj_t * content)
+{
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ lv_voip_phone_obj_ext_t * ext = voip_phone_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][%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);
+ }
+ else
+ {
+ lv_obj_t * canvas;
+
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%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, "0:0");
+ 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, "0:0");
+ 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->ring_value_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->ring_value_button, ext->canvas_button_hidden_flag);
+ 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);
}
- lv_obj_set_hidden(ext->connect_time, ext->canvas_button_hidden_flag);
- lv_obj_set_hidden(ext->ring_value_button, ext->canvas_button_hidden_flag);
- 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(voip_phone_get_obj()) {
+ lv_watch_obj_set_down_slide_cb(voip_phone_get_obj(), voip_phone_down_slide_callback);
+ }
}
}
-static void voip_set_volume_when_slider_act(void)
+static lv_obj_t * mmi_vc_ui_create(lv_obj_t * activity_obj, MMI_VIDEO_CALL_UI_E video_call_ui)
{
- printf("%s\n", __FUNCTION__);
- if(lv_watch_get_activity_obj(ACT_ID_SLIDER)) {
- if(MMI_VOIP_CALL_STATE_NULL != s_video_call_params.state) {
- uint8_t volume = voip_get_call_volume();
- printf("set nv, speaker volume is %d.\n", volume);
- UI_NV_Write_Req(NV_SECTION_UI_PHONE, 0, 1, &volume);
- }
+ printf("%s %d\n", __FUNCTION__, __LINE__);
+
+ if(MMI_VC_UI_CONNECTED == video_call_ui)
+ {
+ /* set speaker volume to nv when leaving activiry's slider */
+ voip_set_volume_when_slider_act();
}
-}
-#if VIDEO_SIGNAL_CHECK
-static void signal_check(lv_task_t *task)
-{
- lv_voip_phone_obj_ext_t * ext = voip_phone_get_ext();
- if(!ext) return;
+ /* cleanup phone first */
+ voip_phone_cleanup();
- 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);
+ if(activity_obj == NULL)
+ {
+ lv_watch_activity_ext_t activity_ext = {0};
+
+ activity_ext.actId = ACT_ID_VOIPPHONE;
+ activity_ext.create = NULL;
+ activity_ext.prepare_destory = voip_phone_prepare_destory;
+ activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+ LV_ASSERT_MEM(activity_obj);
+ if(activity_obj == NULL) {
+ return(NULL);
+ }
}
-}
-#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
-}
+ lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+ LV_ASSERT_MEM(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);
-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;
+ lv_voip_phone_obj_ext_t * ext = lv_obj_allocate_ext_attr(obj, sizeof(lv_voip_phone_obj_ext_t));
+ LV_ASSERT_MEM(ext);
+ if(ext == NULL) {
+ return(NULL);
}
+
+ ext->phone_status_label = NULL;
+ ext->phone_animation_obj = NULL;
+ ext->phone_ui_t = video_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
-}
-static bool is_rat_gsm(void)
-{
- MMI_MODEM_PLMN_RAT rat;
+ 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->ring_value_button = NULL;
+ ext->view_switch_button = NULL;
+ ext->ring_off_button = NULL;
+ ext->canvas_button_hidden_flag = NOT_HIDDEN;
- watch_modem_get_operator_req(&rat);
- if(MMI_MODEM_PLMN_RAT_GSM == rat)
- return true;
- else
- return false;
-}
+ /* 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_obj_get_height(obj) - 20);
+ //lv_cont_set_layout(content, LV_LAYOUT_COLUMN_MID);
+ LV_ASSERT_MEM(content);
+ if(content == NULL) {
+ return(NULL);
+ }
+ lv_obj_add_style(content, LV_OBJ_PART_MAIN, &lv_watch_style_transp);
+ /* must click false */
+ lv_obj_set_click(content, false);
+ lv_obj_align(content, obj, LV_ALIGN_CENTER, 0, 0);
-static void rat_check(lv_task_t *task)
-{
- if(is_rat_gsm()) {
- mmi_video_call_phone_ring_off_action(NULL, LV_EVENT_CLICKED);
+ if(ext->phone_ui_t == MMI_VC_UI_DIALING)
+ {
+ mmi_vc_ui_dialing(content);
+ voip_dialing_animation(ext->phone_status_label);
+ }
+ else if(ext->phone_ui_t == MMI_VC_UI_INCOMING)
+ {
+ mmi_vc_ui_incoming(content);
+ voip_ring_animation(ext->phone_status_label);
+ }
+ else if(ext->phone_ui_t == PHONE_UI_CONNECTED)
+ {
+ mmi_vc_ui_connected(content);
+ voip_connected_animation(ext->phone_status_label);
}
-}
-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);
+ return obj;
}
-static void voip_rat_check_stop(void)
+void mmi_vc_call_action_incoming(char * number, MODEM_VIDEO_CALL_TYPE type)
{
- if(rat_check_task) {
- lv_task_del(rat_check_task);
- rat_check_task = NULL;
- }
-}
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %s,%d\n", __FUNCTION__, __LINE__, number, type);
-void voip_fps_check(int8_t fps)
-{
- lv_voip_phone_obj_ext_t * ext = voip_phone_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);
- }
+ if(true == mmi_active_screen_is_prohibit_interrupted() || true == is_rat_gsm())
+ {
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %s,%d\n", __FUNCTION__, __LINE__);
+
+ mmi_video_call_reject_req(TRUE);
+ return;
}
-}
-
+ if(AUDIO_CTRL_PRIORITY_2 == Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_2, voip_audio_ctrl_callback))
+ {
+ Hal_Mem_Set(&s_video_call_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
+ s_video_call_params.call_type = type;
+ s_video_call_params.is_mt = true;
+ s_video_call_params.state = MMI_VIDEO_CALL_STATE_INCOMING;
+ strncpy(s_video_call_params.number, number, NV_WATCH_VC_CONTACT_NUMBER_LEN - 1);
+
+ watch_set_lcd_status(true);
-#ifdef __VIDEO_CALL_TEST__
-#define MMI_VC_ROOM_ID "jrtc001" // "104799"
-#endif
+ HAL_SPEAKER_GAIN volume = query_current_volume();
+
+ if(!Hal_Set_BT_Audio_Path(volume))
+ {
+ Hal_Call_Speaker(HAL_CALL_SPK_ON, volume);
+ }
+ Hal_NFFS_File_Play_Repeat(AUDIO_INCOMING_CALL, volume);
-static nv_watch_vc_contact_t s_vc_contact = {0};
-static TIMER_ID fail_timer_id = NULL;
+ voip_rat_check_start();
+ mmi_vc_ui_create(NULL, MMI_VC_UI_INCOMING);
+ }
+ else
+ {
+ // AUDIO_CTRL_PRIORITY_1
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %s,%d\n", __FUNCTION__, __LINE__);
+
+ // auto reject
+ mmi_video_call_reject_req(FALSE);
+ voip_signal_check_stop();
+ voip_rat_check_stop();
-char * mmi_video_call_params_number_get(void)
-{
- return (s_video_call_params.number);
-}
+ // stop ring off timer
+ 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;
+ }
-MMI_VOIP_CALL_STATE_E mmi_video_call_params_state_get(void)
-{
- return (s_video_call_params.state);
-}
+ // stop callreq timer
+ if(NULL != s_video_call_params.callreq_timer_id)
+ {
+ Hal_Timer_Stop(s_video_call_params.callreq_timer_id);
+ s_video_call_params.callreq_timer_id = NULL;
+ }
-MODEM_VIDEO_CALL_TYPE mmi_video_call_params_type_get(void)
-{
- return (s_video_call_params.voip_call_type);
+ Hal_Mem_Set(&s_video_call_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
+ voip_set_volume_when_slider_act();
+ voip_phone_cleanup();
+ lv_watch_png_cache_all_free();
+ Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_2);
+ }
}
-
-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)
+void mmi_vc_call_action_connect(void)
{
- uint32_t nv_data_length = sizeof(nv_watch_vc_contact_t);
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
- 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_video_call_contact_set(nv_watch_vc_contact_t * contact_list)
-{
- if(NULL == contact_list)
+ if(MMI_VIDEO_CALL_STATE_CALLING == s_video_call_params.state)
{
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
return;
}
+ s_video_call_params.state = MMI_VIDEO_CALL_STATE_CALLING;
- _lv_memcpy(&s_vc_contact, contact_list, sizeof(nv_watch_vc_contact_t));
- mmi_video_call_contact_nv_write();
+ // stop callreq timer
+ if(NULL != s_video_call_params.callreq_timer_id)
+ {
+ Hal_Timer_Stop(s_video_call_params.callreq_timer_id);
+ s_video_call_params.callreq_timer_id = NULL;
+ }
+ // stop playing tone
+ Hal_Tone_Play_End();
- //phonebook_update_ui(contact_list, count, 0, 0);
+ Hal_Set_Voice_Call_Status(VOICE_CALL_START);
+ // create connected UI
+ mmi_vc_ui_create(NULL, MMI_VC_UI_CONNECTED);
}
-
-
-
-static void mmi_video_call_req_timeout_cb(void * para)
+static void mmi_vc_call_dialing_timeout_cb(void * para)
{
VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
mmi_video_call_hangup_req(TRUE);
}
-void mmi_video_call_req(char * number, MODEM_VIDEO_CALL_TYPE voip_call_type)
+void mmi_vc_call_action_dialing(char * number, MODEM_VIDEO_CALL_TYPE type)
{
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %s,%d\n", __FUNCTION__, __LINE__, number, voip_call_type);
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %s,%d\n", __FUNCTION__, __LINE__, number, type);
// check call state
- if(MMI_VOIP_CALL_STATE_NULL != s_video_call_params.state)
+ if(MMI_VIDEO_CALL_STATE_NONE != s_video_call_params.state)
{
VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %d\n", __FUNCTION__, __LINE__, s_video_call_params.state);
return;
// set call parameters
Hal_Mem_Set(&s_video_call_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
- s_video_call_params.is_mt = false;
- s_video_call_params.state = MMI_VOIP_CALL_STATE_DIALING;
- s_video_call_params.voip_call_type = voip_call_type;
+ s_video_call_params.is_mt = false;
+ s_video_call_params.state = MMI_VIDEO_CALL_STATE_DIALING;
+ s_video_call_params.call_type = type;
strcpy(s_video_call_params.number, number);
-
- int8_t ret = mmi_video_call_dial_req(voip_call_type, s_video_call_params.number);
+
+ int8_t ret = mmi_video_call_dial_req(type, s_video_call_params.number);
if(NULL == s_video_call_params.callreq_timer_id)
{
UINT32 timeout = (ret >= 0) ? VOIP_CALLREQ_TIME_OUT : 1*1000;
- s_video_call_params.callreq_timer_id = Hal_Timer_Start(timeout, mmi_video_call_req_timeout_cb, NULL, 0);
+ s_video_call_params.callreq_timer_id = Hal_Timer_Start(timeout, mmi_vc_call_dialing_timeout_cb, NULL, 0);
}
// create dialing UI
voip_rat_check_start();
- mmi_video_call_phone_create(NULL, VOIP_PHONE_UI_DIALING);
+ mmi_vc_ui_create(NULL, MMI_VC_UI_DIALING);
Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_2, voip_audio_ctrl_callback);
Hal_Set_Voice_Call_Status(VOICE_CALL_START);
}
-static void mmi_video_call_main_prepare_destory(lv_obj_t * activity_obj)
+static void mmi_vc_main_prepare_destory(lv_obj_t * activity_obj)
{
VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
void mmi_video_call_fail_timeout_cb(void *para)
{
- mmi_video_call_main_prepare_destory(NULL);
+ mmi_vc_main_prepare_destory(NULL);
}
static void mmi_video_call_fail(lv_obj_t * obj)
TIMER_ID timer_id = Hal_Timer_Start(2*1000, mmi_video_call_fail_timeout_cb, NULL, FALSE);
}
-static void mmi_video_call_voice_btn_action(lv_obj_t * btn, lv_event_t e)
+static void mmi_vc_voice_btn_action(lv_obj_t * btn, lv_event_t e)
{
if(LV_EVENT_CLICKED != e)
{
return;
}
- if(mmi_video_call_check_mo_permission())
+ if(true == mmi_video_call_check_mo_permission())
{
#ifdef __VIDEO_CALL_TEST__
- mmi_video_call_req(MMI_VC_ROOM_ID, MODEM_VIDEO_CALL_TYPE_VOICE);
+ mmi_vc_call_action_dialing(MMI_VC_ROOM_ID, MODEM_VIDEO_CALL_TYPE_VOICE);
#else
- mmi_video_call_req(, MODEM_VIDEO_CALL_TYPE_VOICE);
+ mmi_vc_call_action_dialing(s_vc_contact.number[0], MODEM_VIDEO_CALL_TYPE_VOICE);
#endif
}
else
}
}
-static void mmi_video_call_video_btn_action(lv_obj_t * btn, lv_event_t e)
+static void mmi_vc_video_btn_action(lv_obj_t * btn, lv_event_t e)
{
if(LV_EVENT_CLICKED != e)
{
return;
}
- if(mmi_video_call_check_mo_permission())
+ if(true == mmi_video_call_check_mo_permission())
{
#ifdef __VIDEO_CALL_TEST__
- mmi_video_call_req(MMI_VC_ROOM_ID, MODEM_VIDEO_CALL_TYPE_VIDEO);
+ mmi_vc_call_action_dialing(MMI_VC_ROOM_ID, MODEM_VIDEO_CALL_TYPE_VIDEO);
#else
- mmi_video_call_req(, MODEM_VIDEO_CALL_TYPE_VIDEO);
+ mmi_vc_call_action_dialing(s_vc_contact.number[0], MODEM_VIDEO_CALL_TYPE_VIDEO);
#endif
}
else
}
}
-static lv_obj_t * mmi_video_call_main_create(lv_obj_t * activity_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_video_call_main_create;
- activity_ext.prepare_destory = mmi_video_call_main_prepare_destory;
+ 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;
{
VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ #if 0
+ lv_obj_t * obj = lv_watch_list_create(NULL);
+ if(obj == NULL)
+ return NULL;
+
+ lv_watch_list_set_name_txt(obj, WATCH_TEXT_ID_SETTINGS);
+
+ for(int8_t i = 0; i < (sizeof(settingList) / sizeof(settingList[0])); i++)
+ {
+ lv_watch_list_add(obj, (void *)settingList[i].img_src, settingList[i].txtId, settingList[i].event_cb);
+ }
+
+ #else
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_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);
lv_obj_align(voicebtn, cont, LV_ALIGN_IN_TOP_MID, 0, 10);
- lv_obj_set_event_cb(voicebtn, mmi_video_call_voice_btn_action);
+ 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);
lv_obj_align(videobtn, cont, LV_ALIGN_IN_BOTTOM_MID, 0, -10);
- lv_obj_set_event_cb(videobtn, mmi_video_call_video_btn_action);
+ lv_obj_set_event_cb(videobtn, mmi_vc_video_btn_action);
//lv_watch_set_free_num(activity_obj, 1);
+ #endif
}
return(obj);
if(LV_EVENT_CLICKED == e)
{
lv_watch_png_cache_all_free();
- mmi_video_call_main_create(NULL);
+ mmi_vc_main_create(NULL);
}
else if(LV_EVENT_LONG_PRESSED == e)
{
bool watch_voip_suspend_check(void)
{
#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
- if((s_video_call_params.voip_call_type == MODEM_VIDEO_CALL_TYPE_VIDEO)
- || (MMI_VOIP_CALL_STATE_INCOMING == s_video_call_params.state)
- || (MMI_VOIP_CALL_STATE_DIALING == s_video_call_params.state)
+ if((s_video_call_params.call_type == MODEM_VIDEO_CALL_TYPE_VIDEO)
+ || (MMI_VIDEO_CALL_STATE_INCOMING == s_video_call_params.state)
+ || (MMI_VIDEO_CALL_STATE_DIALING == s_video_call_params.state)
)
{
return false;
switch(s_video_call_params.state)
{
- case MMI_VOIP_CALL_STATE_NULL:
- case MMI_VOIP_CALL_STATE_INVALID:
+ case MMI_VIDEO_CALL_STATE_NONE:
+ case MMI_VIDEO_CALL_STATE_INVALID:
// do noting
break;
- case MMI_VOIP_CALL_STATE_ACTIVE:
+ case MMI_VIDEO_CALL_STATE_CALLING:
mmi_video_call_hangup_req(FALSE);
break;
- case MMI_VOIP_CALL_STATE_INCOMING:
+ case MMI_VIDEO_CALL_STATE_INCOMING:
Hal_Tone_Play_End();
mmi_video_call_reject_req(FALSE);
break;
}
Hal_Mem_Set(&s_video_call_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
- s_video_call_params.state = MMI_VOIP_CALL_STATE_NULL;
+ s_video_call_params.state = MMI_VIDEO_CALL_STATE_NONE;
voip_set_volume_when_slider_act();
voip_phone_cleanup();
lv_watch_png_cache_all_free();