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

📄 zi8api.h

📁 用于嵌入式系统的输入法程序 里面有完整的系统实现原码
💻 H
📖 第 1 页 / 共 4 页
字号:
#define ZI8_CODE_PINYIN_W              (ZI8_BASE_PINYIN+22)
#define ZI8_CODE_PINYIN_X              (ZI8_BASE_PINYIN+23)
#define ZI8_CODE_PINYIN_Y              (ZI8_BASE_PINYIN+24)
#define ZI8_CODE_PINYIN_Z              (ZI8_BASE_PINYIN+25)

#define ZI8_CODE_TONES_1               (ZI8_BASE_TONES+0)
#define ZI8_CODE_TONES_2               (ZI8_BASE_TONES+1)
#define ZI8_CODE_TONES_3               (ZI8_BASE_TONES+2)
#define ZI8_CODE_TONES_4               (ZI8_BASE_TONES+3)
#define ZI8_CODE_TONES_5               (ZI8_BASE_TONES+4)

/* ONE KEY PRESS: KEYS MAPPING */
#define ZI8_ONEKEY_KEY1                (ZI8_BASE_LATIN_KEYS+1)
#define ZI8_ONEKEY_KEY2                (ZI8_BASE_LATIN_KEYS+2)
#define ZI8_ONEKEY_KEY3                (ZI8_BASE_LATIN_KEYS+3)
#define ZI8_ONEKEY_KEY4                (ZI8_BASE_LATIN_KEYS+4)
#define ZI8_ONEKEY_KEY5                (ZI8_BASE_LATIN_KEYS+5)
#define ZI8_ONEKEY_KEY6                (ZI8_BASE_LATIN_KEYS+6)
#define ZI8_ONEKEY_KEY7                (ZI8_BASE_LATIN_KEYS+7)
#define ZI8_ONEKEY_KEY8                (ZI8_BASE_LATIN_KEYS+8)
#define ZI8_ONEKEY_KEY9                (ZI8_BASE_LATIN_KEYS+9)
#define ZI8_ONEKEY_KEY0                (ZI8_BASE_LATIN_KEYS+10)
#define ZI8_ONEKEY_KEY11               (ZI8_BASE_LATIN_KEYS+11)
#define ZI8_ONEKEY_KEY12               (ZI8_BASE_LATIN_KEYS+12)

/* ONE KEY PRESS: PINYIN LETTERS MAPPING */
#define ZI8_ONEKEY_PY_EXACT            ZI8_ONEKEY_KEY1
#define ZI8_ONEKEY_PY_A                ZI8_ONEKEY_KEY2
#define ZI8_ONEKEY_PY_B                ZI8_ONEKEY_KEY2
#define ZI8_ONEKEY_PY_C                ZI8_ONEKEY_KEY2
#define ZI8_ONEKEY_PY_D                ZI8_ONEKEY_KEY3
#define ZI8_ONEKEY_PY_E                ZI8_ONEKEY_KEY3
#define ZI8_ONEKEY_PY_F                ZI8_ONEKEY_KEY3
#define ZI8_ONEKEY_PY_G                ZI8_ONEKEY_KEY4
#define ZI8_ONEKEY_PY_H                ZI8_ONEKEY_KEY4
#define ZI8_ONEKEY_PY_I                ZI8_ONEKEY_KEY4
#define ZI8_ONEKEY_PY_J                ZI8_ONEKEY_KEY5
#define ZI8_ONEKEY_PY_K                ZI8_ONEKEY_KEY5
#define ZI8_ONEKEY_PY_L                ZI8_ONEKEY_KEY5
#define ZI8_ONEKEY_PY_M                ZI8_ONEKEY_KEY6
#define ZI8_ONEKEY_PY_N                ZI8_ONEKEY_KEY6
#define ZI8_ONEKEY_PY_O                ZI8_ONEKEY_KEY6
#define ZI8_ONEKEY_PY_P                ZI8_ONEKEY_KEY7
#define ZI8_ONEKEY_PY_Q                ZI8_ONEKEY_KEY7
#define ZI8_ONEKEY_PY_R                ZI8_ONEKEY_KEY7
#define ZI8_ONEKEY_PY_S                ZI8_ONEKEY_KEY7
#define ZI8_ONEKEY_PY_T                ZI8_ONEKEY_KEY8
#define ZI8_ONEKEY_PY_U                ZI8_ONEKEY_KEY8
#define ZI8_ONEKEY_PY_V                ZI8_ONEKEY_KEY8
#define ZI8_ONEKEY_PY_W                ZI8_ONEKEY_KEY9
#define ZI8_ONEKEY_PY_X                ZI8_ONEKEY_KEY9
#define ZI8_ONEKEY_PY_Y                ZI8_ONEKEY_KEY9
#define ZI8_ONEKEY_PY_Z                ZI8_ONEKEY_KEY9

