Ejemplo n.º 1
0
/* 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);
}
Ejemplo n.º 2
0
	void Game::Initialize()
	{
		graphicsService = (IGraphicsDeviceService *)services.GetService(IGraphicsDeviceService::GetType());

		for (int i = 0; i < components.Count(); i++)
		{
			components[i]->Initialize();
		}

		XInput_Init();

		LoadContent();
	}
Ejemplo n.º 3
0
/*:::::*/
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 );
}
Ejemplo n.º 4
0
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;
}