mirror of https://github.com/encounter/SDL.git
Haptic: Add some missing haptic types to test, and fix wrong array-sizes.
Thanks, Elias! Fixes Bugzilla #2686. (along with the last several commits.)
This commit is contained in:
parent
e2bbc17d11
commit
d72c61d8c7
|
@ -45,8 +45,8 @@ main(int argc, char **argv)
|
||||||
int i;
|
int i;
|
||||||
char *name;
|
char *name;
|
||||||
int index;
|
int index;
|
||||||
SDL_HapticEffect efx[5];
|
SDL_HapticEffect efx[9];
|
||||||
int id[5];
|
int id[9];
|
||||||
int nefx;
|
int nefx;
|
||||||
unsigned int supported;
|
unsigned int supported;
|
||||||
|
|
||||||
|
@ -149,6 +149,7 @@ main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
nefx++;
|
nefx++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Now the classical constant effect. */
|
/* Now the classical constant effect. */
|
||||||
if (supported & SDL_HAPTIC_CONSTANT) {
|
if (supported & SDL_HAPTIC_CONSTANT) {
|
||||||
SDL_Log(" effect %d: Constant Force\n", nefx);
|
SDL_Log(" effect %d: Constant Force\n", nefx);
|
||||||
|
@ -166,6 +167,7 @@ main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
nefx++;
|
nefx++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The cute spring effect. */
|
/* The cute spring effect. */
|
||||||
if (supported & SDL_HAPTIC_SPRING) {
|
if (supported & SDL_HAPTIC_SPRING) {
|
||||||
SDL_Log(" effect %d: Condition Spring\n", nefx);
|
SDL_Log(" effect %d: Condition Spring\n", nefx);
|
||||||
|
@ -185,6 +187,24 @@ main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
nefx++;
|
nefx++;
|
||||||
}
|
}
|
||||||
|
/* The interesting damper effect. */
|
||||||
|
if (supported & SDL_HAPTIC_DAMPER) {
|
||||||
|
SDL_Log(" effect %d: Condition Damper\n", nefx);
|
||||||
|
efx[nefx].type = SDL_HAPTIC_DAMPER;
|
||||||
|
efx[nefx].condition.length = 5000;
|
||||||
|
for (i = 0; i < SDL_HapticNumAxes(haptic); i++) {
|
||||||
|
efx[nefx].condition.right_sat[i] = 0xFFFF;
|
||||||
|
efx[nefx].condition.left_sat[i] = 0xFFFF;
|
||||||
|
efx[nefx].condition.right_coeff[i] = 0x2000;
|
||||||
|
efx[nefx].condition.left_coeff[i] = 0x2000;
|
||||||
|
}
|
||||||
|
id[nefx] = SDL_HapticNewEffect(haptic, &efx[nefx]);
|
||||||
|
if (id[nefx] < 0) {
|
||||||
|
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "UPLOADING EFFECT ERROR: %s\n", SDL_GetError());
|
||||||
|
abort_execution();
|
||||||
|
}
|
||||||
|
nefx++;
|
||||||
|
}
|
||||||
/* The pretty awesome inertia effect. */
|
/* The pretty awesome inertia effect. */
|
||||||
if (supported & SDL_HAPTIC_INERTIA) {
|
if (supported & SDL_HAPTIC_INERTIA) {
|
||||||
SDL_Log(" effect %d: Condition Inertia\n", nefx);
|
SDL_Log(" effect %d: Condition Inertia\n", nefx);
|
||||||
|
@ -204,6 +224,44 @@ main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
nefx++;
|
nefx++;
|
||||||
}
|
}
|
||||||
|
/* The hot friction effect. */
|
||||||
|
if (supported & SDL_HAPTIC_FRICTION) {
|
||||||
|
SDL_Log(" effect %d: Condition Friction\n", nefx);
|
||||||
|
efx[nefx].type = SDL_HAPTIC_FRICTION;
|
||||||
|
efx[nefx].condition.length = 5000;
|
||||||
|
for (i = 0; i < SDL_HapticNumAxes(haptic); i++) {
|
||||||
|
efx[nefx].condition.right_sat[i] = 0xFFFF;
|
||||||
|
efx[nefx].condition.left_sat[i] = 0xFFFF;
|
||||||
|
efx[nefx].condition.right_coeff[i] = 0x2000;
|
||||||
|
efx[nefx].condition.left_coeff[i] = 0x2000;
|
||||||
|
}
|
||||||
|
id[nefx] = SDL_HapticNewEffect(haptic, &efx[nefx]);
|
||||||
|
if (id[nefx] < 0) {
|
||||||
|
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "UPLOADING EFFECT ERROR: %s\n", SDL_GetError());
|
||||||
|
abort_execution();
|
||||||
|
}
|
||||||
|
nefx++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Now we'll try a ramp effect */
|
||||||
|
if (supported & SDL_HAPTIC_RAMP) {
|
||||||
|
SDL_Log(" effect %d: Ramp\n", nefx);
|
||||||
|
efx[nefx].type = SDL_HAPTIC_RAMP;
|
||||||
|
efx[nefx].ramp.direction.type = SDL_HAPTIC_CARTESIAN;
|
||||||
|
efx[nefx].ramp.direction.dir[0] = 1; /* Force comes from */
|
||||||
|
efx[nefx].ramp.direction.dir[1] = -1; /* the north-east. */
|
||||||
|
efx[nefx].ramp.length = 5000;
|
||||||
|
efx[nefx].ramp.start = 0x4000;
|
||||||
|
efx[nefx].ramp.end = -0x4000;
|
||||||
|
efx[nefx].ramp.attack_length = 1000;
|
||||||
|
efx[nefx].ramp.fade_length = 1000;
|
||||||
|
id[nefx] = SDL_HapticNewEffect(haptic, &efx[nefx]);
|
||||||
|
if (id[nefx] < 0) {
|
||||||
|
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "UPLOADING EFFECT ERROR: %s\n", SDL_GetError());
|
||||||
|
abort_execution();
|
||||||
|
}
|
||||||
|
nefx++;
|
||||||
|
}
|
||||||
|
|
||||||
/* Finally we'll try a left/right effect. */
|
/* Finally we'll try a left/right effect. */
|
||||||
if (supported & SDL_HAPTIC_LEFTRIGHT) {
|
if (supported & SDL_HAPTIC_LEFTRIGHT) {
|
||||||
|
|
Loading…
Reference in New Issue