/* ONE KEY PRESS: BOPOMOFO (ZHUYIN) SYMBOLS MAPPING */
#define ZI8_ONEKEY_ZY_EXACT            ZI8_ONEKEY_KEY1
#define ZI8_ONEKEY_ZY_B                ZI8_ONEKEY_KEY1
#define ZI8_ONEKEY_ZY_P                ZI8_ONEKEY_KEY1
#define ZI8_ONEKEY_ZY_M                ZI8_ONEKEY_KEY1
#define ZI8_ONEKEY_ZY_F                ZI8_ONEKEY_KEY1
#define ZI8_ONEKEY_ZY_D                ZI8_ONEKEY_KEY2
#define ZI8_ONEKEY_ZY_T                ZI8_ONEKEY_KEY2
#define ZI8_ONEKEY_ZY_N                ZI8_ONEKEY_KEY2
#define ZI8_ONEKEY_ZY_L                ZI8_ONEKEY_KEY2
#define ZI8_ONEKEY_ZY_G                ZI8_ONEKEY_KEY3
#define ZI8_ONEKEY_ZY_K                ZI8_ONEKEY_KEY3
#define ZI8_ONEKEY_ZY_H                ZI8_ONEKEY_KEY3
#define ZI8_ONEKEY_ZY_J                ZI8_ONEKEY_KEY4
#define ZI8_ONEKEY_ZY_Q                ZI8_ONEKEY_KEY4
#define ZI8_ONEKEY_ZY_X                ZI8_ONEKEY_KEY4
#define ZI8_ONEKEY_ZY_ZH               ZI8_ONEKEY_KEY5
#define ZI8_ONEKEY_ZY_CH               ZI8_ONEKEY_KEY5
#define ZI8_ONEKEY_ZY_SH               ZI8_ONEKEY_KEY5
#define ZI8_ONEKEY_ZY_R                ZI8_ONEKEY_KEY5
#define ZI8_ONEKEY_ZY_Z                ZI8_ONEKEY_KEY6
#define ZI8_ONEKEY_ZY_C                ZI8_ONEKEY_KEY6
#define ZI8_ONEKEY_ZY_S                ZI8_ONEKEY_KEY6
#define ZI8_ONEKEY_ZY_A                ZI8_ONEKEY_KEY7
#define ZI8_ONEKEY_ZY_O                ZI8_ONEKEY_KEY7
#define ZI8_ONEKEY_ZY_E                ZI8_ONEKEY_KEY7
#define ZI8_ONEKEY_ZY_EH               ZI8_ONEKEY_KEY7
#define ZI8_ONEKEY_ZY_AI               ZI8_ONEKEY_KEY8
#define ZI8_ONEKEY_ZY_EI               ZI8_ONEKEY_KEY8
#define ZI8_ONEKEY_ZY_AU               ZI8_ONEKEY_KEY8
#define ZI8_ONEKEY_ZY_OU               ZI8_ONEKEY_KEY8
#define ZI8_ONEKEY_ZY_AN               ZI8_ONEKEY_KEY9
#define ZI8_ONEKEY_ZY_EN               ZI8_ONEKEY_KEY9
#define ZI8_ONEKEY_ZY_ANG              ZI8_ONEKEY_KEY9
#define ZI8_ONEKEY_ZY_ENG              ZI8_ONEKEY_KEY9
#define ZI8_ONEKEY_ZY_ER               ZI8_ONEKEY_KEY9
#define ZI8_ONEKEY_ZY_I                ZI8_ONEKEY_KEY0
#define ZI8_ONEKEY_ZY_U                ZI8_ONEKEY_KEY0
#define ZI8_ONEKEY_ZY_IU               ZI8_ONEKEY_KEY0

