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

📄 t9main.c

📁 T9输入发接口部分,配合前面发的MTK MMI部分的学习,可以将其移植到其它需要的嵌入式软件中.
💻 C
📖 第 1 页 / 共 5 页
字号:
            mStatus = T9STATNONE;
            break;

       default:
           mStatus = T9STATNONE;
    }
    return mStatus;
}
#endif

#if defined(__MMI_T9_V7__)
T9MINOR KeypadToT9Key(T9MINOR mmiKey)
{
   T9MINOR i;

   switch(FieldInfo.CCFieldInfo.G.nLdbNum&T9PIDMASK)
   {
      case T9PIDEnglish:
      case T9PIDSpanish:
//PMT VIKASG START 20050729
	  case T9PIDDanish:	
//PMT VIKASG END 20050729
      case T9PIDFrench:
      case T9PIDGerman:
      case T9PIDItalian:
	  case T9PIDPortuguese:
	  //PMT Gurdev Start 20050729
	  case T9PIDIndonesian:	
      //PMT Gurdev End 20050729
     // PMT BHASKAR START 20052907
	  case T9PIDVietnamese:
     // PMT BHASKAR END 20052907
	  case T9PIDRussian:
         for(i = 0; keypad2T9KeyMap_English[i].mmiKey != MAX_KEYS; i++)
         {
            if (keypad2T9KeyMap_English[i].mmiKey == mmiKey) 
            {
               return keypad2T9KeyMap_English[i].t9Key;
            }
         }
//PMT dara Added for T9 thai
#ifdef __MMI_T9_THAI__
	  case T9PIDThai:
		for(i = 0; keypad2T9KeyMap_Thai[i].mmiKey != MAX_KEYS; i++)
         {
            if (keypad2T9KeyMap_Thai[i].mmiKey == mmiKey) 
            {
               return keypad2T9KeyMap_Thai[i].t9Key;
            }
         }
#endif 

      case T9PIDChinese:
         for(i = 0; keypad2T9KeyMap_TrChinese[i].mmiKey != MAX_KEYS; i++)
         {
            if (keypad2T9KeyMap_TrChinese[i].mmiKey == mmiKey) 
            {
               return keypad2T9KeyMap_TrChinese[i].t9Key;
            }
         }
      default:
         return T9KEYNONE;
   }
}
#else
T9MINOR KeypadToT9Key(T9MINOR mmiKey)
{
	T9MINOR i;

    if(FieldInfo.nLdbNum & (PLDBID_English))
    {
        for(i = 0; keypad2T9KeyMap_English[i].mmiKey != MAX_KEYS; i++)
        {
            if (keypad2T9KeyMap_English[i].mmiKey == mmiKey) {
                return keypad2T9KeyMap_English[i].t9Key;
            }
        }
    }
//MTK Terry for Spanish French German Italian
#if defined(__MMI_T9_SPANISH__)
    else if(FieldInfo.nLdbNum & PLDBID_Spanish)
    {
            for(i = 0; keypad2T9KeyMap_Spanish[i].mmiKey != MAX_KEYS; i++)
            {
                if (keypad2T9KeyMap_Spanish[i].mmiKey == mmiKey) {
                    return keypad2T9KeyMap_Spanish[i].t9Key;
                }
            }

    }
#endif

// PMT BHASKAR START 20052907

#if defined(__MMI_T9_VIETNAMESE__)
    else if(FieldInfo.nLdbNum & PLDBID_Vietnamese)
    {
            for(i = 0; keypad2T9KeyMap_Vietnamese[i].mmiKey != MAX_KEYS; i++)
            {
                if (keypad2T9KeyMap_Vietnamese[i].mmiKey == mmiKey) {
                    return keypad2T9KeyMap_Vietnamese[i].t9Key;
                }
            }

    }
#endif

// PMT BHASKAR END 20052907

//PMT VIKASG START 20050729
#if defined(__MMI_T9_DANISH__)
    else if(FieldInfo.nLdbNum & PLDBID_Danish)
    {
            for(i = 0; keypad2T9KeyMap_Danish[i].mmiKey != MAX_KEYS; i++)
            {
                if (keypad2T9KeyMap_Danish[i].mmiKey == mmiKey) {
                    return keypad2T9KeyMap_Danish[i].t9Key;
                }
            }

    }
#endif
//PMT VIKASG END 20050729
#if defined(__MMI_T9_FRENCH__)
    else if(FieldInfo.nLdbNum & PLDBID_French)
    {
            for(i = 0; keypad2T9KeyMap_French[i].mmiKey != MAX_KEYS; i++)
            {
                if (keypad2T9KeyMap_French[i].mmiKey == mmiKey) {
                    return keypad2T9KeyMap_French[i].t9Key;
                }
            }

    }
#endif
#if defined(__MMI_T9_GERMAN__)
    else if(FieldInfo.nLdbNum & PLDBID_German)
    {
            for(i = 0; keypad2T9KeyMap_German[i].mmiKey != MAX_KEYS; i++)
            {
                if (keypad2T9KeyMap_German[i].mmiKey == mmiKey) {
                    return keypad2T9KeyMap_German[i].t9Key;
                }
            }

    }
#endif
#if defined(__MMI_T9_ITALIAN__)
    else if(FieldInfo.nLdbNum & PLDBID_Italian)
    {
            for(i = 0; keypad2T9KeyMap_Italian[i].mmiKey != MAX_KEYS; i++)
            {
                if (keypad2T9KeyMap_Italian[i].mmiKey == mmiKey) {
                    return keypad2T9KeyMap_Italian[i].t9Key;
                }
            }

    }
#endif
//MTK end
//PMT dara 8jan2005 for portuguese 
#if defined(__MMI_T9_PORTUGUESE__)
    else if(FieldInfo.nLdbNum & PLDBID_Portuguese)
    {
            for(i = 0; keypad2T9KeyMap_Portuguese[i].mmiKey != MAX_KEYS; i++)
            {
                if (keypad2T9KeyMap_Portuguese[i].mmiKey == mmiKey) {
                    return keypad2T9KeyMap_Portuguese[i].t9Key;
                }
            }

    }
#endif
//PMT Gurdev Start 20050729
#if defined(__MMI_T9_INDONESIAN__)
    else if(FieldInfo.nLdbNum & PLDBID_Indonesian)
    {
            for(i = 0; keypad2T9KeyMap_Indonesian[i].mmiKey != MAX_KEYS; i++)
            {
                if (keypad2T9KeyMap_Indonesian[i].mmiKey == mmiKey) {
                    return keypad2T9KeyMap_Indonesian[i].t9Key;
                }
            }

    }
#endif
//PMT Gurdev End 20050729
#if defined(__MMI_T9_RUSSIAN__)
    else if(FieldInfo.nLdbNum & PLDBID_Russian)
    {
            for(i = 0; keypad2T9KeyMap_Russian[i].mmiKey != MAX_KEYS; i++)
            {
                if (keypad2T9KeyMap_Russian[i].mmiKey == mmiKey) {
                    return keypad2T9KeyMap_Russian[i].t9Key;
                }
            }

    }
#endif

//PMT dara Added for T9 thai
#ifdef __MMI_T9_THAI__
	  else if(FieldInfo.nLdbNum & PLDBID_Thai)
		for(i = 0; keypad2T9KeyMap_Thai[i].mmiKey != MAX_KEYS; i++)
         {
            if (keypad2T9KeyMap_Thai[i].mmiKey == mmiKey) 
            {
               return keypad2T9KeyMap_Thai[i].t9Key;
            }
         }
#endif 
//PMT end 
    else if(FieldInfo.nLdbNum & PLDBID_Chinese)
    {
            for(i = 0; keypad2T9KeyMap_TrChinese[i].mmiKey != MAX_KEYS; i++)
            {
                if (keypad2T9KeyMap_TrChinese[i].mmiKey == mmiKey) {
                    return keypad2T9KeyMap_TrChinese[i].t9Key;
                }
            }

    }
    return T9KEYNONE;
}
#endif
/*------------------------------------------------------------------------
 *
 *  Function name   : DrawBPMFString
 *  Description     : Draw the BPMF on the graphic screen. The character may be a
 *                    space number or other char, just draw these non BoPoMoFo char
 *
 *  Pass            : Device context to write to.
 *
 *  Return          : void
 *
 *-----------------------------------------------------------------------*/
