slight adjustment to the hot plug test to allow it to be run with hap tics disabled
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
diff --git a/test/testhotplug.c b/test/testhotplug.c
index 8c1cec4..328a8ee 100644
--- a/test/testhotplug.c
+++ b/test/testhotplug.c
@@ -19,7 +19,7 @@
#include "SDL.h"
#include "SDL_haptic.h"
-#ifndef SDL_JOYSTICK_DISABLED
+#if !defined SDL_JOYSTICK_DISABLED && !defined SDL_HAPTIC_DISABLED
int
main(int argc, char *argv[])
@@ -28,14 +28,27 @@ main(int argc, char *argv[])
SDL_Haptic *haptic = NULL;
SDL_JoystickID instance = -1;
SDL_bool keepGoing = SDL_TRUE;
+ int i;
+ SDL_bool enable_haptic = SDL_TRUE;
+ Uint32 init_subsystems = SDL_INIT_VIDEO | SDL_INIT_JOYSTICK;
+
+ for (i = 1; i < argc; ++i) {
+ if (SDL_strcasecmp(argv[i], "--nohaptic") == 0) {
+ enable_haptic = SDL_FALSE;
+ }
+ }
+ if(enable_haptic) {
+ init_subsystems |= SDL_INIT_HAPTIC;
+ }
+
/* Enable standard application logging */
SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "1");
/* Initialize SDL (Note: video is required to start event loop) */
- if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC) < 0) {
+ if (SDL_Init(init_subsystems) < 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s\n", SDL_GetError());
exit(1);
}
@@ -43,7 +56,8 @@ main(int argc, char *argv[])
//SDL_CreateWindow("Dummy", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 128, 128, 0);
SDL_Log("There are %d joysticks at startup\n", SDL_NumJoysticks());
- SDL_Log("There are %d haptic devices at startup\n", SDL_NumHaptics());
+ if (enable_haptic)
+ SDL_Log("There are %d haptic devices at startup\n", SDL_NumHaptics());
while(keepGoing)
{
@@ -65,25 +79,28 @@ main(int argc, char *argv[])
joystick = SDL_JoystickOpen(event.jdevice.which);
instance = SDL_JoystickInstanceID(joystick);
SDL_Log("Joy Added : %d : %s\n", event.jdevice.which, SDL_JoystickName(joystick));
- if (SDL_JoystickIsHaptic(joystick))
+ if (enable_haptic)
{
- haptic = SDL_HapticOpenFromJoystick(joystick);
- if (haptic)
+ if (SDL_JoystickIsHaptic(joystick))
{
- SDL_Log("Joy Haptic Opened\n");
- if (SDL_HapticRumbleInit( haptic ) != 0)
+ haptic = SDL_HapticOpenFromJoystick(joystick);
+ if (haptic)
{
- SDL_Log("Could not init Rumble!: %s\n", SDL_GetError());
- SDL_HapticClose(haptic);
- haptic = NULL;
+ SDL_Log("Joy Haptic Opened\n");
+ if (SDL_HapticRumbleInit( haptic ) != 0)
+ {
+ SDL_Log("Could not init Rumble!: %s\n", SDL_GetError());
+ SDL_HapticClose(haptic);
+ haptic = NULL;
+ }
+ } else {
+ SDL_Log("Joy haptic open FAILED!: %s\n", SDL_GetError());
}
- } else {
- SDL_Log("Joy haptic open FAILED!: %s\n", SDL_GetError());
}
- }
- else
- {
- SDL_Log("No haptic found\n");
+ else
+ {
+ SDL_Log("No haptic found\n");
+ }
}
}
break;
@@ -92,7 +109,7 @@ main(int argc, char *argv[])
{
SDL_Log("Joy Removed: %d\n", event.jdevice.which);
instance = -1;
- if(haptic)
+ if(enable_haptic && haptic)
{
SDL_HapticClose(haptic);
haptic = NULL;
@@ -105,13 +122,14 @@ main(int argc, char *argv[])
break;
case SDL_JOYAXISMOTION:
// SDL_Log("Axis Move: %d\n", event.jaxis.axis);
- SDL_HapticRumblePlay(haptic, 0.2, 250);
+ if (enable_haptic)
+ SDL_HapticRumblePlay(haptic, 0.25, 250);
break;
case SDL_JOYBUTTONDOWN:
SDL_Log("Button Press: %d\n", event.jbutton.button);
- if(haptic)
+ if(enable_haptic && haptic)
{
- SDL_HapticRumblePlay(haptic, 0.2, 250);
+ SDL_HapticRumblePlay(haptic, 0.25, 250);
}
if (event.jbutton.button == 0) {
SDL_Log("Exiting due to button press of button 0\n");
@@ -125,7 +143,7 @@ main(int argc, char *argv[])
}
}
- SDL_QuitSubSystem(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK);
+ SDL_Quit();
return 0;
}
@@ -134,7 +152,7 @@ main(int argc, char *argv[])
int
main(int argc, char *argv[])
{
- SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL compiled without Joystick support.\n");
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL compiled without Joystick and haptic support.\n");
return 1;
}