Chris Robinson
412cec73de
Avoid a temporary throw-away buffer for mixing null output
2011-08-12 15:42:36 -07:00
Chris Robinson
a72c0f7470
Use an existing function to clear and free the context
2011-08-12 05:40:09 -07:00
Chris Robinson
45a245d7de
Round the HRTF sample step count
2011-08-11 21:43:21 -07:00
Chris Robinson
1e60481040
Use ARM Neon vector ops to apply HRTFs when available
2011-08-11 19:02:45 -07:00
Chris Robinson
cda4c738e8
Don't declare i in a for() statement
2011-08-08 13:34:42 -07:00
Chris Robinson
f7c176e8ca
Use a message thread to handle MMDevAPI backend methods
...
Because MMDevAPI uses COM, CoInitialize must be called on the thread(s) where
the device calls are made. OpenAL has no such requirement, thus no guarantee
that COM will be (or remain) initialized on the calling thread(s).
2011-08-03 10:42:29 -07:00
Chris Robinson
3e2bc847d8
Avoid closing devices and deinitializing backends on process exit
...
They are still closed and deinitialized when the DLL is simply being detached
(via FreeLibrary), however.
2011-08-03 09:46:18 -07:00
Chris Robinson
b5092a6212
Delay reading the config file on Windows, too
2011-08-03 09:37:58 -07:00
Chris Robinson
81d401eab5
Use specialized click removal loops for mono and stereo output
2011-07-30 05:43:47 -07:00
Chris Robinson
f986f7dfad
Wait until all headers are unprepared before freeing the buffer
2011-07-28 08:27:52 -07:00
Chris Robinson
bcbc1dea25
Make the thread event auto-resetting
2011-07-28 08:23:19 -07:00
Chris Robinson
c8326ab328
Remove the unnecessary wave header event
...
It's only ever set before sending the quit message, which will set the thread
event. It's also only waited on just before the thread event is used to signal
the end of the thread.
2011-07-28 08:18:43 -07:00
Chris Robinson
91c6bc58dc
Use unnamed events for winmm
2011-07-28 08:16:09 -07:00
Chris Robinson
c722579c18
Make the DSound and MMDevAPI events initially non-signaled
2011-07-24 05:29:43 -07:00
Chris Robinson
2f3bd5b5d9
Move an include to where it makes more sense to be
2011-07-23 05:53:53 -07:00
Chris Robinson
fad80a4f92
Don't cast for the float versions of math functions
2011-07-23 05:52:10 -07:00
Chris Robinson
1b0a55f44c
Use real-time priority by default on Windows
...
It's actually "time-critical", but it seems normal priority doesn't cope as
well when the system is under moderate load.
2011-07-23 05:44:55 -07:00
Chris Robinson
14b359beb0
Fix cmake check
2011-07-23 04:36:03 -07:00
Chris Robinson
f32876d4bd
Check for the finite() function along with _finite()
2011-07-23 04:23:54 -07:00
Chris Robinson
13f9dbe582
Look for ieeefp.h and include it when appropriate
2011-07-23 04:06:29 -07:00
Chris Robinson
8dfa2560b1
Use a better method for determining if shared functions exist
2011-07-23 00:48:19 -07:00
Chris Robinson
0c8c3b16d2
Round UpdateSize to the nearest multiple of MMDevAPI's period size
2011-07-21 18:53:15 -07:00
Chris Robinson
3d2812bd35
Reset the MMDevAPI and DSound events before starting playback
2011-07-21 17:04:33 -07:00
Chris Robinson
a0e5cbc47f
Fix DSound UpdateSize calculation when NumUpdates is clamped
2011-07-21 16:53:25 -07:00
Chris Robinson
d5ddc6acee
Make sure some state values are finite
2011-07-21 16:18:21 -07:00
Chris Robinson
30750d8763
Create and close the DSound event handle with the device
2011-07-21 03:38:43 -07:00
Chris Robinson
3e4659076a
Use an event to signal the mmdevapi backend to mix
...
Also, use a multiple of the default period size for the update size, since the
event apparently triggers on period boundaries.
2011-07-21 03:32:20 -07:00
Chris Robinson
7cd6327969
Use DSound notifications to wake up the mixer thread
2011-07-21 02:48:09 -07:00
Chris Robinson
77128d298e
Add an option to emulate EAX reverb using standard reverb
2011-07-20 22:53:46 -07:00
Chris Robinson
1e8a379a03
Add a config option to boost reverb output
2011-07-20 22:26:16 -07:00
Chris Robinson
b889823b21
Set real-time priority for the WaveOut backend
2011-07-20 19:59:47 -07:00
Chris Robinson
9723c553b6
Scale reverb output based on the number of channels
...
A scale of sqrt(2/numchannels) is used so the perceived volume matches as if it
was stereo output, which seems to match other implementations.
2011-07-20 19:57:24 -07:00
Chris Robinson
6bfb0371eb
Make sure some effect property values are finite
2011-07-20 03:33:06 -07:00
Chris Robinson
1348bf2476
Make sure some listener property values are finite
2011-07-20 03:27:05 -07:00
Chris Robinson
36446f3a58
Make sure source vectors are finite values
2011-07-20 03:18:46 -07:00
Chris Robinson
5a484f7493
Look for an isfinite function
2011-07-20 03:18:11 -07:00
Chris Robinson
244d60fb96
Slightly improve the gain change delta calculation
2011-07-19 00:43:31 -07:00
Chris Robinson
0ae9638aa5
Add a lost comment
2011-07-18 17:44:37 -07:00
Chris Robinson
55b893c784
Improve buffer metrics when using the MMDevAPI backend
2011-07-17 19:42:03 -07:00
Chris Robinson
c9b6bc848f
Simplify some reverb update calculations
2011-07-17 17:51:13 -07:00
Chris Robinson
f97310c757
Apply the click removal offset first, before decreasing it
2011-07-17 07:23:19 -07:00
Chris Robinson
87b3520d02
Fix GetMovingHrtfCoeffs return type
2011-07-17 07:16:10 -07:00
Chris Robinson
887de0523f
Scale the delay down once for the post-stepping mix loop
2011-07-17 02:34:35 -07:00
Chris Robinson
a7a1f802a8
Invert the device channel map
2011-07-17 01:55:25 -07:00
Chris Robinson
163cc62a00
Add a couple new functions to handle deferred updates
...
Currently no-ops, they will be used in place of alcSuspendContext and
alcProcessContext for batching updates since the mentioned functions have no
coherent functionality between system implementations.
2011-07-16 16:59:20 -07:00
Chris Robinson
5f566ebf05
Fade between HRTF coefficients, to reduce noise from sudden changes
2011-07-16 16:24:01 -07:00
Chris Robinson
1622986467
Fix some format types
2011-07-16 04:21:40 -07:00
Chris Robinson
ce6db53e5f
Apply the slot gain during the effect update method
2011-07-16 03:35:51 -07:00
Chris Robinson
292ea0607d
Request a slot update when the gain changes
2011-07-16 03:15:28 -07:00
Chris Robinson
3bd7256dc8
Pass the effect slot to the effect update method
2011-07-16 03:02:16 -07:00