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; }
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); } }