/* eZiTap KEY MAPPINGS */
#define ZI8_ONEKEY_TIMEOUT             (ZI8_BASE_LATIN_KEYS+14) 
#define ZI8_ONEKEY_SPACE               (ZI8_BASE_LATIN_KEYS+15) 
#define ZI8_ONEKEY_DONE                (ZI8_BASE_LATIN_KEYS+16) 
#define ZI8_ONEKEY_BS                  (ZI8_BASE_LATIN_KEYS+17) 
#define ZI8_ONEKEY_PREVIOUS            (ZI8_BASE_LATIN_KEYS+18) 
#define ZI8_ONEKEY_NEXT                (ZI8_BASE_LATIN_KEYS+19) 
#define ZI8_ONEKEY_PGUP                (ZI8_BASE_LATIN_KEYS+20) 
#define ZI8_ONEKEY_PGDN                (ZI8_BASE_LATIN_KEYS+21) 


#define ZI8_ERROR_PUD                  42
#define ZI8_ERROR_PUD_NO_ERROR         (ZI8_ERROR_PUD+0)
#define ZI8_ERROR_MAX_PUDS_EXCEEDED    (ZI8_ERROR_PUD+1)
#define ZI8_ERROR_BAD_PUD_FORMAT       (ZI8_ERROR_PUD+2)
#define ZI8_ERROR_BAD_PUD_HANDLE       (ZI8_ERROR_PUD+3)
#define ZI8_ERROR_PUD_UNCHANGED        (ZI8_ERROR_PUD+4)
#define ZI8_ERROR_PUD_NOSPACE          (ZI8_ERROR_PUD+5)
#define ZI8_ERROR_DUPLICATE            (ZI8_ERROR_PUD+6)
#define ZI8_ERROR_PUD_CORRUPTED        (ZI8_ERROR_PUD+7)
#define ZI8_ERROR_PUD_NOEXIST          (ZI8_ERROR_PUD+8)
#define ZI8_ERROR_PUD_INVALID_PLACE    (ZI8_ERROR_PUD+9)
#define ZI8_ERROR_PUD_SIZE_TOO_SMALL   (ZI8_ERROR_PUD+10)

#define ZI8RBC_OK                      0
#define ZI8RBC_INVALID_CMD             1
#define ZI8RBC_INVALID_ELEMENT         2
#define ZI8RBC_OVERFLOW                3

#define ZI8RBM_STARTCONVERSION         0
#define ZI8RBM_DONE                    1
#define ZI8RBM_REVERT                  2
#define ZI8RBM_NEXTPHRASE              3
#define ZI8RBM_PREVPHRASE              4
#define ZI8RBM_SLIDERIGHT              5
#define ZI8RBM_SLIDELEFT               6
#define ZI8RBM_GETCAND4PHRASE          7
#define ZI8RBM_NEXTCAND4PHRASE         8
#define ZI8RBM_PREVCAND4PHRASE         9
#define ZI8RBM_SETALGORITHM            10

#define ZI8RBA_DESCEND                 0
#define ZI8RBA_ASCEND                  1
#define ZI8RBA_CENTEROUT               2

#define ZI8MTC_WORD_FORMED             0
#define ZI8MTC_WORD_PREDICTED          1
#define ZI8MTC_OVERFLOW                2
#define ZI8MTC_ERROR_INPUT             3
#define ZI8MTC_NO_CHANGE               4
#define ZI8MTC_NEXTWORD_PREDICTION     5

#define ZI8_CASE_DEFAULT               0    /* preserve original case */
#define ZI8_CASE_UPPER                 1
#define ZI8_CASE_LOWER                 2
#define ZI8_CASE_TITLE                 3

