Chris Robinson
b2f4520ba1
Add a few more precision casts
2011-09-22 01:09:02 -07:00
Chris Robinson
a4b1239f45
Use cosf and sinf when available
...
Also clear away a few more MSVC precision warnings
2011-09-22 01:00:44 -07:00
Chris Robinson
390d94ec97
Define _WIN32_WINNT on the command line with _WIN32
2011-09-20 14:59:01 -07:00
Chris Robinson
e01092a0da
Move Sleep implementation into helper.c and emulate sched_yield for Windows
2011-09-20 14:43:53 -07:00
Chris Robinson
e43470da7a
Make a separate log level to trace reference counts, to avoid log spam for traces
2011-09-20 12:24:23 -07:00
Chris Robinson
edb386eb1e
Add a ConfigValueStr function, to return the string through a parameter
2011-09-19 11:29:18 -07:00
Chris Robinson
98b2fa6cb5
Use the ALC types for the device format enum values
2011-09-18 19:43:59 -07:00
Chris Robinson
b615c7d0a2
Use arrays instead of large switches to decompose formats
2011-09-18 19:06:19 -07:00
Chris Robinson
7e06a10f73
Return int and float config values through a parameter
...
This allows the getter functions to return whether or not the option exists
without a separate call and check.
2011-09-18 16:16:55 -07:00
Chris Robinson
0e5c221a3c
Dynamically allocate space for HRTF tables
2011-09-18 10:09:32 -07:00
Chris Robinson
25f7c27043
Store the HRTF tables used in the device
2011-09-18 09:52:40 -07:00
Chris Robinson
fd22226242
Make alcSetError static
2011-09-14 11:58:51 -07:00
Chris Robinson
97024151e4
Return an error from the CaptureSamples method instead of setting it
2011-09-14 02:01:35 -07:00
Chris Robinson
404cfde33e
Rename the ALEffect_ macros to ALeffectState_ to reflect what they work on
2011-09-12 05:59:23 -07:00
Chris Robinson
145bc6da6b
Be a bit more robust while handling the global device list
2011-09-12 03:57:53 -07:00
Chris Robinson
0ceea27b44
Remove the effect slot parameter from the effect process method
2011-09-12 00:44:52 -07:00
Chris Robinson
b4cbb3380a
Fix non-GCC CompExchangePtr implementations
2011-09-11 09:39:29 -07:00
Chris Robinson
8f456f68ff
Remove GetLockedContext
2011-09-11 09:28:30 -07:00
Chris Robinson
6ce420afe3
Use function pointers to set type-specific effect properties
2011-09-11 08:59:47 -07:00
Chris Robinson
d51b93f869
Remove the union from the effect parameter types
2011-09-11 07:42:23 -07:00
Chris Robinson
ab2b62c980
Use function pointers to set type-specific filter properties
2011-09-11 07:34:03 -07:00
Chris Robinson
1fdc25df75
Use a RWLock to protect access to a buffer instead of the device lock
2011-09-11 03:57:40 -07:00
Chris Robinson
d85c12c385
Avoid holding the context lock when setting auxiliary slot properties
2011-09-11 02:01:31 -07:00
Chris Robinson
ccd8cbc2a9
Make some listener properties volatile
2011-09-11 01:26:09 -07:00
Chris Robinson
1075cce7b3
Mark some source properties volatile
2011-09-11 01:18:57 -07:00
Chris Robinson
419294cddd
Avoid locking the device when adding and removing contexts
...
Also, don't keep track of the number of contexts per device
2011-09-10 07:18:29 -07:00
Chris Robinson
b9448a476e
Avoid holding the list lock when not needed
2011-09-10 05:19:08 -07:00
Chris Robinson
e8c9da0124
Add some reference counting to the device
2011-09-10 02:43:07 -07:00
Chris Robinson
18cf6e3210
Fix a parameter type
2011-09-10 02:13:52 -07:00
Chris Robinson
724ad0d893
Add an option to trap context errors in a debugger
2011-09-10 01:12:34 -07:00
Chris Robinson
9080d5fda0
Do an atomic compare-exchange on the global context when destroying a context
2011-09-02 02:57:21 -07:00
Chris Robinson
3a2fa18744
Log the function name instead of the source file and line number
2011-09-02 02:00:37 -07:00
Chris Robinson
e80aa008b2
Combine the reverb effects
...
Updating and processing still differs depending on whether standard or EAX
reverb is used or not. The only functional difference should be that the
allocated buffer (and subsequent offsets) take into account the modulation
and echo times.
2011-09-01 20:06:51 -07:00
Chris Robinson
942c8bf8a7
Combine the dedicated (dialog/LFE) effects
2011-09-01 18:01:14 -07:00
Chris Robinson
b28f48c1bd
Store the filter gains directly in the source instead of duplicate filter objects
2011-08-31 02:18:16 -07:00
Chris Robinson
dd74757319
Add a function to initialize a RWLock
2011-08-31 01:00:19 -07:00
Chris Robinson
ab0b5d9890
Hold the context lock only as needed when handling the listener
2011-08-31 00:33:33 -07:00
Chris Robinson
23f576360c
Avoid locking the context while getting and setting global state
2011-08-31 00:19:27 -07:00
Chris Robinson
9fb91f70aa
Rename GetReffedContext to GetContextRef
2011-08-30 23:28:38 -07:00
Chris Robinson
0a1321aaae
Add a limit to the UIntMap size and use it for sources and effect slots
2011-08-30 20:33:47 -07:00
Chris Robinson
189add1d5a
Use a separate array for the auxiliary slots in the mixer
2011-08-30 20:13:42 -07:00
Chris Robinson
755062fb76
Fix compilation with MSVC
2011-08-30 17:55:52 -07:00
Chris Robinson
7d577832cd
Add functions to retrieve the source from the source map while removing it
2011-08-30 17:32:49 -07:00
Chris Robinson
f02d9e22d7
Do a pointer exchange when replacing the source buffer queue
2011-08-29 23:55:24 -07:00
Chris Robinson
cc67f45892
Use the reference counting functions for the buffer and auxiliary slot refs
2011-08-29 23:10:02 -07:00
Chris Robinson
7408396fd4
Use a generic int type to handle enum swaps
2011-08-29 21:30:12 -07:00
Chris Robinson
da081b81c4
Do a compare-exchange to set the context error
...
This allows for unlocked context access when getting the error
2011-08-29 20:52:13 -07:00
Chris Robinson
e4a2b69b37
Make specific functions to lock/unlock UIntMap access
2011-08-29 20:21:28 -07:00
Chris Robinson
b283dd3682
Use a read-write lock to protect access to the UInt maps
2011-08-29 19:15:22 -07:00
Chris Robinson
4a5dd73a3c
Make the source's NeedsUpdate volatile
2011-08-29 13:43:59 -07:00