亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? uglpckbd.c

?? 嵌入式開發工具
?? C
?? 第 1 頁 / 共 2 頁
字號:
        if (readCnt == 1)            {            /* data was read, so process */            scanCode = atScanCode;            if ((scanCode & UGL_PCKBD_EXTENDED_KEY) == UGL_PCKBD_EXTENDED_KEY)                pKbdData->extendedKey = (scanCode & ~UGL_PCKBD_EXTENDED_KEY) + 1;            else                {                newLedValue = pKbdData->ledValue;                modifiers = pService->inputModifiers;                /* Key Up? */                if (scanCode & UGL_PCKBD_MAKE_FLAG)                    {                    keyDown = UGL_FALSE;                    modifiers &= ~UGL_KEYBOARD_KEYDOWN;                    scanCode &= ~UGL_PCKBD_MAKE_FLAG;                    }                else                    {                    keyDown = UGL_TRUE;                    modifiers |= UGL_KEYBOARD_KEYDOWN;                    }                /* processing extended key sequence ? */                if (pKbdData->extendedKey > 0)                    {                    scanCode |= UGL_PCKBD_EXT_FLAG;                    if (--pKbdData->extendedKey)                        return (UGL_STATUS_DROP);                    }                /* Update modifier states. */                switch (scanCode)                    {                    case UGL_PCKBD_LEFT_ALT:                        if (keyDown)                             modifiers |= UGL_KEYBOARD_LEFT_ALT;                        else                            modifiers &= ~UGL_KEYBOARD_LEFT_ALT;                        scanCode |= UGL_PCKBD_MOD_KEY;                        break;                    case UGL_PCKBD_RIGHT_ALT:                        if (keyDown)                             modifiers |= UGL_KEYBOARD_RIGHT_ALT;                        else                            modifiers &= ~UGL_KEYBOARD_RIGHT_ALT;                        scanCode |= UGL_PCKBD_MOD_KEY;                        break;                    case UGL_PCKBD_LEFT_CTRL:                        if (keyDown)                             modifiers |= UGL_KEYBOARD_LEFT_CTRL;                        else                            modifiers &= ~UGL_KEYBOARD_LEFT_CTRL;                        scanCode |= UGL_PCKBD_MOD_KEY;                        break;                    case UGL_PCKBD_RIGHT_CTRL:                        if (keyDown)                             modifiers |= UGL_KEYBOARD_RIGHT_CTRL;                        else                            modifiers &= ~UGL_KEYBOARD_RIGHT_CTRL;                        scanCode |= UGL_PCKBD_MOD_KEY;                        break;                    case UGL_PCKBD_LEFT_SHIFT:                        if (keyDown)                             modifiers |= UGL_KEYBOARD_LEFT_SHIFT;                        else                            modifiers &= ~UGL_KEYBOARD_LEFT_SHIFT;                        scanCode |= UGL_PCKBD_MOD_KEY;                        break;                    case UGL_PCKBD_RIGHT_SHIFT:                        if (keyDown)                             modifiers |= UGL_KEYBOARD_RIGHT_SHIFT;                        else                            modifiers &= ~UGL_KEYBOARD_RIGHT_SHIFT;                        scanCode |= UGL_PCKBD_MOD_KEY;                        break;                    case UGL_PCKBD_CAPS_LOCK:                        if (keyDown)                            {                            if (modifiers & UGL_KEYBOARD_CAPS_LOCK)                                 {                                modifiers &= ~UGL_KEYBOARD_CAPS_LOCK;                                newLedValue &= ~UGL_KEYBOARD_LED_CAPS_LOCK;                                }                            else                                {                                modifiers |= UGL_KEYBOARD_CAPS_LOCK;                                newLedValue |= UGL_KEYBOARD_LED_CAPS_LOCK;                                }                            scanCode |= UGL_PCKBD_MOD_KEY;                            }                        break;                    case UGL_PCKBD_NUM_LOCK:                        if (keyDown)                            {                            if (modifiers & UGL_KEYBOARD_NUM_LOCK)                                 {                                modifiers &= ~UGL_KEYBOARD_NUM_LOCK;                                newLedValue &= ~UGL_KEYBOARD_LED_NUM_LOCK;                                }                            else                                {                                modifiers |= UGL_KEYBOARD_NUM_LOCK;                                newLedValue |= UGL_KEYBOARD_LED_NUM_LOCK;                                }                            scanCode |= UGL_PCKBD_MOD_KEY;                            }                        break;                    case UGL_PCKBD_SCROLL_LOCK:                        if (keyDown)                            {                            if (modifiers & UGL_KEYBOARD_SCROLL_LOCK)                                 {                                modifiers &= ~UGL_KEYBOARD_SCROLL_LOCK;                                newLedValue &= ~UGL_KEYBOARD_LED_SCROLL_LOCK;                                }                            else                                {                                modifiers |= UGL_KEYBOARD_SCROLL_LOCK;                                newLedValue |= UGL_KEYBOARD_LED_SCROLL_LOCK;                                }                            scanCode |= UGL_PCKBD_MOD_KEY;                            }                        break;                    }                /* Update the keyboard leds */                if ((pKbdData->ledValue != newLedValue) &&                                     (pKbdData->ledControl))                    ioctl (pDevice->fd, CONIOLEDS, newLedValue);                pKbdData->ledValue = newLedValue;                /* build input event */                pInputEvent->header.type = UGL_EVENT_TYPE_KEYBOARD;                pInputEvent->header.category = UGL_EVENT_CATEGORY_INPUT;                pInputEvent->modifiers = modifiers;                pInputEvent->type.keyboard.scanCode = scanCode;                /* convert scan code to unicode */                pInputEvent->type.keyboard.key = MapKeyValue (scanCode, modifiers);                if (pInputEvent->type.keyboard.key == 0)                    status = UGL_STATUS_DROP;                else                    status = UGL_STATUS_OK;                return (status);                }            }        }    return (status);    }/******************************************************************************** MapKeyValue - map a scan code to Unicode value** This routien maps a scan code to a unicode value.  The <keyValue> which* is a PC AT scan code is mapped to the corresonding unicode value, adjusted* by the current state of the key modifiers (shift, num lock, etc.) which* is present in <modifiers>.** RETURNS:  mapped unicode value when mapping available, otherwise zero** ERRNO: N/A** SEE ALSO: */UGL_LOCAL UGL_UINT16 MapKeyValue    (    UGL_UINT16   keyValue,       /* scan code */    UGL_UINT32  modifiers       /* modifier state */     )    {    int unshiftedKeyValue;    int shiftedKeyValue;    UGL_BOOL numLock = modifiers & UGL_KEYBOARD_NUM_LOCK;    UGL_BOOL capsLock = modifiers & UGL_KEYBOARD_CAPS_LOCK;    UGL_BOOL shift = modifiers & UGL_KEYBOARD_SHIFT;    UGL_BOOL ctrl = modifiers & UGL_KEYBOARD_CTRL;    UGL_BOOL modChg = keyValue & UGL_PCKBD_MOD_KEY;/* Select the keyboard mapping */#ifdef  INCLUDE_KMAP_ENGLISH_US    PC_KBD_KEYMAP * pKbdKeyMapTable = pcKbdUsKeyMapTable;    size_t sizeOfKmap = sizeOfUsKmap;#endif /* INCLUDE_KMAP_ENGLISH_US */#ifdef  INCLUDE_KMAP_ENGLISH_UK    PC_KBD_KEYMAP * pKbdKeyMapTable = pcKbdUkKeyMapTable;    size_t sizeOfKmap = sizeOfUkKmap;#endif /* INCLUDE_KMAP_ENGLISH_UK */#ifdef  INCLUDE_KMAP_GERMAN    PC_KBD_KEYMAP * pKbdKeyMapTable = pcKbdDeKeyMapTable;    size_t sizeOfKmap = sizeOfDeKmap;#endif /* INCLUDE_KMAP_GERMAN */#ifdef  INCLUDE_KMAP_ITALIAN    PC_KBD_KEYMAP * pKbdKeyMapTable = pcKbdItKeyMapTable;    size_t sizeOfKmap = sizeOfItKmap;#endif /* INCLUDE_KMAP_ITALIAN */#ifdef  INCLUDE_KMAP_FRENCH    PC_KBD_KEYMAP * pKbdKeyMapTable = pcKbdFrKeyMapTable;    size_t sizeOfKmap = sizeOfFrKmap;#endif /* INCLUDE_KMAP_FRENCH */#ifdef  INCLUDE_KMAP_SWEDISH    PC_KBD_KEYMAP * pKbdKeyMapTable = pcKbdSwKeyMapTable;    size_t sizeOfKmap = sizeOfSwKmap;#endif /* INCLUDE_KMAP_SWEDISH */#ifdef  INCLUDE_KMAP_NONE    PC_KBD_KEYMAP * pKbdKeyMapTable = pcKbdNoKeyMapTable;    size_t sizeOfKmap = sizeOfNoKmap;#endif /* INCLUDE_KMAP_NONE */    keyValue &= ~UGL_PCKBD_MOD_KEY;    if (keyValue & UGL_PCKBD_EXT_FLAG)        {        /* turn off extended flag */        keyValue &= ~UGL_PCKBD_EXT_FLAG;        /* Don't process the extra 0x2a/0xaa on some extended keys */        if (keyValue == 0x2a)            return 0;        if (keyValue < sizeOfKmap /               sizeof(struct pckbdKeyMapStruct))            return ( pKbdKeyMapTable[keyValue].extendedKeyValue);        else            return 0;        }    else if (keyValue < sizeOfKmap /             sizeof(struct pckbdKeyMapStruct))        {        unshiftedKeyValue = pKbdKeyMapTable[keyValue].unshiftedKeyValue;        shiftedKeyValue = pKbdKeyMapTable[keyValue].shiftedKeyValue;        if (modChg)             return (unshiftedKeyValue);        else if (ctrl)            return (unshiftedKeyValue);        else if (numLock && shiftedKeyValue >= '0' && shiftedKeyValue <= '9')            return (shift ? unshiftedKeyValue : shiftedKeyValue);        else if (capsLock)            {            keyValue = (shift ? shiftedKeyValue : unshiftedKeyValue);            if (shift)                return (tolower(keyValue));            else                return (toupper(keyValue));            }        else            return (shift ? shiftedKeyValue : unshiftedKeyValue);        }    else        return 0;    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久婷婷综合激情| 最新国产精品久久精品| 欧美va天堂va视频va在线| 欧美视频一区二区三区四区 | 国产成人在线影院| 国产日韩精品视频一区| 国产成人8x视频一区二区| 国产精品久久久久久户外露出| 国产综合色在线| 国产偷国产偷亚洲高清人白洁| 国产精品99久久久久久有的能看 | 国产精品乱码久久久久久| 奇米777欧美一区二区| 日本一区二区免费在线| 欧美猛男男办公室激情| 国产成人av电影免费在线观看| 一区二区三区日韩欧美| 久久综合久久综合久久| 一本大道久久精品懂色aⅴ| 国产乱一区二区| 欧美日韩不卡在线| 亚洲精品在线观看视频| 韩国三级中文字幕hd久久精品| 欧美日韩国产免费| caoporn国产一区二区| 视频一区二区三区在线| 国产精品女主播av| 日韩免费看的电影| 日韩欧美在线观看一区二区三区| 国产精品亲子乱子伦xxxx裸| 久久成人免费网站| 国精产品一区一区三区mba视频 | 久久久久亚洲综合| 久久国产尿小便嘘嘘尿| 日韩欧美高清一区| 狠狠色狠狠色合久久伊人| 色综合久久综合中文综合网| 日本韩国精品一区二区在线观看| 国产精品一二三四区| 精品在线观看视频| 99久久伊人网影院| 国产精品综合二区| 裸体一区二区三区| 成人教育av在线| 福利电影一区二区三区| 粉嫩欧美一区二区三区高清影视| 久久免费电影网| 丁香天五香天堂综合| 中文字幕一区二区不卡| 91免费小视频| 视频一区二区不卡| 久久亚洲一级片| 99久久婷婷国产综合精品电影| 亚洲日本电影在线| 91精品国产综合久久香蕉麻豆| 蜜臀av性久久久久蜜臀aⅴ| 久久久久久久精| 91农村精品一区二区在线| 三级亚洲高清视频| 久久精品无码一区二区三区| 91丨porny丨蝌蚪视频| 亚洲小说欧美激情另类| 精品久久五月天| 9色porny自拍视频一区二区| 亚洲成va人在线观看| 久久久久亚洲综合| 欧美色涩在线第一页| 精品亚洲国内自在自线福利| 国产精品久久久久7777按摩| 日韩一区二区在线观看视频| 成人午夜私人影院| 午夜国产精品影院在线观看| 国产欧美日韩亚州综合 | 一区二区三区四区在线| 欧美日韩卡一卡二| 国产欧美日本一区二区三区| 五月婷婷久久综合| 欧美性做爰猛烈叫床潮| 五月激情综合网| 成人激情电影免费在线观看| 精品国产乱码久久久久久蜜臀| 亚洲欧美日韩中文字幕一区二区三区 | 国产成人精品在线看| 亚洲免费三区一区二区| 欧美成人乱码一区二区三区| 色呦呦网站一区| 国产麻豆成人精品| 五月天中文字幕一区二区| 国产精品久久精品日日| 2017欧美狠狠色| 欧美精品久久久久久久多人混战| 99精品国产91久久久久久 | 欧美α欧美αv大片| 91黄色免费网站| 91视频免费观看| 国模少妇一区二区三区| 日韩黄色片在线观看| 亚洲在线视频一区| 欧美国产日本韩| 久久综合色之久久综合| 日韩欧美一卡二卡| 欧美精品乱码久久久久久按摩| 在线一区二区三区| 色综合久久九月婷婷色综合| 成人精品免费看| 国产大片一区二区| 国产精品中文欧美| 国产乱色国产精品免费视频| 精品一区二区三区久久| 美女视频黄 久久| 全部av―极品视觉盛宴亚洲| 一区二区三区在线观看欧美| 亚洲狼人国产精品| 亚洲欧美日韩国产另类专区 | 久久精品人人做人人综合| 精品裸体舞一区二区三区| 欧美一区二区三区成人| 欧美一级一区二区| 欧美岛国在线观看| 欧美精品一区二区三区蜜臀| www一区二区| 国产欧美日韩精品a在线观看| 国产日韩欧美综合一区| 中文字幕国产精品一区二区| 亚洲欧美在线视频观看| 一区av在线播放| 丝瓜av网站精品一区二区| 美美哒免费高清在线观看视频一区二区 | 国产精品自拍一区| 国产精品一品二品| 亚洲一线二线三线视频| 国产精品一区2区| 成人黄色网址在线观看| 国产白丝网站精品污在线入口| 六月丁香综合在线视频| 日本大胆欧美人术艺术动态 | 99久免费精品视频在线观看| 国精产品一区一区三区mba视频 | 亚洲成人激情自拍| 亚洲一区二区三区视频在线| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲在线中文字幕| 美女性感视频久久| 国产超碰在线一区| 欧洲精品中文字幕| 精品美女一区二区| 亚洲欧美一区二区三区国产精品 | 亚洲天堂a在线| 日本欧美一区二区在线观看| 寂寞少妇一区二区三区| 高清在线不卡av| 欧美视频完全免费看| 精品国产一区二区精华 | 中文字幕精品一区| 亚洲成a人v欧美综合天堂| 国产综合色在线视频区| 91福利在线观看| 久久综合丝袜日本网| 亚洲一区自拍偷拍| 成人国产电影网| 日韩欧美电影一二三| 日韩毛片视频在线看| 美洲天堂一区二卡三卡四卡视频| av在线播放不卡| 精品三级av在线| 亚洲伦在线观看| 国产精品亚洲综合一区在线观看| 欧美精品自拍偷拍| 1024国产精品| 国产成人精品在线看| 91麻豆精品国产自产在线观看一区| 中文字幕高清不卡| 久久99精品国产麻豆婷婷| 在线视频一区二区免费| 中文在线一区二区| 精品一二三四区| 91.麻豆视频| 一区二区三区视频在线观看| 国产传媒欧美日韩成人| 日韩一区二区不卡| 五月天一区二区三区| 欧美性色黄大片手机版| 1024国产精品| 91原创在线视频| 国产午夜精品一区二区三区四区| 蜜桃久久av一区| 欧美不卡在线视频| 爽好久久久欧美精品| 欧美电影在哪看比较好| 一区二区三区免费看视频| av成人老司机| 国产精品天美传媒| 成人综合婷婷国产精品久久蜜臀| 久久你懂得1024| 黄网站免费久久| 国产一区二区影院| 精品一区二区三区在线观看国产| 欧美一区二区在线播放| 久久99精品久久久久久动态图| 国产网站一区二区|