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

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

?? keymaps.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
字號:
/* * QEMU keysym to keycode conversion using rdesktop keymaps * * Copyright (c) 2004 Johannes Schindelin * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */static int get_keysym(const char *name){    name2keysym_t *p;    for(p = name2keysym; p->name != NULL; p++) {        if (!strcmp(p->name, name))            return p->keysym;    }    return 0;}struct key_range {    int start;    int end;    struct key_range *next;};#define MAX_NORMAL_KEYCODE 512#define MAX_EXTRA_COUNT 256typedef struct {    uint16_t keysym2keycode[MAX_NORMAL_KEYCODE];    struct {	int keysym;	uint16_t keycode;    } keysym2keycode_extra[MAX_EXTRA_COUNT];    int extra_count;    struct key_range *keypad_range;    struct key_range *numlock_range;} kbd_layout_t;static void add_to_key_range(struct key_range **krp, int code) {    struct key_range *kr;    for (kr = *krp; kr; kr = kr->next) {	if (code >= kr->start && code <= kr->end)	    break;	if (code == kr->start - 1) {	    kr->start--;	    break;	}	if (code == kr->end + 1) {	    kr->end++;	    break;	}    }    if (kr == NULL) {	kr = qemu_mallocz(sizeof(*kr));	if (kr) {	    kr->start = kr->end = code;	    kr->next = *krp;	    *krp = kr;	}    }}static kbd_layout_t *parse_keyboard_layout(const char *language,					   kbd_layout_t * k){    FILE *f;    char file_name[1024];    char line[1024];    int len;    snprintf(file_name, sizeof(file_name),             "%s/keymaps/%s", bios_dir, language);    if (!k)	k = qemu_mallocz(sizeof(kbd_layout_t));    if (!k)        return 0;    if (!(f = fopen(file_name, "r"))) {	fprintf(stderr,		"Could not read keymap file: '%s'\n", file_name);	return 0;    }    for(;;) {	if (fgets(line, 1024, f) == NULL)            break;        len = strlen(line);        if (len > 0 && line[len - 1] == '\n')            line[len - 1] = '\0';        if (line[0] == '#')	    continue;	if (!strncmp(line, "map ", 4))	    continue;	if (!strncmp(line, "include ", 8)) {	    parse_keyboard_layout(line + 8, k);        } else {	    char *end_of_keysym = line;	    while (*end_of_keysym != 0 && *end_of_keysym != ' ')		end_of_keysym++;	    if (*end_of_keysym) {		int keysym;		*end_of_keysym = 0;		keysym = get_keysym(line);		if (keysym == 0) {                    //		    fprintf(stderr, "Warning: unknown keysym %s\n", line);		} else {		    const char *rest = end_of_keysym + 1;		    char *rest2;		    int keycode = strtol(rest, &rest2, 0);		    if (rest && strstr(rest, "numlock")) {			add_to_key_range(&k->keypad_range, keycode);			add_to_key_range(&k->numlock_range, keysym);			//fprintf(stderr, "keypad keysym %04x keycode %d\n", keysym, keycode);		    }		    /* if(keycode&0x80)		       keycode=(keycode<<8)^0x80e0; */		    if (keysym < MAX_NORMAL_KEYCODE) {			//fprintf(stderr,"Setting keysym %s (%d) to %d\n",line,keysym,keycode);			k->keysym2keycode[keysym] = keycode;		    } else {			if (k->extra_count >= MAX_EXTRA_COUNT) {			    fprintf(stderr,				    "Warning: Could not assign keysym %s (0x%x) because of memory constraints.\n",				    line, keysym);			} else {#if 0			    fprintf(stderr, "Setting %d: %d,%d\n",				    k->extra_count, keysym, keycode);#endif			    k->keysym2keycode_extra[k->extra_count].				keysym = keysym;			    k->keysym2keycode_extra[k->extra_count].				keycode = keycode;			    k->extra_count++;			}		    }		}	    }	}    }    fclose(f);    return k;}static void *init_keyboard_layout(const char *language){    return parse_keyboard_layout(language, 0);}static int keysym2scancode(void *kbd_layout, int keysym){    kbd_layout_t *k = kbd_layout;    if (keysym < MAX_NORMAL_KEYCODE) {	if (k->keysym2keycode[keysym] == 0)	    fprintf(stderr, "Warning: no scancode found for keysym %d\n",		    keysym);	return k->keysym2keycode[keysym];    } else {	int i;#ifdef XK_ISO_Left_Tab	if (keysym == XK_ISO_Left_Tab)	    keysym = XK_Tab;#endif	for (i = 0; i < k->extra_count; i++)	    if (k->keysym2keycode_extra[i].keysym == keysym)		return k->keysym2keycode_extra[i].keycode;    }    return 0;}static inline int keycode_is_keypad(void *kbd_layout, int keycode){    kbd_layout_t *k = kbd_layout;    struct key_range *kr;    for (kr = k->keypad_range; kr; kr = kr->next)        if (keycode >= kr->start && keycode <= kr->end)            return 1;    return 0;}static inline int keysym_is_numlock(void *kbd_layout, int keysym){    kbd_layout_t *k = kbd_layout;    struct key_range *kr;    for (kr = k->numlock_range; kr; kr = kr->next)        if (keysym >= kr->start && keysym <= kr->end)            return 1;    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区色| 无吗不卡中文字幕| 精品国产123| 国产欧美精品国产国产专区 | 日韩精品中文字幕在线一区| 亚洲成av人片www| 日韩一区二区免费视频| 久久99蜜桃精品| 国产女主播视频一区二区| eeuss影院一区二区三区| 亚洲激情欧美激情| 日韩视频免费直播| 国产精品性做久久久久久| 国产精品国产自产拍高清av| 欧美视频一二三区| 蜜臀av一区二区| 国产精品丝袜在线| 欧美日韩在线观看一区二区| 久久精品国产精品亚洲综合| 欧美激情一区二区三区全黄| 欧洲人成人精品| 国产一区视频网站| 一区二区理论电影在线观看| 日韩欧美国产综合一区| 99久久综合狠狠综合久久| 午夜伊人狠狠久久| 国产精品麻豆网站| 日韩免费福利电影在线观看| 99久久亚洲一区二区三区青草| 丝袜美腿亚洲一区| 国产欧美日韩视频一区二区| 欧美日本乱大交xxxxx| 国产成人三级在线观看| 首页国产欧美日韩丝袜| 国产精品视频线看| 日韩视频在线永久播放| 在线亚洲高清视频| 国产精品资源在线看| 香港成人在线视频| 国产精品嫩草影院av蜜臀| 91麻豆精品久久久久蜜臀 | 免费久久99精品国产| 中文字幕一区二区三区不卡| 在线播放国产精品二区一二区四区| 国产成人亚洲精品青草天美| 天天综合网天天综合色| 综合网在线视频| 久久久久青草大香线综合精品| 欧美理论电影在线| 91捆绑美女网站| 国产成人精品免费| 精品一区二区日韩| 日韩成人一区二区三区在线观看| 亚洲女人的天堂| 国产精品免费视频网站| 26uuu国产在线精品一区二区| 欧美日韩成人一区二区| 在线视频欧美精品| 色婷婷综合久久久中文字幕| 成人午夜精品在线| 国产91高潮流白浆在线麻豆| 久久99精品久久久久久国产越南 | 国产日产欧美一区二区视频| 精品精品欲导航| 日韩欧美资源站| 欧美一级艳片视频免费观看| 欧美日免费三级在线| 色噜噜狠狠一区二区三区果冻| 91丨porny丨国产入口| 成人毛片在线观看| 大桥未久av一区二区三区中文| 国产成人精品三级麻豆| 国产精品亚洲人在线观看| 国产精品18久久久久| 国产成人在线视频免费播放| 国产一区二区三区四区五区入口 | 一级日本不卡的影视| 亚洲另类春色国产| 亚洲午夜精品网| 五月婷婷欧美视频| 美日韩一级片在线观看| 激情av综合网| 国产精品一区在线观看你懂的| 国产一区二区影院| a美女胸又www黄视频久久| 91女厕偷拍女厕偷拍高清| 在线亚洲精品福利网址导航| 欧美网站一区二区| 欧美一级视频精品观看| 精品女同一区二区| 国产精品毛片高清在线完整版| 一色屋精品亚洲香蕉网站| 一区二区三区在线高清| 天堂久久久久va久久久久| 蜜臀久久久99精品久久久久久| 国产一区美女在线| 91美女片黄在线观看91美女| 欧美亚洲国产一区在线观看网站| 在线综合视频播放| 国产视频一区不卡| 亚洲美女精品一区| 日韩国产欧美在线视频| 国产米奇在线777精品观看| yourporn久久国产精品| 欧美在线免费观看亚洲| 日韩午夜电影av| 国产精品不卡在线| 婷婷夜色潮精品综合在线| 国产在线精品免费| 91蝌蚪国产九色| 精品欧美一区二区三区精品久久 | 99麻豆久久久国产精品免费| 欧美三区在线观看| 精品国产3级a| 亚洲国产精品麻豆| 国产福利不卡视频| 欧美日韩国产高清一区二区三区| 久久影院午夜论| 亚洲自拍欧美精品| 懂色av一区二区在线播放| 精品视频999| 国产精品三级在线观看| 日韩黄色免费电影| 91丨九色porny丨蝌蚪| 日韩欧美亚洲国产另类| 亚洲天堂2016| 国产一区二区0| 欧美一区二区在线看| 国产精品无遮挡| 久热成人在线视频| 欧美少妇xxx| 国产精品黄色在线观看| 国产麻豆一精品一av一免费| 欧美日韩国产123区| 亚洲日本电影在线| 国产精品一区一区三区| 91超碰这里只有精品国产| 亚洲男人的天堂在线aⅴ视频| 国产精品66部| 欧美成人精品3d动漫h| 亚洲成av人片一区二区三区| 不卡的电视剧免费网站有什么| 欧美精品一区二| 蜜桃视频在线观看一区| 欧美色成人综合| 一区二区在线观看免费| www.亚洲激情.com| 日本一区二区免费在线观看视频 | 欧洲一区二区三区在线| 亚洲欧洲日产国码二区| 国产成人久久精品77777最新版本| 欧美一区二区三区免费| 五月婷婷激情综合网| 色呦呦国产精品| 亚洲精品免费视频| 色呦呦一区二区三区| 亚洲欧美视频在线观看| www.亚洲在线| 亚洲视频 欧洲视频| 99精品欧美一区二区三区小说| 国产精品免费视频观看| 丁香天五香天堂综合| 国产女人18毛片水真多成人如厕| 国产一区二区看久久| 久久九九久精品国产免费直播| 精品在线免费观看| 久久久国产一区二区三区四区小说 | 欧美一区二区在线观看| 日韩av不卡在线观看| 日韩一区二区不卡| 韩国欧美一区二区| 久久精品视频免费| 成人小视频在线观看| 中文字幕日韩一区二区| 97久久精品人人做人人爽| 亚洲欧美一区二区久久| 欧美在线影院一区二区| 一区二区三区中文在线| 欧美精品在线观看播放| 久久超碰97人人做人人爱| 精品国产凹凸成av人网站| 国产主播一区二区| 中文字幕不卡一区| 在线视频观看一区| 免费高清在线一区| 国产欧美中文在线| 日本韩国一区二区| 麻豆精品新av中文字幕| 国产偷国产偷精品高清尤物| 99精品久久只有精品| 亚洲电影一级片| 26uuuu精品一区二区| 成人国产精品免费网站| 一区二区三区波多野结衣在线观看| 欧美三级电影精品| 国产精品99久久久久久久vr| 亚洲视频免费观看| 日韩视频免费观看高清完整版 | 婷婷综合另类小说色区| 久久综合色婷婷|