Gemini 版本 IDLE状态下来电,到进入alarm界面的处理流程函数调用。(由于排版问题,请copy到UE查看)
1.IDLE状态下来电,L4发送消息PRT_INCOMINGCALL_EVENT
MSG_ID_MMI_CC_CALL_RING_IND
PsCBackCallIncoming()
ProcessIncomingEvents(CM_PS_CALL_INCOMING, info);
ProcessIncomingCallEvent(info)
DeriveCallInfo(info, &myIncmg);
SetPriorityCall(TRUE/FALSE); ? auto answer
AddNewCallInfo();
SetPreviousCallWAP();
SetCMPhoneBookStruct();
CMSetupAlertForMT();
IsBlackListNum();
mmi_gsm_ring_ind();
GetCMPhoneBookStruct()
GetCallName()
GetCallLogName()
GetCallLogNumber()
mmi_gsm_get_call_list()
mmi_ucm_dispatch_ind()
mmi_ucm_ring_ind()
分支1:当前不是incoming outgoing 紧急拨号状态,也不是blacklist number。
mmi_ucm_entry_marker()
mdi_audio_stop_all()
mmi_ucm_entry_incoming_call()
EntryNewScreen(SCR_ID_UCM_INCOMING, ...);
register key handle
mmi_ucm_play_incoming_tone()
分支2:自动拒接
mmi_ucm_pre_send_req(MMI_UCM_AUTO_REJECT, ...);
mmi_ucm_pre_send_req(MMI_UCM_FORCE_RELEASE, ...);
2.重点函数
AddNewCallInfo()
来电信息放入CM的状态机进行管理
mmi_gsm_ring_ind()
准备ring_ind需要的数据,最终调用mmi_ucm_dispatch_ind()
mmi_ucm_ring_ind()
根据传来的消息(ring_ind)显示来电界面
mmi_ucm_entry_incoming_call()
进入来电显示画面,接受用户按键处理