⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pscallhelper.c

📁 MTK手机平台的MMI部分的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
    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 + -