Commit Graph

75 Commits

Author SHA1 Message Date
Ryan C. Gordon
ce8e4d3d92 Moved a SDL_SetError() call elsewhere to avoid triggering it needlessly.
Otherwise, the XInput path would always trigger it in a harmless manner.
2013-10-23 15:54:12 -04:00
Sam Lantinga
04b2fa0ebb Fixed windows compile 2013-10-20 20:49:36 -07:00
Sam Lantinga
ee2991652c Added a macro SDL_TICKS_PASSED() to correctly compare two 32-bit tick values.
Went through the code and used the macro and fixed a couple places that were using incorrect timestamp comparisons.
2013-10-20 20:42:55 -07:00
Ryan C. Gordon
4c0d6df7d5 Fix some edge cases in XInput haptic timing. 2013-10-20 23:38:19 -04:00
Ryan C. Gordon
df2257e369 Backed out hg changeset b92b8c52946c. REFGUID is apparently a const type. 2013-10-20 16:03:11 -04:00
Ryan C. Gordon
979be9e7d1 Patched to compile on non-C99 Microsoft compiler. 2013-10-20 16:02:24 -04:00
Ryan C. Gordon
0f42de668e Patched to compile on Windows. 2013-10-20 16:01:10 -04:00
Ryan C. Gordon
cbcd35ccf4 Allow XInput haptics to run for SDL_HAPTIC_INFINITY time (thanks, Mitchell!).
Partially fixes Bugzilla #2126.
2013-10-20 15:55:47 -04:00
Ryan C. Gordon
457b63bba4 Fixed goofy logic in haptic device comparison code.
Mitchell Keith Bloch did the research on this bug, and came up with a slightly
 different patch than this.

Partially fixes Bugzilla #2126.
2013-10-20 15:49:52 -04:00
Ryan C. Gordon
4fdc8805dd Don't bother calling SDL_SYS_HapticEffectType() at all for XInput devices. 2013-10-20 15:45:48 -04:00
Sam Lantinga
753aae78fc Christoph Mallon: Remove pointless if (x) before SDL_free(x) 2013-08-29 08:29:21 -07:00
Ryan C. Gordon
efb67d6fdc Fixed comment typo. 2013-08-28 17:12:07 -04:00
Gabriel Jacobo
8515791f86 OCD fixes: Adds a space after /* (glory to regular expressions!) 2013-08-21 09:47:10 -03:00
Gabriel Jacobo
871473e032 OCD fixes: Adds a space before */ 2013-08-21 09:43:09 -03:00
Ryan C. Gordon
03c58caaaa Haptic: Let XInput update effects while they're still running. 2013-08-10 13:46:19 -04:00
Ryan C. Gordon
7f43d9ff8b Removed no-longer-necessary comment. 2013-08-10 13:40:08 -04:00
Ryan C. Gordon
2fbbecf909 Replaced SDL_HAPTIC_SQUARE with SDL_HAPTIC_LEFTRIGHT.
We needed a bit, so we're hoping no one needs this effect, especially when
it's fairly close to SDL_HAPTIC_SINE, we hope.

SDL_HAPTIC_LEFTRIGHT maps to XInput's functionality, so this removes the SINE
code for the XInput driver to keep things clean.

This also makes the simplified Rumble API use SDL_HAPTIC_LEFTRIGHT if
SDL_HAPTIC_SINE isn't available, to keep XInput working.

When we break the ABI, and can extend the supported capabilities field from
a Uint16, we'll add SDL_HAPTIC_SQUARE back in.

This patch is based on work by Ethan Lee.
2013-08-10 13:38:09 -04:00
Ryan C. Gordon
ce89bf2ea5 Backed out hg changeset 7f26fd1df927; docs were wrong, not the code. 2013-07-27 13:13:57 -04:00
Philipp Wiesemann
2f2a724332 Fixed SDL_HapticOpened() returning -1 instead of 0.
According to header file it should only return 0 or 1.
2013-07-27 14:22:52 +02:00
Philipp Wiesemann
68c09645a0 Fixed SDL_HapticRumblePlay() maybe working because of SDL_HapticUpdateEffect(). 2013-07-27 13:52:16 +02:00
Philipp Wiesemann
10df5ccc6d Corrected SDL_HapticUpdateEffect() returning 0 instead of index of effect.
According to documentation in header and wiki the index should be returned.
This change may break existing programs which assume only 0 means a success.
2013-07-27 13:39:43 +02:00
Sam Lantinga
cffce6aedd Improved error checking in the haptic system, preventing crashes in some cases.
Edgar Simo 2012-05-06 02:33:39 EDT

I recall that driver being buggy back in the day, but looking over the code there's a number of things being done wrong which I've fixed and it should now properly error out instead of crashing. Also make sure you initialize the haptic subsystem before using haptic commands (which I now more explicitly try to enforce).
2013-07-27 02:45:26 -07:00
Ryan C. Gordon
a4233dae85 Make XInput haptic code respect effect timeouts.
This is really just a hack until this code expands to be a robust haptic mixer.