#define ZI8_SO_DEFAULT                 0
#define ZI8_SO_EXACT_ROM_DATA          1
#define ZI8_SO_EXACT_PD_DATA           2
#define ZI8_SO_EXACT_UWD_DATA          3
#define ZI8_SO_EXACT_OEM_DATA          4
#define ZI8_SO_OTHERS_ROM_DATA         5
#define ZI8_SO_OTHERS_PD_DATA          6
#define ZI8_SO_OTHERS_UWD_DATA         7
#define ZI8_SO_OTHERS_OEM_DATA         8
#define ZI8_SO_MAX_SIZE                (ZI8_SO_OTHERS_OEM_DATA+1)

#define ZI8_CODE_CANGJIE_WILDCARD      (0x2A) /* '*' */
#define ZI8_CODE_CANGJIE_A             (0x41) /* 'A' */
#define ZI8_CODE_CANGJIE_B             (0x42) /* 'B' */
#define ZI8_CODE_CANGJIE_C             (0x43) /* 'C' */
#define ZI8_CODE_CANGJIE_D             (0x44) /* 'D' */
#define ZI8_CODE_CANGJIE_E             (0x45) /* 'E' */
#define ZI8_CODE_CANGJIE_F             (0x46) /* 'F' */
#define ZI8_CODE_CANGJIE_G             (0x47) /* 'G' */
#define ZI8_CODE_CANGJIE_H             (0x48) /* 'H' */
#define ZI8_CODE_CANGJIE_I             (0x49) /* 'I' */
#define ZI8_CODE_CANGJIE_J             (0x4A) /* 'J' */
#define ZI8_CODE_CANGJIE_K             (0x4B) /* 'K' */
#define ZI8_CODE_CANGJIE_L             (0x4C) /* 'L' */
#define ZI8_CODE_CANGJIE_M             (0x4D) /* 'M' */
#define ZI8_CODE_CANGJIE_N             (0x4E) /* 'N' */
#define ZI8_CODE_CANGJIE_O             (0x4F) /* 'O' */
#define ZI8_CODE_CANGJIE_P             (0x50) /* 'P' */
#define ZI8_CODE_CANGJIE_Q             (0x51) /* 'Q' */
#define ZI8_CODE_CANGJIE_R             (0x52) /* 'R' */
#define ZI8_CODE_CANGJIE_S             (0x53) /* 'S' */
#define ZI8_CODE_CANGJIE_T             (0x54) /* 'T' */
#define ZI8_CODE_CANGJIE_U             (0x55) /* 'U' */
#define ZI8_CODE_CANGJIE_V             (0x56) /* 'V' */
#define ZI8_CODE_CANGJIE_W             (0x57) /* 'W' */
#define ZI8_CODE_CANGJIE_X             (0x58) /* 'W' */
#define ZI8_CODE_CANGJIE_Y             (0x59) /* 'Y' */

#define ZI8_ONEKEY_CJ_A                ZI8_ONEKEY_KEY2
#define ZI8_ONEKEY_CJ_B                ZI8_ONEKEY_KEY2
#define ZI8_ONEKEY_CJ_C                ZI8_ONEKEY_KEY2
#define ZI8_ONEKEY_CJ_D                ZI8_ONEKEY_KEY3
#define ZI8_ONEKEY_CJ_E                ZI8_ONEKEY_KEY3
#define ZI8_ONEKEY_CJ_F                ZI8_ONEKEY_KEY3
#define ZI8_ONEKEY_CJ_G                ZI8_ONEKEY_KEY4
#define ZI8_ONEKEY_CJ_H                ZI8_ONEKEY_KEY4
#define ZI8_ONEKEY_CJ_I                ZI8_ONEKEY_KEY4
#define ZI8_ONEKEY_CJ_J                ZI8_ONEKEY_KEY5
#define ZI8_ONEKEY_CJ_K                ZI8_ONEKEY_KEY5
#define ZI8_ONEKEY_CJ_L                ZI8_ONEKEY_KEY5
#define ZI8_ONEKEY_CJ_M                ZI8_ONEKEY_KEY6
#define ZI8_ONEKEY_CJ_N                ZI8_ONEKEY_KEY6
#define ZI8_ONEKEY_CJ_O                ZI8_ONEKEY_KEY6
#define ZI8_ONEKEY_CJ_P                ZI8_ONEKEY_KEY7
#define ZI8_ONEKEY_CJ_Q                ZI8_ONEKEY_KEY7
#define ZI8_ONEKEY_CJ_R                ZI8_ONEKEY_KEY7
#define ZI8_ONEKEY_CJ_S                ZI8_ONEKEY_KEY7
#define ZI8_ONEKEY_CJ_T                ZI8_ONEKEY_KEY8
#define ZI8_ONEKEY_CJ_U                ZI8_ONEKEY_KEY8
#define ZI8_ONEKEY_CJ_V                ZI8_ONEKEY_KEY8
#define ZI8_ONEKEY_CJ_W                ZI8_ONEKEY_KEY9
#define ZI8_ONEKEY_CJ_X                ZI8_ONEKEY_KEY9
#define ZI8_ONEKEY_CJ_Y                ZI8_ONEKEY_KEY9

