static unsigned int win32_keyboard_get(struct win32_signal *ws) { ASSERT(ws->mode == WSO_MODE_CONSOLE); if (HANDLE_DEFINED(ws->in.read)) { INPUT_RECORD ir; do { DWORD n; if (!keyboard_input_available(ws)) { return 0; } if (!ReadConsoleInput(ws->in.read, &ir, 1, &n)) { return 0; } } while (ir.EventType != KEY_EVENT || ir.Event.KeyEvent.bKeyDown != TRUE); return keyboard_ir_to_key(&ir); } else { return 0; } }
unsigned int get() { if (Handle::defined(std_input)) { INPUT_RECORD ir; do { DWORD n; if (!available()) return 0; if (!ReadConsoleInput(std_input, &ir, 1, &n)) return 0; } while (ir.EventType != KEY_EVENT || ir.Event.KeyEvent.bKeyDown != TRUE); return keyboard_ir_to_key(&ir); } else return 0; }