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 jrtc_image_t video_call_jrtc_image_t;
typedef struct
{
void* jrtc_ptr;
TIMER_ID closed_timer_id;
uint8_t closing;
-} video_call_jrtc_t;
+} MMI_VIDEO_CALL_JRTC_T;
-extern MMI_VIDEO_CALL_PARAMS_T voipcall_params;
-static video_call_jrtc_t voip_jrtc;
+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(void)
+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};
VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%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_01(char * t_appkey, char * t_key, char * t_tokens)
+{
+ char appkey[24+1] = {0};
+ char key[16+1] = {0};
+ char uid[64+1] = {0};
+ char tokens[128+1] = {0};
+
+ char imei[16] = {0};
+ app_adp_get_imei_req(imei);
+ strncpy(uid, imei, 16);
+
+ memcpy(appkey, t_appkey, 24);
+ memcpy(key, t_key, 16);
+ memcpy(tokens, t_tokens, 128);
+
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %s\n", __FUNCTION__, __LINE__, appkey);
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %s\n", __FUNCTION__, __LINE__, uid);
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %s\n", __FUNCTION__, __LINE__, key);
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %s\n", __FUNCTION__, __LINE__, tokens);
+
+ jrtc_config(appkey, uid, key, tokens);
+ Hal_Mem_Set(&s_video_call_jrtc, 0x0, sizeof(MMI_VIDEO_CALL_JRTC_T));
}
static void mmi_video_call_jrtc_clean_up(void)
{
VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
- if(NULL != voip_jrtc.state_task)
+ if(NULL != s_video_call_jrtc.state_task)
{
VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
- lv_task_del(voip_jrtc.state_task);
+ lv_task_del(s_video_call_jrtc.state_task);
}
- Hal_Mem_Set(&voip_jrtc, 0, sizeof(video_call_jrtc_t));
+ Hal_Mem_Set(&s_video_call_jrtc, 0x0, sizeof(MMI_VIDEO_CALL_JRTC_T));
}
static void mmi_video_call_jrtc_timeout_cb(void * para)
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(voip_jrtc.jrtc_ptr);
+ video_call_jrtc_state_e state = jrtc_state(s_video_call_jrtc.jrtc_ptr);
if(state != oldstate)
{
switch(state)
{
case JRTC_CLOSED:
- if((NULL != voip_jrtc.jrtc_ptr) && (NULL == voip_jrtc.closed_timer_id))
+ if((NULL != s_video_call_jrtc.jrtc_ptr) && (NULL == s_video_call_jrtc.closed_timer_id))
{
- video_call_jrtc_error_e err = jrtc_error(voip_jrtc.jrtc_ptr);
+ video_call_jrtc_error_e err = jrtc_error(s_video_call_jrtc.jrtc_ptr);
VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: error=%d\n", __FUNCTION__, __LINE__, err);
- if(!voip_jrtc.closing)
+ if(!s_video_call_jrtc.closing)
{
- jrtc_close(voip_jrtc.jrtc_ptr, JRTC_ENIL);
- voip_jrtc.closing = 1;
+ jrtc_close(s_video_call_jrtc.jrtc_ptr, JRTC_ENIL);
+ s_video_call_jrtc.closing = 1;
}
- voip_jrtc.closed_timer_id = Hal_Timer_Start(100, mmi_video_call_jrtc_timeout_cb, NULL, 0);
+ s_video_call_jrtc.closed_timer_id = Hal_Timer_Start(100, mmi_video_call_jrtc_timeout_cb, NULL, 0);
}
- if(MMI_VOIP_CALL_STATE_NULL != voipcall_params.state)
+ if(MMI_VOIP_CALL_STATE_NULL != mmi_video_call_params_state_get())
{
watch_voip_call_response_no_carrier(0, 1);
}
break;
case JRTC_TALKING:
- if(MMI_VOIP_CALL_STATE_ACTIVE != voipcall_params.state)
+ if(MMI_VOIP_CALL_STATE_ACTIVE != mmi_video_call_params_state_get())
{
watch_voip_call_response_connect(0);
}
/* Get image */
- if (MODEM_VIDEO_CALL_TYPE_VIDEO == voipcall_params.voip_call_type)
+ if (MODEM_VIDEO_CALL_TYPE_VIDEO == mmi_video_call_params_type_get())
{
- void *buf = voip_phone_get_video_buffer();
+ void *buf = mmi_video_call_phone_get_video_buffer();
if(voip_jrtc_get_image(buf))
{
lv_canvas_set_buffer(voip_phone_get_ext()->canvas, buf, canvas_width, canvas_heigh, LV_IMG_CF_TRUE_COLOR);
{
VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %s,%d\n", __FUNCTION__, __LINE__, roomid, calltype);
- Hal_Mem_Set(&voip_jrtc, 0, sizeof(video_call_jrtc_t));
+ Hal_Mem_Set(&s_video_call_jrtc, 0, sizeof(MMI_VIDEO_CALL_JRTC_T));
if (MODEM_VIDEO_CALL_TYPE_VIDEO == calltype)
{
- voip_jrtc.rxframe.width = voip_jrtc.txframe.width = 176;
- voip_jrtc.rxframe.height = voip_jrtc.txframe.height = 144;
- voip_jrtc.rxframe.fps = voip_jrtc.txframe.fps = 8; // 10;
- voip_jrtc.rxframe.kbps = voip_jrtc.txframe.kbps = 120; // 240;
+ 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
- voip_jrtc.jrtc_ptr= jrtc_open(roomid, 0, &voip_jrtc.rxframe, &voip_jrtc.txframe);
+ s_video_call_jrtc.jrtc_ptr= jrtc_open(roomid, 0, &s_video_call_jrtc.rxframe, &s_video_call_jrtc.txframe);
}
else
{
- voip_jrtc.jrtc_ptr= jrtc_open(roomid, 0, NULL, NULL);
+ s_video_call_jrtc.jrtc_ptr= jrtc_open(roomid, 0, NULL, NULL);
}
- if (!voip_jrtc.jrtc_ptr)
+ if (!s_video_call_jrtc.jrtc_ptr)
{
VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
mmi_video_call_jrtc_clean_up();
return -1;
}
- jrtc_activate(voip_jrtc.jrtc_ptr, JRTC_AUDIO|JRTC_CAMERA);
+ jrtc_activate(s_video_call_jrtc.jrtc_ptr, JRTC_AUDIO|JRTC_CAMERA);
- voip_jrtc.state_task = lv_task_create(mmi_video_call_jrtc_on_state, VIDEO_RENDER_PERIOD, LV_TASK_PRIO_HIGH, NULL);
+ 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 ret = -1;
VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %s,%d\n", __FUNCTION__, __LINE__, pContactUri, calltype);
- if (NULL == voip_jrtc.jrtc_ptr)
+ if (NULL == s_video_call_jrtc.jrtc_ptr)
ret = mmi_video_call_jrtc_open(pContactUri, calltype);
return ret;
void mmi_video_call_hangup_req(BOOL bye)
{
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %p,%d\n", __FUNCTION__, __LINE__, voip_jrtc.jrtc_ptr, bye);
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %p,%d\n", __FUNCTION__, __LINE__, s_video_call_jrtc.jrtc_ptr, bye);
- if (NULL != voip_jrtc.jrtc_ptr)
+ if (NULL != s_video_call_jrtc.jrtc_ptr)
{
video_call_jrtc_error_e err = (TRUE == bye) ? JRTC_EBYE : JRTC_EAUDIOCALL;
- jrtc_close(voip_jrtc.jrtc_ptr, err);
- voip_jrtc.closing = 1;
+ jrtc_close(s_video_call_jrtc.jrtc_ptr, err);
+ s_video_call_jrtc.closing = 1;
}
else
{
{
int8_t ret = -1;
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %p\n", __FUNCTION__, __LINE__, voip_jrtc.jrtc_ptr);
- if (NULL == voip_jrtc.jrtc_ptr)
- ret = mmi_video_call_jrtc_open(voipcall_params.number, voipcall_params.voip_call_type);
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %p\n", __FUNCTION__, __LINE__, s_video_call_jrtc.jrtc_ptr);
+ if (NULL == s_video_call_jrtc.jrtc_ptr)
+ ret = mmi_video_call_jrtc_open(mmi_video_call_params_number_get(), mmi_video_call_params_type_get());
return ret;
}
void mmi_video_call_reject_req(BOOL bye)
{
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %p,%d\n", __FUNCTION__, __LINE__, voip_jrtc.jrtc_ptr, bye);
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %p,%d\n", __FUNCTION__, __LINE__, s_video_call_jrtc.jrtc_ptr, bye);
- if (NULL != voip_jrtc.jrtc_ptr)
+ if (NULL != s_video_call_jrtc.jrtc_ptr)
{
video_call_jrtc_error_e err = (TRUE == bye) ? JRTC_EBYE : JRTC_EAUDIOCALL;
- jrtc_close(voip_jrtc.jrtc_ptr, err);
- voip_jrtc.closing = 1;
+ jrtc_close(s_video_call_jrtc.jrtc_ptr, err);
+ s_video_call_jrtc.closing = 1;
}
else
{
video_call_jrtc_image_t * frame = NULL;
if(ext->local_remote_switch_flag == VOIP_REMOTE_SWITCH_REMOTE)
- frame = &voip_jrtc.rxframe;
+ frame = &s_video_call_jrtc.rxframe;
else
- frame = &voip_jrtc.txframe;
+ frame = &s_video_call_jrtc.txframe;
if (frame->put != frame->get) {
#if (ENABLE_VIDEO_SCALE == 0)
#endif
static lv_task_t * rat_check_task = NULL;
-/**********************
-* Global Variable
-**********************/
-MMI_VIDEO_CALL_PARAMS_T voipcall_params;
+static MMI_VIDEO_CALL_PARAMS_T s_video_call_params;
lv_color_t g_cbuf[canvas_width * canvas_heigh + 8] __attribute__((aligned(8)));
/**********************
static lv_obj_t * voip_phone_get_activity_obj(void);
static lv_obj_t * voip_phone_get_obj(void);
static void voip_get_time_elaps(uint32_t last_time, char * str, int8_t size);
-static lv_obj_t * voip_phone_create(lv_obj_t * activity_obj, voip_phone_ui_e phone_ui_id);
-static lv_res_t voip_phone_ring_off_create(void);
-static void voip_ring_off_action(lv_obj_t * btn, lv_event_t e);
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);
return(voip_append_obj);
}
-static lv_obj_t * voip_phone_create(lv_obj_t * activity_obj, voip_phone_ui_e phone_ui_id)
+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__);
return(obj);
}
-lv_res_t voip_phone_ring_off_create()
+lv_res_t mmi_video_call_phone_ring_off_create()
{
printf("%s %d\n", __FUNCTION__, __LINE__);
}
// stop callreq timer
- if(NULL != voipcall_params.callreq_timer_id) {
- Hal_Timer_Stop(voipcall_params.callreq_timer_id);
- voipcall_params.callreq_timer_id = NULL;
+ 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) {
voip_rat_check_stop();
return(LV_RES_OK);
-} /* voip_phone_ring_off_create */
+}
-void voip_ring_off_action(lv_obj_t * btn, lv_event_t e)
+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__, voipcall_params.state);
+ printf("%s: %d, state=%d\n", __FUNCTION__, __LINE__, s_video_call_params.state);
- if(false == voipcall_params.ring_off) {
- voipcall_params.ring_off = true;
+ if(false == s_video_call_params.ring_off) {
+ s_video_call_params.ring_off = true;
- if(NULL == voipcall_params.ring_off_timer_id) {
- voipcall_params.ring_off_timer_id = Hal_Timer_Start(VOIP_RING_OFF_TIMER_LEN, voip_phone_ring_off_timeout_cb, NULL, 0);
+ 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 != voipcall_params.callreq_timer_id) {
- Hal_Timer_Stop(voipcall_params.callreq_timer_id);
- voipcall_params.callreq_timer_id = NULL;
+ 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(voipcall_params.state) {
+ switch(s_video_call_params.state) {
case MMI_VOIP_CALL_STATE_NULL:
case MMI_VOIP_CALL_STATE_INVALID:
// do noting
voip_rat_check_stop();
#if VOIP_PHONE_TEST
- watch_voip_call_response_no_carrier(voipcall_params.index, 0);
+ watch_voip_call_response_no_carrier(s_video_call_params.index, 0);
#endif
-} /* voip_ring_off_action */
+}
lv_voip_phone_obj_ext_t * voip_phone_get_ext(void)
{
return(ext);
}
-void * voip_phone_get_video_buffer()
+void * mmi_video_call_phone_get_video_buffer()
{
return g_cbuf;
}
static void voip_phone_connected_cb(void * para)
{
printf("%s %d\n", __FUNCTION__, __LINE__);
- watch_voip_call_response_connect(voipcall_params.index);
+ watch_voip_call_response_connect(s_video_call_params.index);
}
#endif
{
printf("%s %d\n", __FUNCTION__, __LINE__);
#if VOIP_PHONE_TEST
- if((MMI_VOIP_CALL_STATE_INCOMING == voipcall_params.state)) { // MT call
+ if((MMI_VOIP_CALL_STATE_INCOMING == s_video_call_params.state)) { // MT call
int32_t index = 1;
watch_voip_call_response_originating(index);
Hal_Timer_Start(60, voip_phone_connected_cb, NULL, 0);
}
- else if(MMI_VOIP_CALL_STATE_DIALING == voipcall_params.state) { // MO call
+ else if(MMI_VOIP_CALL_STATE_DIALING == s_video_call_params.state) { // MO call
int32_t index = 1;
watch_voip_call_response_originating(index);
Hal_Timer_Start(60, voip_phone_connected_cb, NULL, 0);
} else
#endif
- if((MMI_VOIP_CALL_STATE_ACTIVE == voipcall_params.state)
- && (MODEM_VIDEO_CALL_TYPE_VIDEO == voipcall_params.voip_call_type)) {
+ if((MMI_VOIP_CALL_STATE_ACTIVE == s_video_call_params.state)
+ && (MODEM_VIDEO_CALL_TYPE_VIDEO == s_video_call_params.voip_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__);
- voip_ring_off_action(NULL, LV_EVENT_CLICKED);
+ mmi_video_call_phone_ring_off_action(NULL, LV_EVENT_CLICKED);
}
static void voip_phone_down_slide_callback(lv_obj_t * obj)
// set speaker volume
if(!Hal_Set_BT_Audio_Path((HAL_SPEAKER_GAIN)v))
Hal_Call_Speaker(HAL_CALL_SPK_ON, (HAL_SPEAKER_GAIN)v);
- voipcall_params.speaker_volume = v;
+ s_video_call_params.speaker_volume = v;
}
}
static void voip_phone_ring_off_timeout_cb(void * para)
{
printf("%s %d\n", __FUNCTION__, __LINE__);
- voipcall_params.ring_off_timer_id = NULL;
- voipcall_params.ring_off_timeout = true;
- watch_voip_call_response_no_carrier(voipcall_params.index, 0);
+ 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)
int8_t ret = mmi_video_call_answer_req();
if(ret < 0) {
- watch_voip_call_response_no_carrier(voipcall_params.index, 0);
+ watch_voip_call_response_no_carrier(s_video_call_params.index, 0);
}
}
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(voipcall_params.name) > 0)
+ if(strlen(s_video_call_params.name) > 0)
{
- lv_label_set_text(label, voipcall_params.name);
+ lv_label_set_text(label, s_video_call_params.name);
}
else
{
- lv_label_set_text(label, voipcall_params.number);
+ 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);
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, voip_ring_off_action);
+ 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);
}
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(voipcall_params.name) > 0)
+ if(strlen(s_video_call_params.name) > 0)
{
- lv_label_set_text(label, voipcall_params.name);
+ lv_label_set_text(label, s_video_call_params.name);
}
else
{
- lv_label_set_text(label, voipcall_params.number);
+ 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 = 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, voip_ring_off_action);
+ 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
return;
}
- if(voipcall_params.voip_call_type == MODEM_VIDEO_CALL_TYPE_VOICE)
+ if(s_video_call_params.voip_call_type == MODEM_VIDEO_CALL_TYPE_VOICE)
{
VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
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(voipcall_params.name) > 0)
+ if(strlen(s_video_call_params.name) > 0)
{
- lv_label_set_text(label, voipcall_params.name);
+ lv_label_set_text(label, s_video_call_params.name);
}
else
{
- lv_label_set_text(label, voipcall_params.number);
+ 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 = 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, voip_ring_off_action);
+ 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
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, voip_ring_off_action);
+ 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)
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, voip_ring_off_action);
+ 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;
Hal_Tone_Play_End();
// ring off
- voip_ring_off_action(NULL, LV_EVENT_CLICKED);
+ mmi_video_call_phone_ring_off_action(NULL, LV_EVENT_CLICKED);
// stop ring off timer
- if(NULL != voipcall_params.ring_off_timer_id) {
- Hal_Timer_Stop(voipcall_params.ring_off_timer_id);
- voipcall_params.ring_off_timer_id = NULL;
+ 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 != voipcall_params.callreq_timer_id) {
- Hal_Timer_Stop(voipcall_params.callreq_timer_id);
- voipcall_params.callreq_timer_id = NULL;
+ 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(&voipcall_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
- voipcall_params.state = MMI_VOIP_CALL_STATE_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;
}
static void voip_get_time_elaps(uint32_t last_time, char * str, int8_t size)
{
printf("%s %d\n", __FUNCTION__, __LINE__);
- if(MMI_VOIP_CALL_STATE_DIALING == voipcall_params.state) {
+ if(MMI_VOIP_CALL_STATE_DIALING == s_video_call_params.state) {
return;
}
printf("%s: %d\n", __func__, index);
- voipcall_params.index = index;
+ s_video_call_params.index = index;
// state: NULL -> DIALLING
- voipcall_params.state = MMI_VOIP_CALL_STATE_DIALING;
+ 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 == voipcall_params.state) {
+ if(MMI_VOIP_CALL_STATE_ALERTING == s_video_call_params.state) {
return;
}
uint8_t volume;
// state: DIALLING -> ALERTING
- voipcall_params.state = MMI_VOIP_CALL_STATE_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);
printf("%s: %d\n", __func__, index);
Hal_NFFS_File_Play_Repeat(AUDIO_INCOMING_CALL, query_current_volume());
- voipcall_params.state = MMI_VOIP_CALL_STATE_ALERTING;
+ 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 == voipcall_params.state) {
+ if(MMI_VOIP_CALL_STATE_ACTIVE == s_video_call_params.state) {
return;
}
- voipcall_params.state = MMI_VOIP_CALL_STATE_ACTIVE;
+ s_video_call_params.state = MMI_VOIP_CALL_STATE_ACTIVE;
// stop callreq timer
- if(NULL != voipcall_params.callreq_timer_id) {
- Hal_Timer_Stop(voipcall_params.callreq_timer_id);
- voipcall_params.callreq_timer_id = NULL;
+ 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_Set_Voice_Call_Status(VOICE_CALL_START);
// create connected UI
- voip_phone_create(NULL, VOIP_PHONE_UI_CONNECTED);
+ mmi_video_call_phone_create(NULL, VOIP_PHONE_UI_CONNECTED);
}
void watch_voip_call_response_disconnect(int32_t index)
// create ring off UI
if(voip_phone_get_activity_obj()) {
- voip_phone_ring_off_create();
+ 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(&voipcall_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
- voipcall_params.state = MMI_VOIP_CALL_STATE_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 == voipcall_params.ring_off_timeout)
+ if((false == s_video_call_params.ring_off_timeout)
&& (1 == isNoCarrier)
- && (MMI_VOIP_CALL_STATE_NULL == voipcall_params.state)) {
+ && (MMI_VOIP_CALL_STATE_NULL == s_video_call_params.state)) {
printf("%s: ignore no carrier in state NULL\n", __func__);
return;
}
Hal_Tone_Play_End();
// stop ring off timer
- if(NULL != voipcall_params.ring_off_timer_id) {
- Hal_Timer_Stop(voipcall_params.ring_off_timer_id);
- voipcall_params.ring_off_timer_id = NULL;
+ 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 != voipcall_params.callreq_timer_id) {
- Hal_Timer_Stop(voipcall_params.callreq_timer_id);
- voipcall_params.callreq_timer_id = NULL;
+ 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) {
- voip_phone_ring_off_create();
+ mmi_video_call_phone_ring_off_create();
}
if(MMI_MODEM_CALL_STATE_NULL != phone_get_call_state()) {
Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_2);
watch_wakeup_time_reset();
- Hal_Mem_Set(&voipcall_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
- voipcall_params.state = MMI_VOIP_CALL_STATE_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;
} /* 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__);
voip_phone_cleanup();
- Hal_Mem_Set(&voipcall_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
+ 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(voipcall_params.voip_call_type, voipcall_params.number);
+ //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)
return;
}
- Hal_Mem_Set(&voipcall_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
- voipcall_params.voip_call_type = (MODEM_VIDEO_CALL_TYPE)calltype;
- voipcall_params.is_mt = true;
- voipcall_params.state = MMI_VOIP_CALL_STATE_INCOMING;
- strncpy(voipcall_params.number, number, NV_CONTACTS_MAX_NUMBER_LEN);
+ 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);
voip_rat_check_start();
// create ring UI
- voip_phone_create(NULL, VOIP_PHONE_UI_INCOMING);
+ mmi_video_call_phone_create(NULL, VOIP_PHONE_UI_INCOMING);
}
else
{ // AUDIO_CTRL_PRIORITY_1
voip_rat_check_stop();
// stop ring off timer
- if(NULL != voipcall_params.ring_off_timer_id) {
- Hal_Timer_Stop(voipcall_params.ring_off_timer_id);
- voipcall_params.ring_off_timer_id = NULL;
+ 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 != voipcall_params.callreq_timer_id) {
- Hal_Timer_Stop(voipcall_params.callreq_timer_id);
- voipcall_params.callreq_timer_id = NULL;
+ 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(&voipcall_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
- voipcall_params.state = MMI_VOIP_CALL_STATE_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();
mmi_video_call_reject_req(TRUE);
#if VOIP_PHONE_TEST
- watch_voip_call_response_no_carrier(voipcall_params.index, 0);
+ watch_voip_call_response_no_carrier(s_video_call_params.index, 0);
#endif
}
} /* watch_voip_incomingcall_response */
{
printf("%s\n", __FUNCTION__);
if(lv_watch_get_activity_obj(ACT_ID_SLIDER)) {
- if(MMI_VOIP_CALL_STATE_NULL != voipcall_params.state) {
+ 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);
static void rat_check(lv_task_t *task)
{
if(is_rat_gsm()) {
- voip_ring_off_action(NULL, LV_EVENT_CLICKED);
+ mmi_video_call_phone_ring_off_action(NULL, LV_EVENT_CLICKED);
}
}
-#define VOIP_ROOM_ID "jrtc012" // "104799"
+#ifdef __VIDEO_CALL_TEST__
+#define MMI_VC_ROOM_ID "jrtc001" // "104799"
+#endif
-static uint8_t s_video_call_init_flag = 0;
+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_VOIP_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.voip_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_video_call_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);
+
+}
+
+
+
+
static void mmi_video_call_req_timeout_cb(void * para)
{
VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: \n", __FUNCTION__, __LINE__);
- voipcall_params.callreq_timer_id = NULL;
+ s_video_call_params.callreq_timer_id = NULL;
mmi_video_call_hangup_req(TRUE);
}
VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %s,%d\n", __FUNCTION__, __LINE__, number, voip_call_type);
// check call state
- if(MMI_VOIP_CALL_STATE_NULL != voipcall_params.state)
+ if(MMI_VOIP_CALL_STATE_NULL != s_video_call_params.state)
{
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %d\n", __FUNCTION__, __LINE__, voipcall_params.state);
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG][%s][%d]: %d\n", __FUNCTION__, __LINE__, s_video_call_params.state);
return;
}
}
// stop callreq timer
- if(NULL != voipcall_params.callreq_timer_id)
+ if(NULL != s_video_call_params.callreq_timer_id)
{
- Hal_Timer_Stop(voipcall_params.callreq_timer_id);
- voipcall_params.callreq_timer_id = NULL;
+ Hal_Timer_Stop(s_video_call_params.callreq_timer_id);
+ s_video_call_params.callreq_timer_id = NULL;
}
// set call parameters
- Hal_Mem_Set(&voipcall_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
- voipcall_params.is_mt = false;
- voipcall_params.state = MMI_VOIP_CALL_STATE_DIALING;
- voipcall_params.voip_call_type = voip_call_type;
- strcpy(voipcall_params.number, number);
-
- int8_t ret = mmi_video_call_dial_req(voip_call_type, voipcall_params.number);
- if(NULL == voipcall_params.callreq_timer_id)
+ 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;
+ strcpy(s_video_call_params.number, number);
+
+ int8_t ret = mmi_video_call_dial_req(voip_call_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;
- voipcall_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_video_call_req_timeout_cb, NULL, 0);
}
// create dialing UI
voip_rat_check_start();
- voip_phone_create(NULL, VOIP_PHONE_UI_DIALING);
+ mmi_video_call_phone_create(NULL, VOIP_PHONE_UI_DIALING);
Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_2, voip_audio_ctrl_callback);
Hal_Set_Voice_Call_Status(VOICE_CALL_START);
}
if(mmi_video_call_check_mo_permission())
{
- mmi_video_call_req(VOIP_ROOM_ID, MODEM_VIDEO_CALL_TYPE_VOICE);
+ #ifdef __VIDEO_CALL_TEST__
+ mmi_video_call_req(MMI_VC_ROOM_ID, MODEM_VIDEO_CALL_TYPE_VOICE);
+ #else
+ mmi_video_call_req(, MODEM_VIDEO_CALL_TYPE_VOICE);
+ #endif
}
else
{
}
}
-static void mmi_video_call_voideo_btn_action(lv_obj_t * btn, lv_event_t e)
+static void mmi_video_call_video_btn_action(lv_obj_t * btn, lv_event_t e)
{
if(LV_EVENT_CLICKED != e)
{
if(mmi_video_call_check_mo_permission())
{
- mmi_video_call_req(VOIP_ROOM_ID, MODEM_VIDEO_CALL_TYPE_VIDEO);
+ #ifdef __VIDEO_CALL_TEST__
+ mmi_video_call_req(MMI_VC_ROOM_ID, MODEM_VIDEO_CALL_TYPE_VIDEO);
+ #else
+ mmi_video_call_req(, MODEM_VIDEO_CALL_TYPE_VIDEO);
+ #endif
}
else
{
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_voideo_btn_action);
+ lv_obj_set_event_cb(videobtn, mmi_video_call_video_btn_action);
//lv_watch_set_free_num(activity_obj, 1);
}
void video_call_create_event_cb(lv_obj_t * btn, lv_event_t e)
{
if(LV_EVENT_CLICKED == e)
- {
- if(0 == s_video_call_init_flag)
- {
- s_video_call_init_flag = 1;
- mmi_video_call_jrtc_config_init();
- }
-
+ {
lv_watch_png_cache_all_free();
mmi_video_call_main_create(NULL);
}
uint8_t voip_get_call_volume(void)
{
#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
- return(voipcall_params.speaker_volume);
+ return(s_video_call_params.speaker_volume);
#endif
return 0;
bool watch_voip_suspend_check(void)
{
#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
- if((voipcall_params.voip_call_type == MODEM_VIDEO_CALL_TYPE_VIDEO)
- || (MMI_VOIP_CALL_STATE_INCOMING == voipcall_params.state)
- || (MMI_VOIP_CALL_STATE_DIALING == voipcall_params.state)
+ 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)
)
{
return false;
return;
}
- switch(voipcall_params.state)
+ switch(s_video_call_params.state)
{
case MMI_VOIP_CALL_STATE_NULL:
case MMI_VOIP_CALL_STATE_INVALID:
voip_rat_check_stop();
// stop ring off timer
- if(NULL != voipcall_params.ring_off_timer_id) {
- Hal_Timer_Stop(voipcall_params.ring_off_timer_id);
- voipcall_params.ring_off_timer_id = NULL;
+ 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 != voipcall_params.callreq_timer_id) {
- Hal_Timer_Stop(voipcall_params.callreq_timer_id);
- voipcall_params.callreq_timer_id = NULL;
+ 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(&voipcall_params, 0, sizeof(MMI_VIDEO_CALL_PARAMS_T));
- voipcall_params.state = MMI_VOIP_CALL_STATE_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();
{MMI_FZD_SERVER_SET_CENTER_NUMBER, "CENTER"}, //
{MMI_FZD_ACTION_UNBIND, "DLT"},
+ #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
+ {MMI_FZD_WATCH_GET_VC_CONFIG, "juhoo_config"},
+ {MMI_FZD_WATCH_GET_VC_CONTACT, "video_contact"},
+ {MMI_FZD_WATCH_VC_CALL_REQUEST, "jup_hoo_call"},
+ {MMI_FZD_SERVER_VC_CALL_RESPONSE, "jup_hoo_reply"},
+
+
+
+ #endif
+
/*******add before this line*******/
{MMI_FZD_ACTION_MAX, ""}, // MMI_FZD_ACTION_MAX
case MMI_FZD_ACTION_UNBIND:
break;
+ #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
+ case MMI_FZD_WATCH_GET_VC_CONFIG:
+ mmi_protocol_fzd_parse_WATCH_GET_VC_CONFIG(next_buff, next_buff_len);
+ break;
+
+ case MMI_FZD_WATCH_GET_VC_CONTACT:
+ mmi_protocol_fzd_parse_WATCH_GET_VC_CONTACT(next_buff, next_buff_len);
+ break;
+
+ 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;
+
+ #endif
+
default:
break;
{
mmi_protocol_watch_bind_state_set(true);
mmi_protocol_watch_timed_mission_action();
+
+ //video call
+ mmi_protocol_fzd_action_get_vc_config();
+
}
}
}
+#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
+bool mmi_protocol_fzd_action_get_vc_config(void)
+{
+ return mmi_protocol_fzd_send_without_data(MMI_FZD_WATCH_GET_VC_CONFIG);
+}
+
+bool mmi_protocol_fzd_action_get_vc_contact(void)
+{
+ return mmi_protocol_fzd_send_without_data(MMI_FZD_WATCH_GET_VC_CONTACT);
+}
+
+bool mmi_protocol_fzd_parse_WATCH_GET_VC_CONFIG(unsigned char * next_buff, unsigned int next_buff_len)
+{
+ bool result = false;
+ //MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_WATCH_GET_VC_CONFIG;
+
+ 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);
+
+ char * t_tokens = NULL;
+ char * t_appkey = NULL;
+ char * t_key = NULL;
+
+ t_tokens = km_strtok_r(NULL, ",", &next_buff);
+ t_appkey = km_strtok_r(NULL, ",", &next_buff);
+ t_key = km_strtok_r(NULL, ",", &next_buff);
+
+ mmi_video_call_jrtc_config_init_01(t_appkey, t_key, t_tokens);
+
+ //get contact
+ mmi_protocol_fzd_action_get_vc_contact();
+
+ return result;
+}
+
+bool mmi_protocol_fzd_parse_WATCH_GET_VC_CONTACT(unsigned char * next_buff, unsigned int next_buff_len)
+{
+ bool result = false;
+ //MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_WATCH_GET_VC_CONTACT;
+
+ 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);
+
+ nv_watch_vc_contact_t t_vc_contact = {0};
+ char * temp_ptr = NULL;
+ uint8_t i = 0;
+ uint8_t t_len_1 = 0, t_len_2 = 0;
+
+ while (NULL != next_buff)
+ {
+ temp_ptr = km_strtok_r(NULL, ",", &next_buff);
+ if (NULL != temp_ptr)
+ {
+ t_len_1 = FZD_MIN(strlen(temp_ptr), NV_WATCH_VC_CONTACT_NUMBER_LEN - 1);
+ strncpy(t_vc_contact.number[i], temp_ptr, t_len_1);
+ }
+ else
+ {
+ break;
+ }
+
+ temp_ptr = km_strtok_r(NULL, ",", &next_buff);
+ if (NULL != temp_ptr)
+ {
+ t_len_1 = FZD_MIN(strlen(temp_ptr), (NV_WATCH_VC_CONTACT_NAME_LEN - 1) * 4);
+ mmi_unicode_hex_str_to_utf8_str(temp_ptr, t_len_1, t_vc_contact.name[i], &t_len_2);
+ }
+ else
+ {
+ break;
+ }
+
+ i++;
+ if(NV_WATCH_VC_CONTACT_TOTAL <= i)
+ {
+ break;
+ }
+ }
+
+ t_vc_contact.total = i;
+ mmi_video_call_contact_set(&t_vc_contact);
+
+ return result;
+}
+
+bool mmi_protocol_fzd_action_send_vc_call(char * number, uint8_t call_type)
+{
+ bool result = false;
+ MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_WATCH_VC_CALL_REQUEST;
+ unsigned char content_buff[NV_WATCH_VC_CONTACT_NUMBER_LEN + 8] = {0};
+ unsigned int content_lenth = 0;
+
+ sprintf(content_buff, ",%s,%d", number, call_type);
+ content_lenth = strlen(content_buff);
+
+ result = mmi_protocol_fzd_send_with_data(action, content_buff, content_lenth);
+
+ return result;
+}
+
+// 1£º¶Ô·½ÔÚÏߣ¬µÈ´ý½ÓÌý£»0£º¶Ô·½²»ÔÚÏß
+bool mmi_protocol_fzd_parse_WATCH_VC_CALL_REQUEST(unsigned char * next_buff, unsigned int next_buff_len)
+{
+ bool result = false;
+
+ if(NULL == next_buff || 0 == next_buff_len)
+ {
+ PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return false;
+ }
+
+ result = true;
+
+ uint8_t t_value = 0;
+
+ t_value = atoi(next_buff);
+ if(0 == t_value)
+ {
+ // the other party is not online
+
+
+ }
+ else
+ {
+ // wait, do nothing
+ }
+
+ return result;
+}
+
+// 1£º¶Ô·½½ÓÊÜ£»0£º¶Ô·½¾Ü¾ø
+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_RESPONSE;
+
+ 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);
+
+ char * t_tokens = NULL;
+ char * t_appkey = NULL;
+ char * t_key = NULL;
+
+ t_tokens = km_strtok_r(NULL, ",", &next_buff);
+ t_appkey = km_strtok_r(NULL, ",", &next_buff);
+ t_key = km_strtok_r(NULL, ",", &next_buff);
+
+ mmi_video_call_jrtc_config_init_01(t_appkey, t_key, t_tokens);
+
+ //get contact
+ mmi_protocol_fzd_action_get_vc_contact();
+
+ return result;
+}
+
+
+#endif