void DrawBPMFString(unsigned int iX, unsigned int iY, T9U8 *psStr )
{
    T9U16 iChar;
    T9U8 i=0;

    if(t9CompositionArea.text_length > ENCODING_LENGTH)
    pixtel_UI_single_line_input_box_delete_all(&t9CompositionArea);


    while( *psStr )
    {
        if(IsBPMFChar(*psStr)){
            iChar = BPMFInternalToUnicode(*psStr);
            pixtel_UI_single_line_input_box_insert_character(&t9CompositionArea,iChar);
        }
        else{
            if( *psStr > 0x30 && *psStr < 0x36 || *psStr == 0x20)
            {
              switch(*psStr)
              {
                case 0x31 :
                     iChar = 0x002d;//0x0020;
                     break;
                case 0x32 :
                     iChar = 0x02CA;
                     break;
                case 0x33 :
                     iChar = 0x02C7;
                     break;
                case 0x34 :
                     iChar = 0x02CB;
                     break;
                case 0x35 :
                     iChar = 0x02D9;
                     break;
   	         case 0x20 :
                     iChar = 0x0020;
                     break;

              }
              pixtel_UI_single_line_input_box_insert_character(&t9CompositionArea,iChar);
            }
	     else
	     {
             return ;
	     }
        }
        i++;
        psStr++;
    }

    pixtel_UI_single_line_input_box_insert_character(&t9CompositionArea,0x20);

}

