Chris Robinson
06c8442af6
Rename a variable
2013-05-26 17:10:57 -07:00
Chris Robinson
0a4be3470e
Pre-apply the a[0] EQ filter coefficient
...
Saves 20 fp divisions per sample
2013-05-26 17:04:45 -07:00
Chris Robinson
4bf5466f64
Use SET_ERROR_AND_RETURN in a few more places
2013-05-26 16:34:08 -07:00
Chris Robinson
82caba6bbe
Use the helper macros in more places
2013-05-26 08:54:34 -07:00
Chris Robinson
8808159d55
Add helper macros to set an error and return, and use it in a few places
2013-05-26 00:01:07 -07:00
Chris Robinson
2759239754
Define the ALeffect typedef with the struct
2013-05-25 22:31:24 -07:00
Chris Robinson
d1c5599c8e
Use an ALeffectProps union to store the effect properties
2013-05-25 22:07:31 -07:00
Chris Robinson
6571d80540
Use a Delete method for deletable objects
2013-05-25 21:04:00 -07:00
Chris Robinson
2da6caeaa6
Update the Null effect so it can act as a guide to new effects
2013-05-25 17:42:34 -07:00
Chris Robinson
e157238ce7
Use vtables for setting effect properties
2013-05-24 23:26:59 -07:00
Chris Robinson
49446c7b32
Set cmake policy CMP0005 and avoid unnecessary escape sequences
2013-05-24 23:25:35 -07:00
Chris Robinson
f105a8bb4b
Add quotes around an ADD_DEFINITIONS parameter
2013-05-24 10:36:55 -07:00
Chris Robinson
18807e06fe
Check for __restrict in a way to make MSVC happy, hopefully
2013-05-24 00:45:25 -07:00
Chris Robinson
357cf72ab3
Move remaining effects to the effects subdir
2013-05-23 21:33:16 -07:00
Chris Robinson
2376683128
Move reverb to the effects subdir
2013-05-23 19:48:24 -07:00
Chris Robinson
f667c028e6
Move the AL_EFFECT_NULL state into a separate file
2013-05-23 18:50:07 -07:00
Chris Robinson
dbb6da8c47
Reword a couple cmake option names
2013-05-23 17:27:57 -07:00
Chris Robinson
4f068b51e5
Don't explicitly check for fesetround
...
It's C99 standard with fenv.h, which we already check for.
2013-05-22 23:23:45 -07:00
Chris Robinson
be4a4d7468
Use fegetenv/fesetenv to backup and restore the FPU state
2013-05-22 23:05:26 -07:00
Chris Robinson
eb15b13ca1
Merge the fesetround FPU handler with the assembly one
...
The assembly is only needed for SSE since we can't access the intrinsics
without the -msse switch, which itself would cause SSE code to be generated
elsewhere automtically.
2013-05-22 22:21:00 -07:00
Chris Robinson
38a9e642df
Check for SSE2 and set the denormals-are-zero bit for mixing if available
2013-05-22 17:04:37 -07:00
Chris Robinson
b80efeb87d
Set the correct SSE bits for round-to-zero
2013-05-22 16:31:43 -07:00
Chris Robinson
52efb8d7f4
Use restrict instead of RESTRICT
2013-05-22 15:11:39 -07:00
Chris Robinson
a6fa4a8bc2
Recognize DSSPEAKER_5POINT1_SURROUND (and 7POINT1) with DSound
2013-05-22 14:25:33 -07:00
Chris Robinson
1bed3cff21
Remove an unnecessary check for vsnprintf
2013-05-22 14:24:30 -07:00
Chris Robinson
cdbb0722f6
Avoid using a temp buffer for al_print
...
It's now using two *printf calls, which unfortuantely means there could be a
race between the two and cause the message to break up if something else tries
to print to the same file. This shouldn't really be a big deal since al_print
isn't used that often, and it now allows for lines of practically unlimited
length.
2013-05-22 03:02:39 -07:00
Chris Robinson
2eb8a520d4
Add casts to silence MSVC
2013-05-22 00:07:23 -07:00
Chris Robinson
0a07ed14c2
Rename DELETE to DELETE_OBJ
...
Because Windows.
2013-05-21 23:42:40 -07:00
Chris Robinson
604726c639
Add a DELETE macro to help destroy objects
2013-05-21 13:27:27 -07:00
Chris Robinson
eaccaa5028
Rename the effect state's Destroy method to Destruct
2013-05-21 13:02:56 -07:00
Chris Robinson
a5d94f5d09
Use factories to create and destroy effect states
2013-05-21 12:47:18 -07:00
Chris Robinson
af1936be5d
Remove some unused code
2013-05-21 07:24:53 -07:00
Chris Robinson
e4186f4903
Use a properly-defined history for the FILTER struct
2013-05-21 07:10:24 -07:00
Chris Robinson
3ee0f8feb9
Avoid storing the device frequency in the equalizer
2013-05-21 05:33:54 -07:00
Chris Robinson
5c8c40afef
Auto-generate wrappers to upcast objects before calling user methods
2013-05-21 05:02:25 -07:00
Chris Robinson
5516d8df0b
Use macros to help define vtables for effect states
2013-05-21 04:18:02 -07:00
Chris Robinson
fba9ac6db1
Avoid storing the device frequency in the distortion state
2013-05-21 02:43:59 -07:00
Chris Robinson
de387c853f
The effect state being destroyed can't be NULL
2013-05-21 02:37:27 -07:00
Chris Robinson
44da54ec7f
Rename some inheritance macros
2013-05-21 02:30:11 -07:00
Chris Robinson
b6da74b6e2
Pre-scale the chorus and flanger delays to be in samples
2013-05-21 01:59:44 -07:00
Chris Robinson
7e9960f7f1
Avoid storing some chorus and flanger properties in the effect state
2013-05-21 01:38:43 -07:00
Chris Robinson
c6872d4d86
Process 64 samples at a time for chorus and flanger effects
2013-05-20 04:41:03 -07:00
Chris Robinson
5b706f3bdc
Process 64 samples at a time for some effects
...
This should help with the non-interleaved samples of the output, and
allow skipping channels that don't contribute to the output.
2013-05-20 04:16:48 -07:00
Chris Robinson
80459b13e4
Split flanger delay calculation into separate methods
2013-05-20 03:41:32 -07:00
Chris Robinson
012fbc36b9
Split chorus delay calculation into separate methods
2013-05-20 02:38:06 -07:00
Chris Robinson
9dae98071f
Fix possible overflow when converting float to int
...
Same as with the mixer, we can only use 25 bits of precision from
floats.
2013-05-20 01:34:14 -07:00
Chris Robinson
4c436b106d
Use some macros to help with deriving types
2013-05-20 01:32:02 -07:00
Chris Robinson
1c523df160
Remove an unused macro
2013-05-20 00:14:36 -07:00
Chris Robinson
6aa722808e
Clear all the old channel gains to 0 before setting them
2013-05-20 00:02:47 -07:00
Chris Robinson
c693e649e6
Fix a potential leak when mmdevapi fails to open
2013-05-19 03:19:19 -07:00