int SYS::queue_events() {
	hidScanInput();
	u32 down = hidKeysDown();
	u32 up = hidKeysUp();
	for (int i = 0; i < 32; i++) {
		if (buttonMap3ds[i]) {
			if ((down & BIT(i)) != 0) {
				events.queue_event(m_msg_time, EV_KEY_DOWN, buttonMap3ds[i], 0);
			}
			if ((up & BIT(i)) != 0) {
				events.queue_event(m_msg_time, EV_KEY_UP, buttonMap3ds[i], 0);
			}
		}
	}
	static int key_last = 0;
	static int key = 0;

	key_last = key;
	key = keyboard_scankeys();
	if (key_last != 0 && key_last != key)
	{
		//printf("key up: %d %c\n", key_last, key_last);
		events.queue_event(m_msg_time, EV_KEY_UP, key_last, 0);
		//event.type = ev_keyup;
		//event.data1 = key_last;
		//D_PostEvent(&event);
	}

	if (key != 0 && key != key_last)
	{
		//printf("key down: %d %c\n", key, key);
		events.queue_event(m_msg_time, EV_KEY_DOWN, key, 0);
		//event.type = ev_keydown;
		//event.data1 = key;
		//D_PostEvent(&event);
	}
	return 0;
}
Exemple #2
0
void keyboard_input() {
	static int key_last = 0;
	static int key = 0;
	event_t event;

	key_last = key;
	key = keyboard_scankeys();
	if (key_last != 0 && key_last != key)
	{
		//printf("key up: %d %c\n", key_last, key_last);
		event.type = ev_keyup;
		event.data1 = key_last;
		D_PostEvent(&event);
	}

	if (key != 0 && key != key_last)
	{
		//printf("key down: %d %c\n", key, key);
		event.type = ev_keydown;
		event.data1 = key;
		D_PostEvent(&event);
	}
}