/*------------------------------------------------------------------------
 *
 *  Function name   : DrawBPMFString
 *  Description     : Draw the BPMF on the graphic screen. The character may be a
 *                    space number or other char, just draw these non BoPoMoFo char
 *
 *  Pass            : Device context to write to.
 *
 *  Return          : void
 *
 *-----------------------------------------------------------------------*/
void DrawPinYinString(unsigned int iX, unsigned int iY, T9U8 *psStr )
{
    T9U16 iChar;
    T9U8 i=0;

    if(t9CompositionArea.text_length > ENCODING_LENGTH)
    pixtel_UI_single_line_input_box_delete_all(&t9CompositionArea);


    while( *psStr ){
        if(IsPinYinChar(*psStr)){
            iChar = PinYinInternalToUnicode(*psStr);
            pixtel_UI_single_line_input_box_insert_character(&t9CompositionArea,iChar);


        }
        else{
            if( *psStr > 0x30 && *psStr < 0x36)
            {
              switch(*psStr)
              {
                case 0x31 :
                     iChar = 0x002D;    //'-'
                     break;
                case 0x32 :
                     iChar = 0x02CA;
                     break;
                case 0x33 :
                     iChar = 0x02C7;
                     break;
                case 0x34 :
                     iChar = 0x02CB;
                     break;
                case 0x35 :
                     iChar = 0x02D9;
                     break;

              }
              pixtel_UI_single_line_input_box_insert_character(&t9CompositionArea,iChar);
            }
            else
			{
                        return ;
			}
        }
		i++;
        psStr++;
    }
    pixtel_UI_single_line_input_box_insert_character(&t9CompositionArea,0x20);

}
/*------------------------------------------------------------------------
 *
 *  Function name   : DrawBPMFString
 *  Description     : Draw the BPMF on the graphic screen. The character may be a
 *                    space number or other char, just draw these non BoPoMoFo char
 *
 *  Pass            : Device context to write to.
 *
 *  Return          : void
 *
 *-----------------------------------------------------------------------*/
void     DrawStrokeString(unsigned int iX, unsigned int iY, T9U8 *psStr )
{
    T9U16 iChar;
    T9U8 i=0;

    if(t9CompositionArea.text_length > ENCODING_LENGTH)
    pixtel_UI_single_line_input_box_delete_all(&t9CompositionArea);


    while( *psStr )
    {
        if(IsStrokeChar(*psStr))
        {
            iChar = StrokeInternalToUnicode(*psStr);
            pixtel_UI_single_line_input_box_insert_character(&t9CompositionArea,iChar);

        }
        else
        {
             pixtel_UI_single_line_input_box_insert_character(&t9CompositionArea,0x20);
             return ;
        }
		i++;
        psStr++;
    }
    pixtel_UI_single_line_input_box_insert_character(&t9CompositionArea,0x20);
}

/*******************************************************************************
 *
 *	Function name	: IsBPMFChar
 *	Description	    : check if the input char is a BoPoMoFo internal char.
 *
 *	Return     		: 1 (Yes) or 0(No)
 *
 *	Pass            : T9U8 - alpha Tegic BoPoMoFo internal char code to be translated
 *

⌨️ 快捷键说明

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