/* ******************** */
/* structure of the API */
/* ******************** */

    /* For Japanese:
       correlates element groups in the element buffer to the character
       groups (word) in the candidate buffer
    */
    typedef struct _ZI8_CANDIDATE_INFO
    {
        ZI8UCHAR ElementItem;
        ZI8UCHAR CandidateItem;
    } ZI8_CANDIDATE_INFO;
    typedef struct _ZI8_CANDIDATE_INFO ZI8RAMPOINTER PZI8_CANDIDATE_INFO;

    typedef struct _ZI8GETPARAM
    {  
        ZI8UCHAR  Language;
        ZI8UCHAR  GetMode;
        ZI8UCHAR  SubLanguage;
        ZI8UCHAR  Context;
        ZI8UCHAR  GetOptions;
        PZI8WCHAR pElements;
        ZI8UCHAR  ElementCount;
        PZI8WCHAR pCurrentWord;
        ZI8UCHAR  WordCharacterCount;
        PZI8WCHAR pCandidates;
        ZI8UCHAR  MaxCandidates;
        ZI8WCHAR  FirstCandidate;
        ZI8UCHAR  wordCandidates;
        ZI8UCHAR  count;
        ZI8UCHAR  letters;
        PZI8UCHAR pScratch;
    } ZI8GETPARAM;
    typedef struct _ZI8GETPARAM ZI8RAMPOINTER PZI8GETPARAM;

    typedef struct _ZI8LISTPARAM
    {
        PZI8UCHAR pPhoneBook;
        ZI8UCHAR  OffsetAlphaField;
        ZI8UCHAR  AlphaFieldSize;
        ZI8UCHAR  EntrySize;
        ZI8UCHAR  Entries;
        PZI8UCHAR pScratch;
    } ZI8LISTPARAM;
    typedef struct _ZI8LISTPARAM ZI8RAMPOINTER PZI8LISTPARAM;

    typedef PZI8UCHAR (*PFZI8PHONEBOOK)(ZI8USHORT ElementIndex);

    typedef struct _ZI8LISTFUNCPARAM
    {
        PFZI8PHONEBOOK pPhoneBook;
        ZI8UCHAR       OffsetAlphaField;
        ZI8UCHAR       AlphaFieldSize;
        ZI8UCHAR       EntrySize;
        ZI8UCHAR       Entries;
        PZI8UCHAR      pScratch;
    } ZI8LISTFUNCPARAM;
    typedef struct _ZI8LISTFUNCPARAM ZI8RAMPOINTER PZI8LISTFUNCPARAM;

    /* This structure is used for the language table reference by
       Zi8InitializeDynamic()*/
    typedef struct _ZI8_LANGUAGE_ENTRY
    {
        ZI8UCHAR           Language;
        PZI8VOID           pTable;
    } ZI8_LANGUAGE_ENTRY;
    typedef struct _ZI8_LANGUAGE_ENTRY ZI8RAMPOINTER PZI8_LANGUAGE_ENTRY;

⌨️ 快捷键说明

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