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

📄 textphonecontrol.c

📁 MTK手机平台的MMI部分的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
{
#ifndef __CTM_DEBUG
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    MYQUEUE Message;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* ClearInputEventHandler(MMI_DEVICE_ALL); */

    Message.oslSrcId = MOD_MMI;
    Message.oslDestId = MOD_L4C;
    Message.oslMsgId = MSG_ID_MMI_CTM_CLOSE_REQ;

    Message.oslDataPtr = NULL;
    Message.oslPeerBuffPtr = NULL;

    SetProtocolEventHandler(mmi_ctm_close_rsp_hdlr, MSG_ID_MMI_CTM_CLOSE_RSP);
    OslMsgSendExtQueue(&Message);
#else /* __CTM_DEBUG */ 
    StartTimer(CM_ALERT_NOTIFYDURATION_TIMER, 2000, (FuncPtr) mmi_ctm_close_rsp_hdlr);
#endif /* __CTM_DEBUG */ 
    PRINT_INFORMATION(("\n CTM CLOSE REQ\n"));
}


/*****************************************************************************
 * FUNCTION
 *  mmi_ctm_send_connect_req
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 *  void(?)     [IN]        *
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_ctm_send_connect_req(void)
{
#ifndef __CTM_DEBUG
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    MYQUEUE Message;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ClearInputEventHandler(MMI_DEVICE_ALL);

    Message.oslSrcId = MOD_MMI;
    Message.oslDestId = MOD_L4C;
    Message.oslMsgId = MSG_ID_MMI_CTM_CONNECT_REQ;

    Message.oslDataPtr = NULL;
    Message.oslPeerBuffPtr = NULL;

    SetProtocolEventHandler(mmi_ctm_connect_rsp_hdlr, MSG_ID_MMI_CTM_CONNECT_RSP);
    OslMsgSendExtQueue(&Message);
#else /* __CTM_DEBUG */ 
    StartTimer(CM_NOTIFYDURATION_TIMER, 2000, (FuncPtr) mmi_ctm_connect_rsp_hdlr);
#endif /* __CTM_DEBUG */ 
    PRINT_INFORMATION(("\n CTM CONNECT REQ\n"));
}


/*****************************************************************************
 * FUNCTION
 *  mmi_ctm_send_text_req
 * DESCRIPTION
 *  
 * PARAMETERS
 *  text        [IN]        
 *  length      [IN]        
 *  void(?)     [IN]        *
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_ctm_send_text_req(PS8 text, U16 length)
{
#ifndef __CTM_DEBUG
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    MYQUEUE Message;
    mmi_ctm_send_text_req_struct *param;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ClearInputEventHandler(MMI_DEVICE_ALL);

    Message.oslSrcId = MOD_MMI;
    Message.oslDestId = MOD_L4C;
    Message.oslMsgId = MSG_ID_MMI_CTM_SEND_TEXT_REQ;

    param = (mmi_ctm_send_text_req_struct*) OslConstructDataPtr(sizeof(mmi_ctm_send_text_req_struct));

    if (length > CTM_SEND_TEXT_CHAR_MAX_NUM)
    {
        param->num_of_char = CTM_SEND_TEXT_CHAR_MAX_NUM;
        pfnUnicodeStrncpy((PS8) param->text, text, CTM_SEND_TEXT_CHAR_MAX_NUM);
    }
    else
    {
        param->num_of_char = length;
        pfnUnicodeStrcpy((PS8) param->text, text);
    }
    ctm_p->sent_len = param->num_of_char;

    Message.oslDataPtr = (oslParaType*) param;
    Message.oslPeerBuffPtr = NULL;

    SetProtocolEventHandler(mmi_ctm_send_text_rsp_hdlr, MSG_ID_MMI_CTM_SEND_TEXT_RSP);
    OslMsgSendExtQueue(&Message);
#else /* __CTM_DEBUG */ 
    if (length > CTM_SEND_TEXT_CHAR_MAX_NUM)
    {
        ctm_p->sent_len = CTM_SEND_TEXT_CHAR_MAX_NUM;
    }
    else
    {
        ctm_p->sent_len = length;
    }

    StartTimer(CM_NOTIFYDURATION_TIMER, 2000, (FuncPtr) mmi_ctm_send_text_rsp_hdlr);
#endif /* __CTM_DEBUG */ 
    PRINT_INFORMATION(("\n CTM SEND TEXT REQ\n"));
}


/*****************************************************************************
 * FUNCTION
 *  mmi_ctm_send_set_default_req
 * DESCRIPTION
 *  
 * PARAMETERS
 *  on_off      [IN]        
 *  mode        [IN]        
 *  void(?)     [IN]        *
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_ctm_send_set_default_req(pBOOL on_off, U8 mode)
{
#ifndef __CTM_DEBUG
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    MYQUEUE Message;
    mmi_ctm_set_default_req_struct *param;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ClearInputEventHandler(MMI_DEVICE_ALL);

    Message.oslSrcId = MOD_MMI;
    Message.oslDestId = MOD_L4C;
    Message.oslMsgId = MSG_ID_MMI_CTM_SET_DEFAULT_REQ;

    param = (mmi_ctm_set_default_req_struct*) OslConstructDataPtr(sizeof(mmi_ctm_set_default_req_struct));

    param->is_turn_on = on_off;

    switch (mode)
    {
        case MMI_CTM_SETTING_BAUDOT:
            param->ctm_interface = CTM_BAUDOT_MODE;
            break;
        case MMI_CTM_SETTING_HCO:
            param->ctm_interface = CTM_HCO_MODE;
            break;
        case MMI_CTM_SETTING_VCO:
            param->ctm_interface = CTM_VCO_MODE;
            break;
        default:
            param->ctm_interface = CTM_DIRECT_MODE;
            break;
    }
    Message.oslDataPtr = (oslParaType*) param;
    Message.oslPeerBuffPtr = NULL;

    SetProtocolEventHandler(mmi_ctm_set_default_rsp_hdlr, MSG_ID_MMI_CTM_SET_DEFAULT_RSP);
    OslMsgSendExtQueue(&Message);
#else /* __CTM_DEBUG */ 
    StartTimer(CM_NOTIFYDURATION_TIMER, 2000, (FuncPtr) mmi_ctm_set_default_rsp_hdlr);
#endif /* __CTM_DEBUG */ 
    PRINT_INFORMATION(("\n CTM SEND SET DEFAULT REQ\n"));
}


/*****************************************************************************
 * FUNCTION
 *  mmi_ctm_send_get_default_req
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 *  void(?)     [IN]        *
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_ctm_send_get_default_req(void)
{
#ifndef __CTM_DEBUG
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    MYQUEUE Message;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    Message.oslSrcId = MOD_MMI;
    Message.oslDestId = MOD_L4C;
    Message.oslMsgId = MSG_ID_MMI_CTM_GET_DEFAULT_REQ;

    Message.oslDataPtr = NULL;
    Message.oslPeerBuffPtr = NULL;

    SetProtocolEventHandler(mmi_ctm_get_default_rsp_hdlr, MSG_ID_MMI_CTM_GET_DEFAULT_RSP);
    OslMsgSendExtQueue(&Message);
#else /* __CTM_DEBUG */ 
    StartTimer(CM_NOTIFYDURATION_TIMER, 2000, (FuncPtr) mmi_ctm_get_default_rsp_hdlr);
#endif /* __CTM_DEBUG */ 
    PRINT_INFORMATION(("\n CTM SEND GET DEFAULT REQ\n"));
}


/*****************************************************************************
 * FUNCTION
 *  mmi_ctm_connect
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 *  void(?)     [IN]        *
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_ctm_connect(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (ctm_p->state == MMI_CTM_STATE_OPENED)
    {
        mmi_ctm_set_state(MMI_CTM_STATE_CONNECTING);
        mmi_ctm_send_connect_req();
        entry_ctm_connect_animation();
    }
    else if (ctm_p->state == MMI_CTM_STATE_CONNECTED)
    {
        /* back to active screen to direct to chat screen */
        GoBackHistory();
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_ctm_edit_done
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 *  void(?)     [IN]        *
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_ctm_edit_done(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ctm_p->pending_len += pfnUnicodeStrlen((PS8) ctm_p->editor_buffer);
    pfnUnicodeStrcat((PS8) ctm_p->pending_buffer, (PS8) ctm_p->editor_buffer);
    memset(ctm_p->editor_buffer, 0, MAX_CTM_EDITOR_BUFFER_LEN);

    if (ctm_p->sent_len == 0)
    {
        mmi_ctm_send_text_req((PS8) ctm_p->pending_buffer, ctm_p->pending_len);
    }

    if (IsScreenPresent(SCR_CM_ACTIVECALLSCREEN))
    {
        GoBackToHistory(SCR_CM_ACTIVECALLSCREEN);
    }
    else if (IsScreenPresent(SCR_CTM_TALKING))
    {
        GoBackToHistory(SCR_CTM_TALKING);
    }
    else
    {
        ASSERT(0);
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_ctm_toggle_mode
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 *  void(?)     [IN]        *
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_ctm_toggle_mode(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S16 error;
    U16 str_id;
    pBOOL old;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    old = mmi_ctm_is_tty_on();
    if (ctm_p->status == TRUE)
    {
        ctm_p->status = FALSE;
    }
    else
    {
        ctm_p->status = TRUE;
    }

    WriteValue(NVRAM_CTM_MODE, &ctm_p->status, DS_BYTE, &error);

    mmi_ctm_send_set_default_req(ctm_p->status, ctm_p->mode_setting);

    if (ctm_p->status == TRUE)
    {
        /* off -> on */
        str_id = STR_CTM_ON_SELECTED;
        ShowStatusIcon(STATUS_ICON_TTY_INDICATOR);
        /* with earphone, take as TTY */
        ctm_p->tty_status = isEarphonePlugged;
        if (isEarphonePlugged == TRUE && mmi_ctm_is_tty_on())
        {
            str_id = STR_CTM_HEADSET_TO_TTY;
            /* deactivate earphone mode, Tim */
            mmi_profiles_earphone_plug_out_callback();
        #if (defined (__MMI_STATUS_ICON_EN_EARPHONE__) || defined(__MMI_BT_SUPPORT__))
            IdleResetStatusIcon(STATUS_ICON_EARPHONE_INDICATOR);
        #endif 
        }
    }
    else
    {
        /* on -> off */
        str_id = STR_CTM_OFF_SELECTED;
        HideStatusIcon(STATUS_ICON_TTY_INDICATOR);
        ctm_p->tty_status = FALSE;
        if (isEarphonePlugged == TRUE && old == TRUE)
        {
            str_id = STR_CTM_TTY_TO_HEADSET;
            /* activate earphone mode, Tim */
            mmi_profiles_earphone_plug_in_callback();
        #if (defined (__MMI_STATUS_ICON_EN_EARPHONE__) || defined(__MMI_BT_SUPPORT__))
            IdleSetStatusIcon(STATUS_ICON_EARPHONE_INDICATOR);
        #endif 
        }
    }

    DisplayPopup((PU8) GetString(str_id), IMG_GLOBAL_ACTIVATED, 1, 2000, SUCCESS_TONE);

    /*
     * hint_ctm_mode(GetCurrHiliteID());
     * RedrawCategoryFunction();
     * highlight_ctm_mode();
     */
}


/*****************************************************************************
 * FUNCTION
 *  mmi_ctm_setting_select
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -