Chris Robinson
7f5074949e
Don't use inline asm with MSVC on 64-bit
2011-10-02 21:44:08 -07:00
Chris Robinson
a05006b06a
Rename some parameters
2011-10-02 07:31:26 -07:00
Chris Robinson
8b2e1fdd9a
Add buffer properties to get the internal format, and the length in bytes, samples, and seconds
...
The provided buffer lengths correspond to the source offsets, in that the byte
length specifies the end of the byte offset (ie, when the buffer is used for a
static source, the offset will range between 0 (inclusive) and the byte length
(exclusive)). Although an application could use the AL_SIZE, AL_CHANNELS,
AL_BITS, and AL_FREQUENCY properties to find the length in samples and seconds,
the byte length cannot be reliably calculated this way.
2011-10-01 06:19:55 -07:00
Chris Robinson
92f95e4d94
Add support for AL_EXT_ALAW
2011-10-01 04:55:03 -07:00
Chris Robinson
a7bbf7a741
Rename LOWPASSFREQCUTOFF to LOWPASSFREQREF
2011-09-30 23:07:15 -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
b6b3ca6e6f
Use inline assembly for fast float-to-int conversions
2011-09-29 03:51:46 -07:00
Chris Robinson
e9da6950ee
Centralize the Lookup and Remove macros
2011-09-24 18:34:45 -07:00
Chris Robinson
e84e38cc19
Make AIRABSORBGAINHF a float type
2011-09-23 22:37:20 -07:00
Chris Robinson
9266a37276
Move ConeScale and ZScale to ALu.c and alu.h, and make them floats
2011-09-23 22:33:37 -07:00
Chris Robinson
ff8ee68852
Add atomic functions for GCC inline asm
2011-09-23 12:42:13 -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
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
145bc6da6b
Be a bit more robust while handling the global device list
2011-09-12 03:57:53 -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
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
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
dd74757319
Add a function to initialize a RWLock
2011-08-31 01:00:19 -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
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
72beb577b6
Lock the context as needed for the defer and process calls
2011-08-29 13:22:07 -07:00
Chris Robinson
de65ee08c9
Make ALCcontext's DeferUpdates field volatile
2011-08-29 11:55:01 -07:00
Chris Robinson
0abe13e3ad
GCC's atomic built-ins were introduced in 4.1.0, so check for that version
2011-08-29 10:51:58 -07:00
Chris Robinson
2ac808ffa2
Fix typo
2011-08-29 01:01:20 -07:00
Chris Robinson
58078e2c1e
Use atomic exchanges when checking for updates to objects' internal parameters
2011-08-29 00:50:55 -07:00
Chris Robinson
01503f8a7b
Use an enum instead of an boolean for some flags
...
They still only hold AL_TRUE or AL_FALSE, but some systems can't properly
handle atomic swaps of 1-byte types.
2011-08-29 00:03:09 -07:00
Chris Robinson
783375af56
Use a list of contexts in the device instead of an array
2011-08-28 19:28:41 -07:00
Chris Robinson
5eceb593e9
Emulate pthread TLS functions in Windows
2011-08-28 17:21:01 -07:00