void OutBound(void) { WINDOW *w ; w = WindowCreate("Local", 0, 10, 0, 79) ; if (!w) return ; for (;;) { BYTE8 code ; char ascii ; MtCYield() ; WindowSelect(w) ; if (!ScanCodeRdy()) continue ; code = GetScanCode() ; if (code & 0x80) continue ; if (SetsKybdState(code)) continue ; ascii = ScanCode2Ascii(code) & 0xFF ; if (!isprint(ascii) && !iscntrl(ascii)) continue ; WindowPutChar(w, ascii) ; SerialPut(ascii) ; if (ascii == '\r') { WindowPutChar(w, '\n') ; SerialPut('\n') ; } } }
void Input::Initialize() { for(int i = 0; i < MAX_PLAYERS; ++i) playerControllers[i] = 0; mousePosition[0] = mousePosition[1] = 0; #if defined(_WIN32) InitializeWindow(); keyBindings[A] = VK_SPACE; keyBindings[B] = 'X'; keyBindings[X] = 'E'; keyBindings[Y] = 'R'; keyBindings[START] = VK_ESCAPE; keyBindings[SELECT] = VK_RETURN; keyBindings[L_SHOULDER] = VK_OEM_MINUS; keyBindings[R_SHOULDER] = VK_OEM_PLUS; keyBindings[D_RIGHT] = VK_END; keyBindings[D_UP] = VK_PRIOR; keyBindings[D_LEFT] = VK_HOME; keyBindings[D_DOWN] = VK_NEXT; keyBindings[NUM_BUTTONS + L_TRIGGER] = VK_OEM_4; keyBindings[NUM_BUTTONS + R_TRIGGER] = VK_OEM_6; keyBindings[NUM_BUTTONS + A_RIGHT] = 'D'; keyBindings[NUM_BUTTONS + A_UP] = 'W'; keyBindings[NUM_BUTTONS + A_LEFT] = 'A'; keyBindings[NUM_BUTTONS + A_DOWN] = 'S'; #elif defined(__linux__) RegisterMonitor(); #endif #if defined(X11) display = XOpenDisplay(NULL); window = DefaultRootWindow(display); // create transparent cursor for when mouse is in relative-movement mode { static char noData[] = { 0 }; XColor black = { 0 }; Pixmap blankBitmap = XCreateBitmapFromData(display, window, noData, 1, 1); invisibleCursor = XCreatePixmapCursor(display, blankBitmap, blankBitmap, &black, &black, 0, 0); XFreePixmap(display, blankBitmap); } keyBindings[A] = GetScanCode(XK_space); keyBindings[B] = GetScanCode('X'); keyBindings[X] = GetScanCode('E'); keyBindings[Y] = GetScanCode('R'); keyBindings[START] = GetScanCode(XK_Escape); keyBindings[SELECT] = GetScanCode(XK_Return); keyBindings[L_SHOULDER] = GetScanCode(XK_minus); keyBindings[R_SHOULDER] = GetScanCode(XK_plus); keyBindings[D_RIGHT] = GetScanCode(XK_End); keyBindings[D_UP] = GetScanCode(XK_Prior); keyBindings[D_LEFT] = GetScanCode(XK_Home); keyBindings[D_DOWN] = GetScanCode(XK_Next); keyBindings[NUM_BUTTONS + L_TRIGGER] = GetScanCode(XK_bracketleft); keyBindings[NUM_BUTTONS + R_TRIGGER] = GetScanCode(XK_bracketright); keyBindings[NUM_BUTTONS + A_RIGHT] = GetScanCode('D'); keyBindings[NUM_BUTTONS + A_UP] = GetScanCode('W'); keyBindings[NUM_BUTTONS + A_LEFT] = GetScanCode('A'); keyBindings[NUM_BUTTONS + A_DOWN] = GetScanCode('S'); #endif DetectControllers(); }