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

📄 kbd_lirc.c

📁 the embedded GUI for SamSung s3c2410 cpu based board.is microwindows0.90
💻 C
📖 第 1 页 / 共 2 页
字号:
	{0, "9", '9', '(', '9', '9'},	{0, "0", '0', ')', '*', '*'},	{0, "-", '-', '_', 0, 0},	{0, "=", '=', '+', 0, 0},	{0, "BACKSPACE", MWKEY_BACKSPACE, MWKEY_BACKSPACE, MWKEY_BACKSPACE,	 0},// Row 3	{0, "TAB", MWKEY_TAB, MWKEY_TAB, MWKEY_TAB, 0},	{0, "q", 'q', 'Q', 0, 0},	{0, "w", 'w', 'W', 0, 0},	{0, "e", 'e', 'E', 0, 0},	{0, "r", 'r', 'R', 0, 0},	{0, "t", 't', 'T', 0, 0},	{0, "y", 'y', 'Y', 0, 0},	{0, "u", 'u', 'U', '4', '4'},	{0, "i", 'i', 'I', '5', '5'},	{0, "o", 'o', 'O', '6', '6'},	{0, "p", 'p', 'P', '-', '-'},	{0, "[", '[', '{', 0, 0},	{0, "]", ']', '}', 0, 0},	{0, "\\", '\\', '\\', 0, 0},// Row 4	{0, "CAPSLOCK", MWKEY_CAPSLOCK, MWKEY_CAPSLOCK, MWKEY_CAPSLOCK,	 MWKEY_CAPSLOCK},	{0, "a", 'a', 'A', 0, 0},	{0, "s", 's', 'S', 0, 0},	{0, "d", 'd', 'D', 0, 0},	{0, "f", 'f', 'F', 0, 0},	{0, "g", 'g', 'G', 0, 0},	{0, "h", 'h', 'H', 0, 0},	{0, "j", 'j', 'J', '1', '1'},	{0, "k", 'k', 'K', '2', '2'},	{0, "l", 'l', 'L', '3', '3'},	{0, ";", ';', ':', '+', '+'},	{0, "'", '\'', '"', 0, 0},	{0, "ENTER", MWKEY_ENTER, MWKEY_ENTER, MWKEY_ENTER, 0},// Row 5	{0, "LSHIFT", MWKEY_LSHIFT, MWKEY_LSHIFT, MWKEY_LSHIFT, MWKEY_LSHIFT},	{0, "z", 'z', 'Z', 0, 0},	{0, "x", 'x', 'X', 0, 0},	{0, "c", 'c', 'C', 0, 0},	{0, "v", 'v', 'V', 0, 0},	{0, "b", 'b', 'B', 0, 0},	{0, "n", 'n', 'N', 0, 0},	{0, "m", 'm', 'M', '0', '0'},	{0, ",", ',', '<', 0, 0},	{0, ".", '.', '>', 0, 0},	{0, "RSHIFT", MWKEY_RSHIFT, MWKEY_RSHIFT, MWKEY_RSHIFT, MWKEY_RSHIFT},	{0, "UP", MWKEY_UP, MWKEY_UP, MWKEY_UP, MWKEY_PAGEUP},	{0, "/", '/', '?', 0, 0},// Row 6	{0, "LCTRL", MWKEY_LCTRL, MWKEY_LCTRL, MWKEY_LCTRL, MWKEY_LCTRL},	{0, "LMETA", MWKEY_LMETA, MWKEY_LMETA, MWKEY_LMETA, MWKEY_LMETA},	{0, "LALT", MWKEY_LALT, MWKEY_LALT, MWKEY_LALT, MWKEY_LALT},	{0, "SPACE", ' ', ' ', ' ', 0},	{0, "`", '`', '~', 0, 0},	{0, "RALT", MWKEY_RALT, MWKEY_RALT, MWKEY_RALT, MWKEY_RALT},	{0, "RMETA", MWKEY_RMETA, MWKEY_RMETA, MWKEY_RMETA, MWKEY_RMETA},	{0, "LEFT", MWKEY_LEFT, MWKEY_LEFT, MWKEY_LEFT, MWKEY_HOME},	{0, "DOWN", MWKEY_DOWN, MWKEY_DOWN, MWKEY_DOWN, MWKEY_PAGEDOWN},	{0, "RIGHT", MWKEY_RIGHT, MWKEY_RIGHT, MWKEY_RIGHT, MWKEY_END},// End of table marker	{0, NULL, 0, 0, 0, 0}};static int LIRC_fn = 0;static intremoteKeyboardHandler(mwlirc_keystroke * event, MWKEY * kbuf,		      MWSCANCODE * pscancode){	MWKEY ch;	MWSCANCODE scan;	keyboardKey_t *k;	MWBOOL isDown;	unsigned len = strlen(event->name);	if (len < 2) {		printf("LIRC_Read() - Invalid key '%s' - too short.  (Must be at least 2 characters!)\n", event->name);		return 0;	}	len--;	switch (event->name[len]) {	case '\\':		isDown = 1;		break;	case '^':		isDown = 0;		break;	default:		printf("LIRC_Read() - Invalid key '%s' - no up/down (^ or \\) indicator\n", event->name);		return 0;	}	event->name[len] = '\0';	if (0 == strcmp(event->name, "fn")) {		LIRC_fn = isDown;		return 0;	/* Silent key */	}	k = keyboardKeys;	while (0 != strcmp(k->name, event->name)) {		k++;		if (NULL == k->name) {			printf("LIRC_Read() - Unrecognized key '%s'\n",			       event->name);			return 0;	/* Unrecognized - treat as 'No data' */		}	}	if (isDown == k->isDown)		return 0;	/* No change */	k->isDown = isDown;	scan = k->normal;	ch = ((LIRC_fn) ? k->fn :	      ((LIRC_keymod & MWKMOD_NUM) ? k->num :	       ((LIRC_keymod & MWKMOD_SHIFT) ? k->shift : (k->normal))));	if (ch == 0)		return 0;	/* Ignore key */	if (LIRC_keymod & MWKMOD_CAPS) {		/* If it's a letter, flip the case. */		if ((ch >= 'a') && (ch <= 'z')) {			ch -= 'a' - 'A';		} else if ((ch >= 'A') && (ch <= 'Z')) {			ch += 'a' - 'A';		}	}	LIRC_UpdateKeyState(isDown, ch);	/*printf("LIRC_Read() - Got key '%s', char '%c', code 0x%x\n", k->name, ch, scan);*/	*kbuf = ch;	*pscancode = scan;	return (isDown ? 1 /* press */ : 2 /* release */ );}/* ************************************************************************ *//* * End of IR keyboard driver                                            * *//* ************************************************************************ *//* ************************************************************************ *//* * Start of IR remote driver                                            * *//* ************************************************************************ *//* * To use this driver, you must follow the following conventions * when allocating key names in LIRC. * * Key names can be: * - A single ASCII character * - One of the strings defined in remoteKeys. * * The name of this remote is "remote" */typedef struct remoteKey_t_{	int code;	const char *name;}remoteKey_t;static const remoteKey_t remoteKeys[] = {	{MWKEY_ACCEPT,              "ACCEPT"},	{MWKEY_BACKSPACE,           "BACKSPACE"},	{MWKEY_BALANCE_LEFT,        "BALANCE_LEFT"},	{MWKEY_BALANCE_RIGHT,       "BALANCE_RIGHT"},	{MWKEY_BASS_BOOST_DOWN,     "BASS_BOOST_DOWN"},	{MWKEY_BASS_BOOST_UP,       "BASS_BOOST_UP"},	{MWKEY_CANCEL,              "CANCEL"},	{MWKEY_CHANNEL_DOWN,        "CHANNEL_DOWN"},	{MWKEY_CHANNEL_UP,          "CHANNEL_UP"},	{MWKEY_CLEAR_FAVORITE_0,    "CLEAR_FAVORITE_0"},	{MWKEY_CLEAR_FAVORITE_1,    "CLEAR_FAVORITE_1"},	{MWKEY_CLEAR_FAVORITE_2,    "CLEAR_FAVORITE_2"},	{MWKEY_CLEAR_FAVORITE_3,    "CLEAR_FAVORITE_3"},	{MWKEY_COLORED_KEY_0,       "COLORED_KEY_0"},	{MWKEY_COLORED_KEY_1,       "COLORED_KEY_1"},	{MWKEY_COLORED_KEY_2,       "COLORED_KEY_2"},	{MWKEY_COLORED_KEY_3,       "COLORED_KEY_3"},	{MWKEY_COLORED_KEY_4,       "COLORED_KEY_4"},	{MWKEY_COLORED_KEY_5,       "COLORED_KEY_5"},	{MWKEY_DELETE,              "DELETE"},	{MWKEY_DOWN,                "DOWN"},	{MWKEY_DIMMER,              "DIMMER"},	{MWKEY_DISPLAY_SWAP,        "DISPLAY_SWAP"},	{MWKEY_EJECT_TOGGLE,        "EJECT_TOGGLE"},	{MWKEY_END,                 "END"},	{MWKEY_ENTER,               "ENTER"},	{MWKEY_ESCAPE,              "ESCAPE"},	{MWKEY_F1,                  "F1"},	{MWKEY_F2,                  "F2"},	{MWKEY_F3,                  "F3"},	{MWKEY_F4,                  "F4"},	{MWKEY_F5,                  "F5"},	{MWKEY_F6,                  "F6"},	{MWKEY_F7,                  "F7"},	{MWKEY_F8,                  "F8"},	{MWKEY_F9,                  "F9"},	{MWKEY_F10,                 "F10"},	{MWKEY_F11,                 "F11"},	{MWKEY_F12,                 "F12"},	{MWKEY_FADER_FRONT,         "FADER_FRONT"},	{MWKEY_FADER_REAR,          "FADER_REAR"},	{MWKEY_FAST_FWD,            "FAST_FWD"},	{MWKEY_GO_TO_END,           "GO_TO_END"},	{MWKEY_GO_TO_START,         "GO_TO_START"},	{MWKEY_GUIDE,               "GUIDE"},	{MWKEY_HOME,                "HOME"},	{MWKEY_INFO,                "INFO"},//	{MWKEY_INSERT,              "INSERT"},	{MWKEY_LEFT,                "LEFT"},	{MWKEY_MUTE,                "MUTE"},	{MWKEY_PAGEDOWN,            "PAGEDOWN"},	{MWKEY_PAGEUP,              "PAGEUP"},	{MWKEY_PAUSE,               "PAUSE"},	{MWKEY_PINP_TOGGLE,         "PINP_TOGGLE"},	{MWKEY_PLAY,                "PLAY"},	{MWKEY_PLAY_SPEED_DOWN,     "PLAY_SPEED_DOWN"},	{MWKEY_PLAY_SPEED_RESET,    "PLAY_SPEED_RESET"},	{MWKEY_PLAY_SPEED_UP,       "PLAY_SPEED_UP"},	{MWKEY_POWER,               "POWER"},	{MWKEY_PRINT,               "PRINT"},	{MWKEY_RANDOM_TOGGLE,       "RANDOM_TOGGLE"},	{MWKEY_RECALL_FAVORITE_0,   "RECALL_FAVORITE_0"},	{MWKEY_RECALL_FAVORITE_1,   "RECALL_FAVORITE_1"},	{MWKEY_RECALL_FAVORITE_2,   "RECALL_FAVORITE_2"},	{MWKEY_RECALL_FAVORITE_3,   "RECALL_FAVORITE_3"},	{MWKEY_RECORD,              "RECORD"},	{MWKEY_RECORD_SPEED_NEXT,   "RECORD_SPEED_NEXT"},	{MWKEY_REWIND,              "REWIND"},	{MWKEY_RIGHT,               "RIGHT"},	{MWKEY_SCAN_CHANNELS_TOGGLE,"SCAN_CHANNELS_TOGGLE"},	{MWKEY_SCREEN_MODE_NEXT,    "SCREEN_MODE_NEXT"},//	{ MWKEY_SCROLLOCK,          "SCROLLOCK"},	{' ',                       "SPACE"},	{MWKEY_SPLIT_SCREEN_TOGGLE, "SPLIT_SCREEN_TOGGLE"},	{MWKEY_STOP,                "STOP"},	{MWKEY_STORE_FAVORITE_0,    "STORE_FAVORITE_0"},	{MWKEY_STORE_FAVORITE_1,    "STORE_FAVORITE_1"},	{MWKEY_STORE_FAVORITE_2,    "STORE_FAVORITE_2"},	{MWKEY_STORE_FAVORITE_3,    "STORE_FAVORITE_3"},	{MWKEY_SUBTITLE,            "SUBTITLE"},	{MWKEY_SURROUND_MODE_NEXT,  "SURROUND_MODE_NEXT"},	{MWKEY_TAB,                 "TAB"},	{MWKEY_TELETEXT,            "TELETEXT"},	{MWKEY_TRACK_NEXT,          "TRACK_NEXT"},	{MWKEY_TRACK_PREV,          "TRACK_PREV"},	{MWKEY_UP,                  "UP"},	{MWKEY_VIDEO_MODE_NEXT,     "VIDEO_MODE_NEXT"},	{MWKEY_VOLUME_DOWN,         "VOLUME_DOWN"},	{MWKEY_VOLUME_UP,           "VOLUME_UP"},	{MWKEY_WINK,                "WINK"},	{0, NULL}};static intremoteControlHandler(mwlirc_keystroke * event, MWKEY * kbuf,		     MWSCANCODE * pscancode){	MWKEY ch;	unsigned len = strlen(event->name);	if (len == 1) {		/* Should be a digit. */		ch = event->name[0];		/*printf("LIRC_Read() - Got key '%c', char '%c', code 0x%x\n", ch, ch, ch);*/	} else {		/* FIXME: This is a linear search, should use a binary search instead (faster). */		const remoteKey_t *k = remoteKeys;		while (0 != strcmp(k->name, event->name)) {			k++;			if (NULL == k->name) {				printf("LIRC_Read() - Unrecognized key '%s'\n", event->name);				return 0;	/* Unrecognized - treat as 'No data' */			}		}		ch = k->code;		/*printf("LIRC_Read() - Got key '%s', no char, code 0x%x\n", k->name, ch);*/	}	*kbuf = ch;	*pscancode = ch;	/* send keypress, queue keyrelease. */	LIRC_pending_keyrelease_ch = ch;	LIRC_pending_keyrelease_scan = ch;	return 1;}/* ************************************************************************ *//* * End of IR remote driver                                              * *//* ************************************************************************ */

⌨️ 快捷键说明

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