Mercurial > sdl-ios-xcode
diff src/joystick/win32/SDL_dxjoystick_c.h @ 2616:acd5da848404 gsoc2008_force_feedback
Moved the directinput joystick hwdata stuff into a seperate header file.
author | Edgar Simo <bobbens@gmail.com> |
---|---|
date | Wed, 06 Aug 2008 08:47:35 +0000 |
parents | |
children | 51cadb844a9e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/joystick/win32/SDL_dxjoystick_c.h Wed Aug 06 08:47:35 2008 +0000 @@ -0,0 +1,82 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2006 Sam Lantinga + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Sam Lantinga + slouken@libsdl.org +*/ +#include "SDL_config.h" + +#ifndef SDL_JOYSTICK_DINPUT_H + +/* DirectInput joystick driver; written by Glenn Maynard, based on Andrei de + * A. Formiga's WINMM driver. + * + * Hats and sliders are completely untested; the app I'm writing this for mostly + * doesn't use them and I don't own any joysticks with them. + * + * We don't bother to use event notification here. It doesn't seem to work + * with polled devices, and it's fine to call IDirectInputDevice2_GetDeviceData and + * let it return 0 events. */ + +#define WIN32_LEAN_AND_MEAN +#include <windows.h> + +#define DIRECTINPUT_VERSION 0x0500 +#include <dinput.h> +#ifdef _MSC_VER + /* Used for the c_dfDIJoystick2 symbol (no imports are used) */ +# pragma comment (lib, "dinput.lib") +#endif +#include <dxerr.h> +#ifdef _MSC_VER +# pragma comment (lib, "dxerr.lib") +#endif + + +#define MAX_INPUTS 256 /* each joystick can have up to 256 inputs */ + + +/* local types */ +typedef enum Type +{ BUTTON, AXIS, HAT } Type; + +typedef struct input_t +{ + /* DirectInput offset for this input type: */ + DWORD ofs; + + /* Button, axis or hat: */ + Type type; + + /* SDL input offset: */ + Uint8 num; +} input_t; + +/* The private structure used to keep track of a joystick */ +struct joystick_hwdata +{ + LPDIRECTINPUTDEVICE2 InputDevice; + DIDEVCAPS Capabilities; + int buffered; + + input_t Inputs[MAX_INPUTS]; + int NumInputs; +}; + +#endif /* SDL_JOYSTICK_DINPUT_H */ +