Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Made envelopes behave correctly with length of 0.
Browse files Browse the repository at this point in the history
  • Loading branch information
bobbens committed Jul 30, 2008
1 parent f522a72 commit d43962b
Showing 1 changed file with 58 additions and 16 deletions.
74 changes: 58 additions & 16 deletions src/haptic/darwin/SDL_syshaptic.c
Expand Up @@ -662,10 +662,20 @@ SDL_SYS_ToFFEFFECT( SDL_Haptic * haptic, FFEFFECT * dest, SDL_HapticEffect * src
}

/* Envelope */
envelope->dwAttackLevel = CONVERT(hap_constant->attack_level);
envelope->dwAttackTime = hap_constant->attack_length * 1000;
envelope->dwFadeLevel = CONVERT(hap_constant->fade_level);
envelope->dwFadeTime = hap_constant->fade_length * 1000;
if (envelope->dwAttackTime == 0) {
envelope->dwAttackLevel = constant->dwMagnitude
}
else {
envelope->dwAttackLevel = CONVERT(hap_constant->attack_level);
envelope->dwAttackTime = hap_constant->attack_length * 1000;
}
if (envelope->dwFadeTime == 0) {
envelope->dwFadeLevel = constant->dwMagnitude
}
else {
envelope->dwFadeLevel = CONVERT(hap_constant->fade_level);
envelope->dwFadeTime = hap_constant->fade_length * 1000;
}

break;

Expand Down Expand Up @@ -702,10 +712,20 @@ SDL_SYS_ToFFEFFECT( SDL_Haptic * haptic, FFEFFECT * dest, SDL_HapticEffect * src
}

/* Envelope */
envelope->dwAttackLevel = CONVERT(hap_periodic->attack_level);
envelope->dwAttackTime = hap_periodic->attack_length * 1000;
envelope->dwFadeLevel = CONVERT(hap_periodic->fade_level);
envelope->dwFadeTime = hap_periodic->fade_length * 1000;
if (envelope->dwAttackTime == 0) {
envelope->dwAttackLevel = periodic->dwMagnitude
}
else {
envelope->dwAttackLevel = CONVERT(hap_periodic->attack_level);
envelope->dwAttackTime = hap_periodic->attack_length * 1000;
}
if (envelope->dwFadeTime == 0) {
envelope->dwFadeLevel = periodic->dwMagnitude
}
else {
envelope->dwFadeLevel = CONVERT(hap_periodic->fade_level);
envelope->dwFadeTime = hap_periodic->fade_length * 1000;
}

break;

Expand Down Expand Up @@ -745,6 +765,8 @@ SDL_SYS_ToFFEFFECT( SDL_Haptic * haptic, FFEFFECT * dest, SDL_HapticEffect * src
}

/* Envelope */
SDL_free(dest->lpEnvelope);
dest->lpEnvelope = NULL;
/* TODO Check is envelope actually used.
envelope->dwAttackLevel = CONVERT(hap_condition->attack_level);
envelope->dwAttackTime = hap_condition->attack_length * 1000;
Expand Down Expand Up @@ -781,10 +803,20 @@ SDL_SYS_ToFFEFFECT( SDL_Haptic * haptic, FFEFFECT * dest, SDL_HapticEffect * src
}

/* Envelope */
envelope->dwAttackLevel = CONVERT(hap_ramp->attack_level);
envelope->dwAttackTime = hap_ramp->attack_length * 1000;
envelope->dwFadeLevel = CONVERT(hap_ramp->fade_level);
envelope->dwFadeTime = hap_ramp->fade_length * 1000;
if (envelope->dwAttackTime == 0) {
envelope->dwAttackLevel = ramp->dwMagnitude
}
else {
envelope->dwAttackLevel = CONVERT(hap_ramp->attack_level);
envelope->dwAttackTime = hap_ramp->attack_length * 1000;
}
if (envelope->dwFadeTime == 0) {
envelope->dwFadeLevel = ramp->dwMagnitude
}
else {
envelope->dwFadeLevel = CONVERT(hap_ramp->fade_level);
envelope->dwFadeTime = hap_ramp->fade_length * 1000;
}

break;

Expand Down Expand Up @@ -820,10 +852,20 @@ SDL_SYS_ToFFEFFECT( SDL_Haptic * haptic, FFEFFECT * dest, SDL_HapticEffect * src
}

/* Envelope */
envelope->dwAttackLevel = CONVERT(hap_custom->attack_level);
envelope->dwAttackTime = hap_custom->attack_length * 1000;
envelope->dwFadeLevel = CONVERT(hap_custom->fade_level);
envelope->dwFadeTime = hap_custom->fade_length * 1000;
if (envelope->dwAttackTime == 0) {
envelope->dwAttackLevel = custom->dwMagnitude
}
else {
envelope->dwAttackLevel = CONVERT(hap_custom->attack_level);
envelope->dwAttackTime = hap_custom->attack_length * 1000;
}
if (envelope->dwFadeTime == 0) {
envelope->dwFadeLevel = custom->dwMagnitude
}
else {
envelope->dwFadeLevel = CONVERT(hap_custom->fade_level);
envelope->dwFadeTime = hap_custom->fade_length * 1000;
}

break;

Expand Down

0 comments on commit d43962b

Please sign in to comment.