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

📄 textphonecontrol.c

📁 MTK手机平台的MMI部分的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
 *  void(?)     [IN]        *
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_ctm_setting_select(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S16 error;
    U16 str_id = STR_GLOBAL_DONE;
    pBOOL old;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    old = mmi_ctm_is_tty_on();
    ctm_p->mode_setting = (U8) ctm_p->index;

    WriteValue(NVRAM_CTM_SETTING, &ctm_p->mode_setting, DS_BYTE, &error);

    mmi_ctm_send_set_default_req(ctm_p->status, ctm_p->mode_setting);
	 if (old == FALSE && mmi_ctm_is_tty_on() == TRUE)
    {
        /* off -> on */
        /* with earphone, take as TTY */
        if (isEarphonePlugged == TRUE)
        {
            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 if (old == TRUE && mmi_ctm_is_tty_on() == FALSE)
    {
        /* on -> off */
        if (isEarphonePlugged == 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);

    DeleteScreenIfPresent(SCR_CTM_SETTING);
}


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

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    return ctm_p->status;
}


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

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    return ctm_p->mode_setting;
}

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

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* TTY on depends on status and setting */
    /* TTY status depends on status and earphone plug in or not */
    if (ctm_p->status == TRUE && 
    	  (ctm_p->mode_setting == MMI_CTM_SETTING_BAUDOT ||
    	   ctm_p->mode_setting == MMI_CTM_SETTING_HCO ||
    	   ctm_p->mode_setting == MMI_CTM_SETTING_VCO))
        return TRUE;
    else
    	  return FALSE;
}

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

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    return ctm_p->tty_status;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_skip_unicode_char
 * DESCRIPTION
 *  
 * PARAMETERS
 *  str         [IN]        
 *  len         [IN]        
 *  ch          [IN]        
 *  void(?)     [IN]        *
 * RETURNS
 *  void
 *****************************************************************************/
U16 mmi_skip_unicode_char(PU16 str, U16 len, U16 ch)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U16 length, i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    length = len;
    for (i = 0; i < length; i++)
    {
        if (str[i] == ch)
        {
            pfnUnicodeStrcpy((PS8) & str[i], (PS8) & str[i + 1]);
            str[length] = 0;
            length--;
        }
    }
    return length;
}


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

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (mmi_ctm_get_mode())
    {
        ctm_p->tty_status = is_present;
    }
    else
    {
        ctm_p->tty_status = FALSE;
    }
}


/*****************************************************************************
 * FUNCTION
 *  entry_ctm_menu
 * DESCRIPTION
 *  CTM main menu: Mode, Setting
 * PARAMETERS
 *  void
 *  void(?)     [IN]        *
 * RETURNS
 *  void
 *****************************************************************************/
void entry_ctm_menu(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U16 nStrItemList[4];
    U16 nNumofItem;
    S16 error;
    U8 *guiBuffer;
    static U8 *PopUpList[4];

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    EntryNewScreen(SCR_CTM_MENU, NULL, entry_ctm_menu, NULL);

    ReadValue(NVRAM_CTM_MODE, &ctm_p->status, DS_BYTE, &error);
    if (ctm_p->status == 0xff)
    {
        ctm_p->status = FALSE;
    }

    ReadValue(NVRAM_CTM_SETTING, &ctm_p->mode_setting, DS_BYTE, &error);
    if (ctm_p->mode_setting == 0xff)
    {
        ctm_p->mode_setting = MMI_CTM_SETTING_MANUAL_DIRECT;
    }

    guiBuffer = GetCurrGuiBuffer(SCR_CTM_MENU);

    RegisterHighlightHandler(ExecuteCurrHiliteHandler);
    nNumofItem = GetNumOfChild(MITEM_CTM_MENU);
    GetSequenceStringIds(MITEM_CTM_MENU, nStrItemList);
    SetParentHandler(MITEM_CTM_MENU);
    ConstructHintsList(MITEM_CTM_MENU, PopUpList);

    ShowCategory55Screen(
        STR_GLOBAL_OPTIONS,
        GetRootTitleIcon(MAIN_MENU_SETTINGS_MENUID),
        STR_GLOBAL_OK,
        IMG_GLOBAL_OK,
        STR_GLOBAL_BACK,
        IMG_GLOBAL_BACK,
        nNumofItem,
        nStrItemList,
        (U8 **) PopUpList,
        0,
        guiBuffer);

    SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
    SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
    return;

}


/*****************************************************************************
 * FUNCTION
 *  entry_ctm_setting_selection
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 *  void(?)     [IN]        *
 * RETURNS
 *  void
 *****************************************************************************/
void entry_ctm_setting_selection(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U16 nStrItemList[20];
    U16 nNumofItem;
    U8 *guiBuffer;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    EntryNewScreen(SCR_CTM_SETTING, NULL, entry_ctm_setting_selection, NULL);

    guiBuffer = GetCurrGuiBuffer(SCR_CTM_SETTING);

    RegisterHighlightHandler(highlight_ctm_setting_items);
    nNumofItem = GetNumOfChild(MITEM_CTM_SETTING);
    GetSequenceStringIds(MITEM_CTM_SETTING, nStrItemList);
    SetParentHandler(MITEM_CTM_SETTING);

    ShowCategory11Screen(
        STR_MITEM_CTM_SETTING,
        GetRootTitleIcon(MAIN_MENU_SETTINGS_MENUID),
        STR_GLOBAL_OK,
        0,
        STR_GLOBAL_BACK,
        0,
        nNumofItem,
        nStrItemList,
        ctm_p->mode_setting,
        guiBuffer);

    SetLeftSoftkeyFunction(mmi_ctm_setting_select, KEY_EVENT_UP);
    SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
    SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
    return;
}


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

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    EntryNewScreen(SCR_CTM_CONNECTING, NULL, entry_ctm_connect_animation, NULL);

    DeleteScreenIfPresent(SCR1003_CM_ACTIVECALLOPTIONS);

    ShowCategory66Screen(0, 0, 0, 0, 0, 0, (PU8) GetString(STR_CTM_CONNECTING), IMG_GLOBAL_PROGRESS, NULL);

    ClearKeyHandler(KEY_END, KEY_EVENT_DOWN);
}


/*****************************************************************************
 * FUNCTION
 *  entry_ctm_talking
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 *  void(?)     [IN]        *
 * RETURNS
 *  void
 *****************************************************************************/
void entry_ctm_talking(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U16 lsk = 0;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*-----

⌨️ 快捷键说明

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