Chris Robinson
11365b42c7
Use helper macros to convert between degrees and radians
2013-10-08 12:39:22 -07:00
Chris Robinson
79edd2cf3b
Use a macro for the silence threshold
2013-10-06 17:25:47 -07:00
Chris Robinson
764ea95781
Use helpers to set channel gain arrays
...
Also avoid unnecessary clearing.
2013-10-03 05:02:16 -07:00
Chris Robinson
e96cc656e9
Use C99's inline instead of __inline
2013-05-28 22:27:07 -07:00
Chris Robinson
52efb8d7f4
Use restrict instead of RESTRICT
2013-05-22 15:11:39 -07:00
Chris Robinson
1fb9311d82
Lock the device before calling aluHandleDisconnect
...
PulseAudio causes an assert if being relocked inside a callback on the worker
thread, where aluHandleDisconnect is called. We can assume it's already locked
there, so just make sure the device is locked before being calling it.
2012-12-02 11:30:23 -08:00
Chris Robinson
e2e502970c
Move some math functions to where they're used
2012-10-25 17:24:22 -07:00
Chris Robinson
c802bfccef
Remove the float math wrapper functions
2012-10-25 14:16:35 -07:00
Chris Robinson
a14383d6cc
Constify the direct and send parameters given to the mixer
2012-10-15 01:31:58 -07:00
Chris Robinson
f0d27e5f91
Remove the unused Device parameter
2012-10-14 11:29:28 -07:00
Chris Robinson
3240894cd5
Remove the now-unused Source parameter from the DryMix methods
2012-10-14 11:04:36 -07:00
Chris Robinson
25b8a95987
Check the distance against epsilon to determine if it matches
2012-10-12 07:10:51 -07:00
Chris Robinson
41b2c2f3bb
Remove an unneeded parameter from the resampler
2012-09-27 02:46:15 -07:00
Chris Robinson
7635afcb52
Use a source param for the resampler and move them to the mixer source
2012-09-14 04:13:18 -07:00
Chris Robinson
4f70766b95
Move a couple macros to more appropriate headers
2012-09-14 02:52:37 -07:00
Chris Robinson
9f58edd7a8
Fix up some more header includes
2012-09-14 02:42:36 -07:00
Chris Robinson
0f3a575a09
Don't include alu.h in alMain.h
2012-09-14 02:14:29 -07:00
Chris Robinson
ec74fb9ba2
Enable flush-to-zero mode when possible
2012-09-14 01:10:19 -07:00
Chris Robinson
ff809f2271
Move a couple methods to where they're used
2012-09-12 07:57:50 -07:00
Chris Robinson
98ff6f990a
Do the filtering separately from the mixing
2012-09-11 05:56:19 -07:00
Chris Robinson
4e440fff62
Remove a hack for MinGW
2012-09-10 00:19:13 -07:00
Chris Robinson
81208acd6e
Add missing returns
2012-09-09 21:27:54 -07:00
Chris Robinson
f1ce139997
Use SSE to do 4 samples at once (non-HRTF direct mix), instead of to apply a matrix row
...
MaxCHannels no longer needs to be a multiple of 4 now, either.
2012-09-09 04:02:54 -07:00
Chris Robinson
2bf1979d4a
Move the target effect slot to the SendParams struct
2012-09-08 22:32:30 -07:00
Chris Robinson
89cab3cd39
Remove STACK_DATA_SIZE in favor of BUFFERSIZE
2012-09-08 22:09:34 -07:00
Chris Robinson
1c03025090
Separate the resampling and mixing steps
2012-09-08 21:34:36 -07:00
Chris Robinson
de006947ac
Increase MaxChannels to be a multiple of 4
2012-08-29 01:11:55 -07:00
Chris Robinson
ac4fc4026c
Add a device method to retrieve the active latency
...
This is effectively the time until the next update will be heard by the user,
or the closest approximation thereof, in nanoseconds.
2012-08-17 13:38:52 -07:00
Chris Robinson
6bd535bed0
Use wrappers for float-typed math functions
2012-06-29 02:12:36 -07:00
Chris Robinson
524c88c402
Test the squared length of a vector before normalizing
2012-06-28 20:54:10 -07:00
Chris Robinson
583dc8dbca
Don't use all caps for enum value names
2012-06-28 18:49:49 -07:00
Chris Robinson
befa4e7528
Don't try to set FE_TOWARDZERO when it's not available
2012-06-28 18:27:45 -07:00
Chris Robinson
b4c7b3309a
Only use _FPU_GETCW and _FPU_SETCW for x86 targets
2012-05-03 12:15:51 -07:00
Chris Robinson
aed35fd811
Use ComputeAngleGains for multi-channel sources and remove the unused lookup table stuff
2012-04-29 05:04:46 -07:00
Chris Robinson
611bd0b2d3
Add a method to calculate gains given a sound point and its half-width, and use it for reverb
...
The half-width ranges from 0 to pi, and essentially specifies the coverage area
around the listener. At 0, it's an infinitely small point sound and behaves
like a usual panning sound. At pi/2 it covers half the area, and at pi it
covers the whole area.
2012-04-28 08:21:53 -07:00
Chris Robinson
267d38cf20
Flip the parameters to aluCart2LUTpos, so it behaves a bit more like atan2
2012-04-28 03:58:58 -07:00
Chris Robinson
26456f13e1
Pass the direct/send params to the mixer instead of accessing through the source
2012-04-28 03:31:13 -07:00
Chris Robinson
2450ee1723
Use separate methods for the dry and wet mixing loops
2012-04-27 23:46:51 -07:00
Chris Robinson
2cdb58fb85
The mixer always uses floats
2012-04-26 07:50:17 -07:00
Chris Robinson
68ab232364
Use a separate loop to actually update DataPosFrac and DataPosInt
2012-04-26 06:44:37 -07:00
Chris Robinson
e394d14cda
Use more proper enum names for the resampler
2012-02-12 08:45:19 -08:00
Chris Robinson
9f073b6f1b
Use a proper enum value for setting the default distance model
2012-02-12 08:18:20 -08:00
Chris Robinson
fcf9034c2b
Calculate the listener matrix when a new orientation is specified
...
This is so the matrix isn't derived each time a source is updated, and it will
make supporting user-defined matrices easier.
2011-10-30 08:27:24 -07:00
Chris Robinson
a5c02556e6
Add a work-around for cross-compiling with MinGW
2011-10-27 21:22:00 -07:00
Chris Robinson
75fee8c11f
Add min/max/clamp methods for 64-bit int
2011-10-04 22:39:35 -07:00
Chris Robinson
eb277cc578
Remove some unneeded templates and parameters
2011-10-04 09:55:36 -07:00
Chris Robinson
20fd648729
Convert samples to float when copying to the stack
2011-10-04 09:47:08 -07:00
Chris Robinson
bfa782f329
Define the values for F_PI and F_PI_2 directly instead of using M_PI
2011-09-30 22:53:47 -07:00
Chris Robinson
d3a6de3f86
Set the FPU into single-precision mode for mixer updates
2011-09-29 05:10:15 -07:00
Chris Robinson
f4925a0e6a
Use inline functions to set/restore the FPU mode for mixer updates
2011-09-29 04:03:18 -07:00