📄 pscallhelper.c
字号:
MMI_TRACE((MMI_TRACE_G5_CM, MMI_CM_FUNC_MakePsHangupallCallsRequest));
ClearInputEventHandler(MMI_DEVICE_ALL);
#ifdef __MMI_TOUCH_SCREEN__
wgui_clear_pen_handlers();
#endif
SetChldReqSent(CM_HANGUPALL_REQ_SENT);
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = PRT_ENDALLCALL_EVENT;
hangUp = (MMI_CC_CHLD_REQ*) OslConstructDataPtr(sizeof(MMI_CC_CHLD_REQ));
hangUp->opcode = CSMCC_REL_ALL;
Message.oslDataPtr = (oslParaType*) hangUp;
Message.oslPeerBuffPtr = NULL;
SetProtocolEventHandler((PsFuncPtr) callBack, PRT_ENDALLCALLREQ_SUCCESS);
SetProtocolEventHandler((PsFuncPtr) CheckFailureChld, PRT_END_CHLD_RSP);
OslMsgSendExtQueue(&Message);
return;
}
/*****************************************************************************
* FUNCTION
* MakePsCallDeflect
* DESCRIPTION
* Makes call to Protcol Stack to deflect incoming Call
*
* The call back registers a handler with the event dynamically
* PARAMETERS
* callBack [?]
* CallDeflectNumber [IN]
* RETURNS
* void
*****************************************************************************/
void MakePsCallDeflect(void *callBack, PU8 CallDeflectNumber)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
MMI_CALL_DEFLECT_REQ *calldeflect;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
MMI_TRACE((MMI_TRACE_G5_CM, MMI_CM_FUNC_MakePsCallDeflect));
ClearInputEventHandler(MMI_DEVICE_ALL);
#ifdef __MMI_TOUCH_SCREEN__
wgui_clear_pen_handlers();
#endif
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = PRT_CALL_DEFLECT_REQ;
calldeflect = (MMI_CALL_DEFLECT_REQ*) OslConstructDataPtr(sizeof(MMI_CALL_DEFLECT_REQ));
if (CallDeflectNumber[0] == '+')
{
calldeflect->dest.type = CSMCC_INTERNATIONAL_ADDR;
strcpy((S8*) calldeflect->dest.number, (S8*) CallDeflectNumber + 1);
}
else
{
calldeflect->dest.type = CSMCC_DEFAULT_ADDR_TYPE;
strcpy((S8*) calldeflect->dest.number, (S8*) CallDeflectNumber);
}
calldeflect->dest.length = strlen((PS8) calldeflect->dest.number);
calldeflect->sub_addr_flag = KAL_FALSE;
memset((void*)&(calldeflect->sub_dest), 0, sizeof(calldeflect->sub_dest));
Message.oslDataPtr = (oslParaType*) calldeflect;
Message.oslPeerBuffPtr = NULL;
SetProtocolEventHandler((PsFuncPtr) callBack, PRT_CALL_DEFLECT_RSP);
OslMsgSendExtQueue(&Message);
return;
}
/*****************************************************************************
* FUNCTION
* MakePsGetCallList
* DESCRIPTION
* Makes call to Protcol Stack to get call list
* PARAMETERS
* callBack [?]
* RETURNS
* void
*****************************************************************************/
void MakePsGetCallList(void *callBack)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = PTR_GET_CALL_LIST_REQ;
Message.oslDataPtr = NULL;
Message.oslPeerBuffPtr = NULL;
SetProtocolEventHandler((PsFuncPtr) callBack, PTR_GET_CALL_LIST_RSP);
OslMsgSendExtQueue(&Message);
return;
}
/*****************************************************************************
* FUNCTION
* MakePsDropUSSDReq
* DESCRIPTION
* Aborts SS string request
* PARAMETERS
* callBack [IN]
* callback(?) [IN] To register with response
* RETURNS
* void
*****************************************************************************/
void MakePsDropUSSDReq(PsFuncPtr callBack)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
MMI_TRACE((MMI_TRACE_G5_CM, MMI_CM_FUNC_MakePsDropUSSDReq));
ResetCFCondStage();
/* Amanda, background abort should not clear key handler */
if (callBack != NULL)
{
ClearInputEventHandler(MMI_DEVICE_ALL);
#ifdef __MMI_TOUCH_SCREEN__
wgui_clear_pen_handlers();
#endif
}
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = PRT_SS_STRING_ABORT_REQ;
Message.oslPeerBuffPtr = NULL;
Message.oslDataPtr = NULL;
SetProtocolEventHandler(callBack, PRT_SS_STRING_ABORT_RSP);
OslMsgSendExtQueue(&Message);
return;
}
/*****************************************************************************
* FUNCTION
* MakePsSendDTMFTone
* DESCRIPTION
* Helper function to start sending a dtmf tone
* PARAMETERS
* MsgStruct [?]
* U8(?) [IN] * This contains digit to send to pstack
* RETURNS
* void
*****************************************************************************/
void MakePsSendDTMFTone(U16 *MsgStruct)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (MsgStruct)
{
MYQUEUE Message;
MMI_DTMF_DIGIT *dtmf;
MMI_TRACE((MMI_TRACE_G5_CM, MMI_CM_FUNC_MakePsSendDTMFTone));
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = PRT_DTMF_START_REQ;
dtmf = (MMI_DTMF_DIGIT*) OslConstructDataPtr(sizeof(MMI_DTMF_DIGIT));
dtmf->digit = MapDtmfEnum2Ascii(*MsgStruct); /* the actuall digit */
MMI_TRACE((MMI_TRACE_G5_CM, MMI_CM_INFO_MakePsSendDTMFTone, dtmf->digit));
Message.oslDataPtr = (oslParaType*) dtmf;
Message.oslPeerBuffPtr = NULL;
OslMsgSendExtQueue(&Message);
}
return;
}
/*****************************************************************************
* FUNCTION
* MakePsStopDTMFTone
* DESCRIPTION
* Helper function to stop dtmf tone
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void MakePsStopDTMFTone(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
MMI_TRACE((MMI_TRACE_G5_CM, MMI_CM_FUNC_MakePsStopDTMFTone));
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = PRT_DTMF_STOP_REQ;
Message.oslDataPtr = NULL;
Message.oslPeerBuffPtr = NULL;
OslMsgSendExtQueue(&Message);
return;
}
/*****************************************************************************
* FUNCTION
* MakePsSendDTMFString
* DESCRIPTION
* Helper function to start sending a dtmf tone
* PARAMETERS
* MsgStruct [?]
* This(?) [IN] Contains digit to send to pstack
* RETURNS
* void
*****************************************************************************/
void MakePsSendDTMFString(U8 *MsgStruct)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
MMI_DTMF_CONFIRM_REQ *dtmf;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
MMI_TRACE((MMI_TRACE_G5_CM, MMI_CM_FUNC_MakePsSendDTMFString));
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = PRT_DTMF_CONFIRM_REQ;
dtmf = (MMI_DTMF_CONFIRM_REQ*) OslConstructDataPtr(sizeof(MMI_DTMF_CONFIRM_REQ));
strcpy((void*)dtmf->digit, (void*)MsgStruct);
Message.oslDataPtr = (oslParaType*) dtmf;
Message.oslPeerBuffPtr = NULL;
OslMsgSendExtQueue(&Message);
return;
}
/*****************************************************************************
* FUNCTION
* MakePsReverseSpeechStatusAux
* DESCRIPTION
* Makes call to Protcol Stack to send USSD data to n/w
*
* The call back registers a handler with the event dynamically
* info describes the data to transparently send to n/w
* PARAMETERS
* status [IN]
* void(?) [IN] *, void*
* RETURNS
* void
*****************************************************************************/
void MakePsReverseSpeechStatusAux(pBOOL speechOn, U8 type)
{
if (speechOn == KAL_TRUE)
{
if (type == MDI_AUDIO_SPEECH_APP_ID_GSM && mdi_audio_speech_get_app_id() != MDI_AUDIO_SPEECH_APP_ID_GSM)
{
mdi_audio_speech_session_start(MDI_AUDIO_SPEECH_APP_ID_GSM);
}
else if (type == MDI_AUDIO_SPEECH_APP_ID_WCDMA && mdi_audio_speech_get_app_id() != MDI_AUDIO_SPEECH_APP_ID_WCDMA)
{
mdi_audio_speech_session_start(MDI_AUDIO_SPEECH_APP_ID_WCDMA);
}
mdi_audio_speech_codec_start();
}
else
{
if ((type == MDI_AUDIO_SPEECH_APP_ID_GSM &&
mdi_audio_speech_get_app_id() == MDI_AUDIO_SPEECH_APP_ID_GSM) ||
(type == MDI_AUDIO_SPEECH_APP_ID_WCDMA &&
mdi_audio_speech_get_app_id() == MDI_AUDIO_SPEECH_APP_ID_WCDMA))
{
mdi_audio_speech_codec_stop();
if ((GetTotalCallCount() == 0 ||(GetTotalCallCount() == 1 && GetCurrentState() == CM_INCOMING_STATE)) && type == MDI_AUDIO_SPEECH_APP_ID_GSM)
{
mdi_audio_speech_session_stop(MDI_AUDIO_SPEECH_APP_ID_GSM);
}
else if ((GetTotalCallCount() == 0 ||(GetTotalCallCount() == 1 && GetCurrentState() == CM_INCOMING_STATE)) && type == MDI_AUDIO_SPEECH_APP_ID_WCDMA)
{
mdi_audio_speech_session_stop(MDI_AUDIO_SPEECH_APP_ID_WCDMA);
}
}
}
}
/*****************************************************************************
* FUNCTION
* MakePsReverseSpeechStatus
* DESCRIPTION
* Makes call to Protcol Stack to send USSD data to n/w
*
* The call back registers a handler with the event dynamically
* info describes the data to transparently send to n/w
* PARAMETERS
* status [IN]
* void(?) [IN] *, void*
* RETURNS
* void
*****************************************************************************/
void MakePsReverseSpeechStatus(pBOOL status, U8 type)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
BOOL speechOn;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (status == TRUE)
{
if (GetInternalAlert() == TRUE)
{
StopInternalOutgoingTone();
}
speechOn = KAL_TRUE;
}
else
{
speechOn = KAL_FALSE;
#ifdef __MMI_SOUND_RECORDER__
mmi_sndrec_auto_record_switch(MMI_FALSE);
#endif
/* Stop background sound effect before speech off */
#if defined(__MMI_BG_SOUND_EFFECT__)
mmi_bgsnd_util_switch_speech(MMI_FALSE);
#endif
if (IsPhoneInMute())
{
UnMutethePhone();
}
}
#ifdef __MMI_BT_HP_SUPPORT__
/* Turn on/off BT speech channel */
if (KAL_TRUE == speechOn)
{
if (mmi_bt_is_aud2hf() == MMI_TRUE && mmi_bt_is_answer_by_ag() == MMI_FALSE)
{
mmi_bt_turn_on_speech_req(KAL_TRUE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -