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

📄 t9main.c

📁 T9输入发接口部分,配合前面发的MTK MMI部分的学习,可以将其移植到其它需要的嵌入式软件中.
💻 C
📖 第 1 页 / 共 5 页
字号:
    {KEY_8, T9KEYAMBIG8},
    {KEY_9, T9KEYAMBIG9},
    {KEY_UP_ARROW,    T9KEYPREV},
    {KEY_DOWN_ARROW,  T9KEYNEXT},
    {KEY_LEFT_ARROW,  T9KEYLEFT},
    {KEY_RIGHT_ARROW, T9KEYRIGHT},
    {KEY_RSK,    T9KEYCLEAR},
    {MAX_KEYS,T9KEYNONE}
};
#else
const KeyPad2T9Key keypad2T9KeyMap_TrChinese[] = {
    {KEY_0, T9KEYAMBIGB},
    {KEY_1, T9KEYAMBIG1},
    {KEY_2, T9KEYAMBIG2},
    {KEY_3, T9KEYAMBIG3},
    {KEY_4, T9KEYAMBIG4},
    {KEY_5, T9KEYAMBIG5},
    {KEY_6, T9KEYAMBIG6},
    {KEY_7, T9KEYAMBIG7},
    {KEY_8, T9KEYAMBIG8},
    {KEY_9, T9KEYAMBIG9},
    {KEY_STAR, T9KEYAMBIGA},
    {KEY_POUND, T9KEYAMBIGC},
    {KEY_UP_ARROW,    T9KEYPREV},
    {KEY_DOWN_ARROW,  T9KEYNEXT},
    {KEY_LEFT_ARROW,  T9KEYLEFT},
    {KEY_RIGHT_ARROW, T9KEYRIGHT},
    {KEY_RSK,    T9KEYCLEAR},
    {MAX_KEYS,T9KEYNONE}
};
#endif
//MTK Terry for Spanish French German Italian
#ifdef  __MMI_T9_SPANISH__
#ifdef T9LANG_Spanish
const KeyPad2T9Key keypad2T9KeyMap_Spanish[] = {
    {KEY_0, T9KEYAMBIGA},
    {KEY_1, T9KEYAMBIG1},
    {KEY_2, T9KEYAMBIG2},
    {KEY_3, T9KEYAMBIG3},
    {KEY_4, T9KEYAMBIG4},
    {KEY_5, T9KEYAMBIG5},
    {KEY_6, T9KEYAMBIG6},
    {KEY_7, T9KEYAMBIG7},
    {KEY_8, T9KEYAMBIG8},
    {KEY_9, T9KEYAMBIG9},
    {KEY_UP_ARROW,    T9KEYPREV},
    {KEY_DOWN_ARROW,  T9KEYNEXT},
    {KEY_LEFT_ARROW,  T9KEYLEFT},
    {KEY_RIGHT_ARROW, T9KEYRIGHT},
    {KEY_RSK,    T9KEYCLEAR},
    {MAX_KEYS,T9KEYNONE}
};
#endif
#endif
// PMT BHASKAR START 20052907

#ifdef  __MMI_T9_VIETNAMESE__
#ifdef T9LANG_Vietnamese
const KeyPad2T9Key keypad2T9KeyMap_Vietnamese[] = {
    {KEY_0, T9KEYAMBIGA},
    {KEY_1, T9KEYAMBIG1},
    {KEY_2, T9KEYAMBIG2},
    {KEY_3, T9KEYAMBIG3},
    {KEY_4, T9KEYAMBIG4},
    {KEY_5, T9KEYAMBIG5},
    {KEY_6, T9KEYAMBIG6},
    {KEY_7, T9KEYAMBIG7},
    {KEY_8, T9KEYAMBIG8},
    {KEY_9, T9KEYAMBIG9},
    {KEY_UP_ARROW,    T9KEYPREV},
    {KEY_DOWN_ARROW,  T9KEYNEXT},
    {KEY_LEFT_ARROW,  T9KEYLEFT},
    {KEY_RIGHT_ARROW, T9KEYRIGHT},
    {KEY_RSK,    T9KEYCLEAR},
    {MAX_KEYS,T9KEYNONE}
};
#endif
#endif

// PMT BHASKAR END 20052907

//PMT VIKASG START 20050729
#ifdef  __MMI_T9_DANISH__
#ifdef T9LANG_Danish
const KeyPad2T9Key keypad2T9KeyMap_Danish[] = {
    {KEY_0, T9KEYAMBIGA},
    {KEY_1, T9KEYAMBIG1},
    {KEY_2, T9KEYAMBIG2},
    {KEY_3, T9KEYAMBIG3},
    {KEY_4, T9KEYAMBIG4},
    {KEY_5, T9KEYAMBIG5},
    {KEY_6, T9KEYAMBIG6},
    {KEY_7, T9KEYAMBIG7},
    {KEY_8, T9KEYAMBIG8},
    {KEY_9, T9KEYAMBIG9},
    {KEY_UP_ARROW,    T9KEYPREV},
    {KEY_DOWN_ARROW,  T9KEYNEXT},
    {KEY_LEFT_ARROW,  T9KEYLEFT},
    {KEY_RIGHT_ARROW, T9KEYRIGHT},
    {KEY_RSK,    T9KEYCLEAR},
    {MAX_KEYS,T9KEYNONE}
};
#endif
#endif
//PMT VIKASG END 20050729

#ifdef  __MMI_T9_FRENCH__
#ifdef T9LANG_French
const KeyPad2T9Key keypad2T9KeyMap_French[] = {
    {KEY_0, T9KEYAMBIGA},
    {KEY_1, T9KEYAMBIG1},
    {KEY_2, T9KEYAMBIG2},
    {KEY_3, T9KEYAMBIG3},
    {KEY_4, T9KEYAMBIG4},
    {KEY_5, T9KEYAMBIG5},
    {KEY_6, T9KEYAMBIG6},
    {KEY_7, T9KEYAMBIG7},
    {KEY_8, T9KEYAMBIG8},
    {KEY_9, T9KEYAMBIG9},
    {KEY_UP_ARROW,    T9KEYPREV},
    {KEY_DOWN_ARROW,  T9KEYNEXT},
    {KEY_LEFT_ARROW,  T9KEYLEFT},
    {KEY_RIGHT_ARROW, T9KEYRIGHT},
    {KEY_RSK,    T9KEYCLEAR},
    {MAX_KEYS,T9KEYNONE}
};
#endif
#endif

#ifdef  __MMI_T9_GERMAN__
#ifdef T9LANG_German
const KeyPad2T9Key keypad2T9KeyMap_German[] = {
    {KEY_0, T9KEYAMBIGA},
    {KEY_1, T9KEYAMBIG1},
    {KEY_2, T9KEYAMBIG2},
    {KEY_3, T9KEYAMBIG3},
    {KEY_4, T9KEYAMBIG4},
    {KEY_5, T9KEYAMBIG5},
    {KEY_6, T9KEYAMBIG6},
    {KEY_7, T9KEYAMBIG7},
    {KEY_8, T9KEYAMBIG8},
    {KEY_9, T9KEYAMBIG9},
    {KEY_UP_ARROW,    T9KEYPREV},
    {KEY_DOWN_ARROW,  T9KEYNEXT},
    {KEY_LEFT_ARROW,  T9KEYLEFT},
    {KEY_RIGHT_ARROW, T9KEYRIGHT},
    {KEY_RSK,    T9KEYCLEAR},
    {MAX_KEYS,T9KEYNONE}
};
#endif
#endif

#ifdef  __MMI_T9_ITALIAN__
#ifdef T9LANG_Italian
const KeyPad2T9Key keypad2T9KeyMap_Italian[] = {
    {KEY_0, T9KEYAMBIGA},
    {KEY_1, T9KEYAMBIG1},
    {KEY_2, T9KEYAMBIG2},
    {KEY_3, T9KEYAMBIG3},
    {KEY_4, T9KEYAMBIG4},
    {KEY_5, T9KEYAMBIG5},
    {KEY_6, T9KEYAMBIG6},
    {KEY_7, T9KEYAMBIG7},
    {KEY_8, T9KEYAMBIG8},
    {KEY_9, T9KEYAMBIG9},
    {KEY_UP_ARROW,    T9KEYPREV},
    {KEY_DOWN_ARROW,  T9KEYNEXT},
    {KEY_LEFT_ARROW,  T9KEYLEFT},
    {KEY_RIGHT_ARROW, T9KEYRIGHT},
    {KEY_RSK,    T9KEYCLEAR},
    {MAX_KEYS,T9KEYNONE}
};
#endif
#endif
//MTK end

//PMT dara 8jan2005 for portuguese
#ifdef  __MMI_T9_PORTUGUESE__
#ifdef T9LANG_Portuguese
const KeyPad2T9Key keypad2T9KeyMap_Portuguese[] = {
    {KEY_0, T9KEYAMBIGA},
    {KEY_1, T9KEYAMBIG1},
    {KEY_2, T9KEYAMBIG2},
    {KEY_3, T9KEYAMBIG3},
    {KEY_4, T9KEYAMBIG4},
    {KEY_5, T9KEYAMBIG5},
    {KEY_6, T9KEYAMBIG6},
    {KEY_7, T9KEYAMBIG7},
    {KEY_8, T9KEYAMBIG8},
    {KEY_9, T9KEYAMBIG9},
    {KEY_UP_ARROW,    T9KEYPREV},
    {KEY_DOWN_ARROW,  T9KEYNEXT},
    {KEY_LEFT_ARROW,  T9KEYLEFT},
    {KEY_RIGHT_ARROW, T9KEYRIGHT},
    {KEY_RSK,    T9KEYCLEAR},
    {MAX_KEYS,T9KEYNONE}
};
#endif
#endif
//PMT end 

//PMT Gurdev Start 20050729
#ifdef  __MMI_T9_INDONESIAN__
#ifdef T9LANG_Indonesian
const KeyPad2T9Key keypad2T9KeyMap_Indonesian[] = {
    {KEY_0, T9KEYAMBIGA},
    {KEY_1, T9KEYAMBIG1},
    {KEY_2, T9KEYAMBIG2},
    {KEY_3, T9KEYAMBIG3},
    {KEY_4, T9KEYAMBIG4},
    {KEY_5, T9KEYAMBIG5},
    {KEY_6, T9KEYAMBIG6},
    {KEY_7, T9KEYAMBIG7},
    {KEY_8, T9KEYAMBIG8},
    {KEY_9, T9KEYAMBIG9},
    {KEY_UP_ARROW,    T9KEYPREV},
    {KEY_DOWN_ARROW,  T9KEYNEXT},
    {KEY_LEFT_ARROW,  T9KEYLEFT},
    {KEY_RIGHT_ARROW, T9KEYRIGHT},
    {KEY_RSK,    T9KEYCLEAR},
    {MAX_KEYS,T9KEYNONE}
};
#endif
#endif
//PMT Gurdev End 20050729

#ifdef  __MMI_T9_RUSSIAN__
const KeyPad2T9Key keypad2T9KeyMap_Russian[] = {
    {KEY_0, T9KEYAMBIGA},
    {KEY_1, T9KEYAMBIG1},
    {KEY_2, T9KEYAMBIG2},
    {KEY_3, T9KEYAMBIG3},
    {KEY_4, T9KEYAMBIG4},
    {KEY_5, T9KEYAMBIG5},
    {KEY_6, T9KEYAMBIG6},
    {KEY_7, T9KEYAMBIG7},
    {KEY_8, T9KEYAMBIG8},
    {KEY_9, T9KEYAMBIG9},
    {KEY_UP_ARROW,    T9KEYPREV},
    {KEY_DOWN_ARROW,  T9KEYNEXT},
    {KEY_LEFT_ARROW,  T9KEYLEFT},
    {KEY_RIGHT_ARROW, T9KEYRIGHT},
    {KEY_RSK,    T9KEYCLEAR},
    {MAX_KEYS,T9KEYNONE}
};
#endif




const BOPOCHAR BopomofoTable[] = {
{'b', "b", 0x3105, T9KEYAMBIG1},
{'p', "p", 0x3106, T9KEYAMBIG1},
{'m', "m", 0x3107, T9KEYAMBIG1},
{'f', "f", 0x3108, T9KEYAMBIG1},
{'d', "d", 0x3109, T9KEYAMBIG2},
{'t', "t", 0x310A, T9KEYAMBIG2},
{'n', "n", 0x310B, T9KEYAMBIG2},
{'l', "l", 0x310C, T9KEYAMBIG2},
{'g', "g", 0x310D, T9KEYAMBIG3},
{'k', "k", 0x310E, T9KEYAMBIG3},
{'h', "h", 0x310F, T9KEYAMBIG3},
{'j', "j", 0x3110, T9KEYAMBIG4},
{'q', "q", 0x3111, T9KEYAMBIG4},
{'x', "x", 0x3112, T9KEYAMBIG4},
{0xdf, "zh", 0x3113, T9KEYAMBIG5},
{0xe7, "ch", 0x3114, T9KEYAMBIG5},
{0x9a, "sh", 0x3115, T9KEYAMBIG5},
{'r', "r", 0x3116, T9KEYAMBIG5},
{'z', "z", 0x3117, T9KEYAMBIG6},
{'c', "c", 0x3118, T9KEYAMBIG6},
{'s', "s", 0x3119, T9KEYAMBIG6},
{'a', "a", 0x311A, T9KEYAMBIG7},
{'o', "o", 0x311B, T9KEYAMBIG7},
{'e', "e", 0x311C, T9KEYAMBIG7},
{0xe9, "ei", 0x311D, T9KEYAMBIG7},
{0xe4, "ai", 0x311E, T9KEYAMBIG8},
{0xf6, "ei", 0x311F, T9KEYAMBIG8},
{0xe5, "ao", 0x3120, T9KEYAMBIG8},
{0xfd, "ou", 0x3121, T9KEYAMBIG8},
{0xe3, "an", 0x3122, T9KEYAMBIG9},
{0xf5, "en", 0x3123, T9KEYAMBIG9},
{0xe2, "ang", 0x3124, T9KEYAMBIG9},
{0xf4, "eng", 0x3125, T9KEYAMBIG9},
{0xf8, "er", 0x3126, T9KEYAMBIG9},
{'i', "i", 0x3127, T9KEYAMBIGA},
{'u', "u", 0x3128, T9KEYAMBIGA},
{0xfc, "iu", 0x3129, T9KEYAMBIGA},
{0, 0, 0x0000, 0},
};


/*------------------------------------------------------------------------
 *
 *                  Callback routines necessary to link to the T9 Core.
 *
 *------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
Function:		T9UpdateLSKString
Description:		Update the temp_left_softkey_txt from MMI_left_softkey_text
Input Parameters:	none
Output Parameters:	none
Returns:			void
----------------------------------------------------------------------------*/
void T9UpdateLSKString(void)
{
#if !defined(MMI_LOW_MEMORY_PHONE)
   temp_left_softkey_text = MMI_softkeys[MMI_LEFT_SOFTKEY].text;
#else
   temp_left_softkey_text = MMI_left_softkey.text;
#endif
}

/* This is static because the only use of it is in setting a pointer.
   It is FARCALL because it might be called from anywhere. */
#if defined(__MMI_T9_V7__)
T9STATUS T9FARCALL T9HandleRequest(T9FieldInfo *pFieldInfo, T9Request *pRequest)
{
    T9STATUS    mStatus = T9STATERROR;

    switch(pRequest->eType) {
       /*------------------------------------------------------------------------
       *
       * Callback routines necessary to link to the T9 Core.
       *
       *------------------------------------------------------------------------*/
       case T9REQMULTITAPSYM : /* External multi-tap request (Bopomofo only) */
            mStatus = GetNextSymOnKey(pFieldInfo, pRequest);
            break;
       case T9REQTIMEOUT : /* Request a timer be set. */

            if(gpTimer.iTimerID != 0xFFFF)
            {
                RemoveTimer((void *)&gpTimer);
            }

            if (T9TMRMULT == pRequest->data.sTimeout.eTimerType)//FieldInfo.nLdbNum == PLDBID_English)
            {
               if( inputMethodFlag & T9_IN_CATEGORY_5_FLAG )
               {
                 RequestTimer(T9_MULTITAP_TIMER_DURATION, T9TimeoutMultilineInputBox,
								 pRequest->data.sTimeout.mTimerID);
               }
//PMT Dara Added  on 7/12/04...to disable EMS support for NEPTUNE
#if !defined(MMI_LOW_MEMORY_PHONE)||defined(__MMI_MESSAGES_EMS__)
               else if ( inputMethodFlag & T9_IN_CATEGORY_28_FLAG  )
               {
                 RequestTimer(T9_MULTITAP_TIMER_DURATION, T9TimeoutForEMSInputBox,
								 pRequest->data.sTimeout.mTimerID);
               }
#endif 
//PMT end				 
            }
            mStatus = T9STATNONE;
            break;

       default:
           mStatus = T9STATNONE;
    }
    return mStatus;
}
#else
static T9STATUS FARCALL T9HandleRequest(T9FieldInfo *pFieldInfo, T9Request *pRequest)
{
    T9STATUS    mStatus = T9STATERROR;
    //void        *pTimer;

    switch(pRequest->mType) {

       /*------------------------------------------------------------------------
       *
       * Callback routines necessary to link to the T9 Core.
       *
       *------------------------------------------------------------------------*/
       case T9REQSPELLSYM : /* External multi-tap request (Bopomofo only) */
            mStatus = GetNextSymOnKey(pFieldInfo, pRequest);
            break;
       case T9REQTIMEOUT : /* Request a timer be set. */

            if(gpTimer.iTimerID != 0xFFFF)
            {
                RemoveTimer((void *)&gpTimer);
            }

            if (T9TMRMULT == pRequest->data.sTimeout.mTimerType)//FieldInfo.nLdbNum == PLDBID_English)
            {
               if( inputMethodFlag & T9_IN_CATEGORY_5_FLAG )
               {
                 RequestTimer(T9_MULTITAP_TIMER_DURATION, T9TimeoutMultilineInputBox,
								 pRequest->data.sTimeout.mTimerID);
               }
//PMT Dara Added  on 7/12/04...to disable EMS support for NEPTUNE
#if !defined(MMI_LOW_MEMORY_PHONE)||defined(__MMI_MESSAGES_EMS__)
               else if ( inputMethodFlag & T9_IN_CATEGORY_28_FLAG  )
               {
                 RequestTimer(T9_MULTITAP_TIMER_DURATION, T9TimeoutForEMSInputBox,
								 pRequest->data.sTimeout.mTimerID);
               }
#endif 
//PMT end
            }

⌨️ 快捷键说明

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