(This is also untested, beyond compiling. Sorry!)
2013-07-20 18:51:49 -04:00
Philipp Wiesemann
abd12ce602 Changed return value of internal function to shorten generic haptic source. 2013-07-20 11:01:03 +02:00
Sam Lantinga
cfcc491b45 Fixed warning about unused variable. 2013-06-27 11:17:48 -07:00
Sam Lantinga
a212744e87 Fixed initializing the haptic system from an XInput joystick
Thanks to Franz Schrober for the fix inspiration.
2013-06-27 10:59:30 -07:00
Philipp Wiesemann
4edf9290cc Fixed wrong documentation for haptic implementation. 2013-05-26 12:15:15 +02:00
Sam Lantinga
0d9b661db8 File style cleanup for the SDL 2.0 release 2013-05-18 14:17:52 -07:00
Philipp Wiesemann
85c137379b Corrected spelling in C source files. 2013-05-01 11:42:29 +02:00
Philipp Wiesemann
0be9414926 Fixed SDL_HapticQuery() returning -1 as unsigned int if device is not valid.
The function now returns 0 which is the same as if no effects were supported.
This may be confusing in rare situations but will not matter most of the time.
2013-05-01 11:32:05 +02:00
Ryan C. Gordon
16cdc59bab Make SDL_SetError and friends unconditionally return -1.
This lets us change things like this...

    if (Failed) {
        SDL_SetError("We failed");
        return -1;
    }

...into this...

    if (Failed) {
        return SDL_SetError("We failed");
    }


 Fixes Bugzilla #1778.
2013-03-31 12:48:50 -04:00
Sam Lantinga
f0af9a3e70 Removed Nintendo DS support since nobody has volunteered to maintain it for over a year. 2013-03-17 09:44:58 -07:00
Ryan C. Gordon
e097576967 First shot at Windows XInput haptics. 2013-03-10 13:05:47 -04:00
Sam Lantinga
019c60c1e8 Happy New Year! 2013-02-15 08:47:44 -08:00
Sam Lantinga
d29e029213 tree 5b46fd5b8c94
parent 971b278f0756
author Edward Rudd <urkle@outoforder.cc> 1358022907 18000
committer Edward Rudd <urkle@outoforder.cc> 1358022907 18000
revision 6819
branch default

Remove some redundant assigns
2013-02-11 21:47:13 -08:00
Ryan C. Gordon
2bd1d1abc4 Move all DirectInput code from DI2 to DI8.
Fixes failing Haptic subsystem initialization on Windows.
2012-11-29 15:24:56 -05:00
Sam Lantinga
23950f0183 Added hotplug joystick support and simplified game controller API, courtesy of Alfred Reynolds 2012-11-26 16:37:54 -08:00
Sam Lantinga
b3d60cfcbb Removed executable bit from source files 2012-09-27 14:35:28 -07:00
Ryan C. Gordon
b9790162f5 Fixed a bunch of compiler warnings with Cygwin/MingW. 2012-08-24 19:34:28 -04:00
Ryan C. Gordon
c71bcb5678 Removed some unused variables that gcc 4.6.1 complains about. 2012-08-09 14:14:41 -04:00
Sam Lantinga
1942221a6f Check return value, not unsigned "supported" flags 2011-12-31 13:28:07 -05:00
Sam Lantinga
e256711bb9 Happy New Year! 2011-12-31 09:28:07 -05:00
Ryan C. Gordon
1230f810bd Fixed compiler warning on 64-bit builds. 2011-08-22 13:41:35 -04:00
Ryan C. Gordon
4c406bc202 Cleaned up CoInitialize() politics on Windows. 2011-08-03 04:22:47 -04:00
Sam Lantinga
e2dc086a37 Fixed: Windows always fails with SDL_HapticOpenFromJoystick
The windows function SDL_SYS_HapticOpenFromJoystick fails because DIDEVICEINSTANCE joy_instance does not have its dwSize field initialized.  The attached patch includes the fix along with a fix for two similar problems.

Daniel Heath
2011-04-19 08:08:50 -07:00
Sam Lantinga
6196aa221e SDL 1.3 is now under the zlib license. 2011-04-08 13:03:26 -07:00
Sam Lantinga
5d2d0a1574 Fixed compiler warning 2011-02-20 13:56:57 -08:00
Sam Lantinga
2788694b17 Simple rumble API for haptic
Edgar Simo      2011-02-20 10:27:52 PST

Adding patch that adds a simplified API for the haptic subsystem built ontop of
the "real one" for those who want simple rumble without jumping through hoops.

Adds 4 functions:

- extern DECLSPEC int SDLCALL SDL_HapticRumbleSupported(SDL_Haptic * haptic);
- extern DECLSPEC int SDLCALL SDL_HapticRumbleInit(SDL_Haptic * haptic);
- extern DECLSPEC int SDLCALL SDL_HapticRumblePlay(SDL_Haptic * haptic, float
strength, Uint32 length );
- extern DECLSPEC int SDLCALL SDL_HapticRumbleStop(SDL_Haptic * haptic);

Also provided is test/testrumble.c which does test this.

This has all been tested on linux and has worked, but due to being built ontop
of the other haptic API it should work on all OS the same.
2011-02-20 10:54:44 -08:00
Sam Lantinga
c963d8f53b Untested fix for bug 946 (SDL_HapticIndex returns 0 for all devices)
Edgar Simo      2011-02-20 09:02:31 PST

Linux uses fname, which is the name of the device path like for example
/dev/input/event3 so it shouldn't have the issue. However I can confirm that it
looks like haptic->index never gets properly set on windows. Have to look at
mac os x also. I'll see if I can fix it real quick now.
2011-02-20 09:28:13 -08:00
Sam Lantinga
362639036a Frank Zago to sdl
The following patch fixes some of the bitrot for the Nintendo DS port.
The support is still basic at the moment, but it allows to run the "general"
test under the current head of tree (parent: 5269:11bd1585efb5 tip).
Most of the patch is mine, but I integrated a couple changes that John
Magnotti posted on Feb 1st.
2011-02-12 11:36:56 -08:00