/* Function to scan the system for joysticks. * This function should set SDL_numjoysticks to the number of available * joysticks. Joystick 0 should be the system default joystick. * It should return 0, or -1 on an unrecoverable fatal error. */ int SDL_SYS_JoystickInit(void) { XInput_Init(); SDL_numjoysticks = 4; return(SDL_numjoysticks); }
void Game::Initialize() { graphicsService = (IGraphicsDeviceService *)services.GetService(IGraphicsDeviceService::GetType()); for (int i = 0; i < components.Count(); i++) { components[i]->Initialize(); } XInput_Init(); LoadContent(); }
/*:::::*/ FBCALL int fb_GfxGetJoystick(int id, int *buttons, float *a1, float *a2, float *a3, float *a4, float *a5, float *a6, float *a7, float *a8) { static int inited = 0; *buttons = -1; *a1 = *a2 = *a3 = *a4 = *a5 = *a6 = *a7 = *a8 = -1000.0; if ((id < 0) || (id >= 4) || (!g_Pads[id].hPresent)) return fb_ErrorSetNum(FB_RTERROR_ILLEGALFUNCTIONCALL); if (!inited) { inited = 1; XInput_Init(); } XInput_GetEvents(); *buttons = !!g_Pads[id].CurrentButtons.ucAnalogButtons[XPAD_A] | (!!g_Pads[id].CurrentButtons.ucAnalogButtons[XPAD_B] << 1) | (!!g_Pads[id].CurrentButtons.ucAnalogButtons[XPAD_X] << 2) | (!!g_Pads[id].CurrentButtons.ucAnalogButtons[XPAD_Y] << 3) | (!!g_Pads[id].CurrentButtons.ucAnalogButtons[XPAD_BLACK] << 4) | (!!g_Pads[id].CurrentButtons.ucAnalogButtons[XPAD_WHITE] << 5) | (!!(g_Pads[id].CurrentButtons.usDigitalButtons & XPAD_START) << 6) | (!!(g_Pads[id].CurrentButtons.usDigitalButtons & XPAD_BACK) << 7) | (!!(g_Pads[id].CurrentButtons.usDigitalButtons & XPAD_LEFT_THUMB) << 8) | (!!(g_Pads[id].CurrentButtons.usDigitalButtons & XPAD_RIGHT_THUMB) << 9); *a1 = JOYPOS(g_Pads[id].sLThumbX, -32768, 32767); *a2 = -JOYPOS(g_Pads[id].sLThumbY, -32768, 32767); *a3 = JOYPOS(g_Pads[id].sRThumbX, -32768, 32767); *a4 = -JOYPOS(g_Pads[id].sRThumbY, -32768, 32767); *a5 = (JOYPOS(g_Pads[id].CurrentButtons.ucAnalogButtons[XPAD_LEFT_TRIGGER], 0, 255) + 1.0) / 2.0; *a6 = (JOYPOS(g_Pads[id].CurrentButtons.ucAnalogButtons[XPAD_RIGHT_TRIGGER], 0, 255) + 1.0) / 2.0; if (g_Pads[id].CurrentButtons.usDigitalButtons & XPAD_DPAD_RIGHT) *a7 = 1.0; else if (g_Pads[id].CurrentButtons.usDigitalButtons & XPAD_DPAD_LEFT) *a7 = -1.0; else *a7 = 0.0; if (g_Pads[id].CurrentButtons.usDigitalButtons & XPAD_DPAD_DOWN) *a8 = 1.0; else if (g_Pads[id].CurrentButtons.usDigitalButtons & XPAD_DPAD_UP) *a8 = -1.0; else *a8 = 0.0; return fb_ErrorSetNum( FB_RTERROR_OK ); }
void XBOX_InitOSKeymap(_THIS) { int i; XInput_Init(); XSleep(200); lastMouseX = 0; lastMouseY = 0; prevMouseButtons = 0; /* Map the DIK scancodes to SDL keysyms */ for ( i=0; i<256/*SDL_TABLESIZE(DIK_keymap)*/; i++ ) DIK_keymap[i] = 0; /* Defined DIK_* constants */ DIK_keymap[XKEY_ESCAPE] = SDLK_ESCAPE; DIK_keymap[XKEY_1] = SDLK_1; DIK_keymap[XKEY_2] = SDLK_2; DIK_keymap[XKEY_3] = SDLK_3; DIK_keymap[XKEY_4] = SDLK_4; DIK_keymap[XKEY_5] = SDLK_5; DIK_keymap[XKEY_6] = SDLK_6; DIK_keymap[XKEY_7] = SDLK_7; DIK_keymap[XKEY_8] = SDLK_8; DIK_keymap[XKEY_9] = SDLK_9; DIK_keymap[XKEY_0] = SDLK_0; DIK_keymap[XKEY_SUBTRACT] = SDLK_MINUS; DIK_keymap[XKEY_EQUALS] = SDLK_EQUALS; DIK_keymap[XKEY_BACKSPACE] = SDLK_BACKSPACE; DIK_keymap[XKEY_TAB] = SDLK_TAB; DIK_keymap[XKEY_Q] = SDLK_q; DIK_keymap[XKEY_W] = SDLK_w; DIK_keymap[XKEY_E] = SDLK_e; DIK_keymap[XKEY_R] = SDLK_r; DIK_keymap[XKEY_T] = SDLK_t; DIK_keymap[XKEY_Y] = SDLK_y; DIK_keymap[XKEY_U] = SDLK_u; DIK_keymap[XKEY_I] = SDLK_i; DIK_keymap[XKEY_O] = SDLK_o; DIK_keymap[XKEY_P] = SDLK_p; DIK_keymap[XKEY_LBRACE] = SDLK_LEFTBRACKET; DIK_keymap[XKEY_RBRACE] = SDLK_RIGHTBRACKET; DIK_keymap[XKEY_RETURN] = SDLK_RETURN; DIK_keymap[XKEY_LCONTROL] = SDLK_LCTRL; DIK_keymap[XKEY_A] = SDLK_a; DIK_keymap[XKEY_S] = SDLK_s; DIK_keymap[XKEY_D] = SDLK_d; DIK_keymap[XKEY_F] = SDLK_f; DIK_keymap[XKEY_G] = SDLK_g; DIK_keymap[XKEY_H] = SDLK_h; DIK_keymap[XKEY_J] = SDLK_j; DIK_keymap[XKEY_K] = SDLK_k; DIK_keymap[XKEY_L] = SDLK_l; DIK_keymap[XKEY_SEMICOLON] = SDLK_SEMICOLON; DIK_keymap[XKEY_QUOTE] = SDLK_QUOTE; DIK_keymap[XKEY_GRAVE] = SDLK_BACKQUOTE; DIK_keymap[XKEY_LSHIFT] = SDLK_LSHIFT; DIK_keymap[XKEY_BACKSLASH] = SDLK_BACKSLASH; DIK_keymap[XKEY_Z] = SDLK_z; DIK_keymap[XKEY_X] = SDLK_x; DIK_keymap[XKEY_C] = SDLK_c; DIK_keymap[XKEY_V] = SDLK_v; DIK_keymap[XKEY_B] = SDLK_b; DIK_keymap[XKEY_N] = SDLK_n; DIK_keymap[XKEY_M] = SDLK_m; DIK_keymap[XKEY_COMMA] = SDLK_COMMA; DIK_keymap[XKEY_PERIOD] = SDLK_PERIOD; DIK_keymap[XKEY_EQUALS] = SDLK_PLUS; DIK_keymap[XKEY_MINUS] = SDLK_MINUS; DIK_keymap[XKEY_SLASH] = SDLK_SLASH; DIK_keymap[XKEY_RSHIFT] = SDLK_RSHIFT; DIK_keymap[XKEY_MULTIPLY] = SDLK_KP_MULTIPLY; DIK_keymap[XKEY_LMENU] = SDLK_LALT; DIK_keymap[XKEY_SPACE] = SDLK_SPACE; DIK_keymap[XKEY_CAPSLOCK] = SDLK_CAPSLOCK; DIK_keymap[XKEY_F1] = SDLK_F1; DIK_keymap[XKEY_F2] = SDLK_F2; DIK_keymap[XKEY_F3] = SDLK_F3; DIK_keymap[XKEY_F4] = SDLK_F4; DIK_keymap[XKEY_F5] = SDLK_F5; DIK_keymap[XKEY_F6] = SDLK_F6; DIK_keymap[XKEY_F7] = SDLK_F7; DIK_keymap[XKEY_F8] = SDLK_F8; DIK_keymap[XKEY_F9] = SDLK_F9; DIK_keymap[XKEY_F10] = SDLK_F10; DIK_keymap[XKEY_NUMLOCK] = SDLK_NUMLOCK; DIK_keymap[XKEY_SCROLL_LOCK] = SDLK_SCROLLOCK; DIK_keymap[XKEY_NUMPAD7] = SDLK_KP7; DIK_keymap[XKEY_NUMPAD8] = SDLK_KP8; DIK_keymap[XKEY_NUMPAD9] = SDLK_KP9; DIK_keymap[XKEY_ADD] = SDLK_KP_PLUS; DIK_keymap[XKEY_SUBTRACT] = SDLK_KP_MINUS; DIK_keymap[XKEY_NUMPAD4] = SDLK_KP4; DIK_keymap[XKEY_NUMPAD5] = SDLK_KP5; DIK_keymap[XKEY_NUMPAD6] = SDLK_KP6; DIK_keymap[XKEY_NUMPAD1] = SDLK_KP1; DIK_keymap[XKEY_NUMPAD2] = SDLK_KP2; DIK_keymap[XKEY_NUMPAD3] = SDLK_KP3; DIK_keymap[XKEY_NUMPAD0] = SDLK_KP0; DIK_keymap[XKEY_DECIMAL] = SDLK_KP_PERIOD; DIK_keymap[XKEY_F11] = SDLK_F11; DIK_keymap[XKEY_F12] = SDLK_F12; DIK_keymap[XKEY_F13] = SDLK_F13; DIK_keymap[XKEY_F14] = SDLK_F14; DIK_keymap[XKEY_F15] = SDLK_F15; DIK_keymap[XKEY_NUMPADEQUALS] = SDLK_EQUALS; DIK_keymap[XKEY_RCONTROL] = SDLK_RCTRL; DIK_keymap[XKEY_DIVIDE] = SDLK_KP_DIVIDE; DIK_keymap[XKEY_RMENU] = SDLK_RALT; DIK_keymap[XKEY_PAUSE] = SDLK_PAUSE; DIK_keymap[XKEY_HOME] = SDLK_HOME; DIK_keymap[XKEY_UP] = SDLK_UP; DIK_keymap[XKEY_PRIOR] = SDLK_PAGEUP; DIK_keymap[XKEY_LEFT] = SDLK_LEFT; DIK_keymap[XKEY_RIGHT] = SDLK_RIGHT; DIK_keymap[XKEY_END] = SDLK_END; DIK_keymap[XKEY_DOWN] = SDLK_DOWN; DIK_keymap[XKEY_NEXT] = SDLK_PAGEDOWN; DIK_keymap[XKEY_INSERT] = SDLK_INSERT; DIK_keymap[XKEY_DELETE] = SDLK_DELETE; DIK_keymap[XKEY_LWIN] = SDLK_LMETA; DIK_keymap[XKEY_RWIN] = SDLK_RMETA; DIK_keymap[XKEY_APPS] = SDLK_MENU; }