Chris Robinson
8364aa5f6f
ALC_SOFT_pause_device is finished
2014-08-12 08:45:11 -07:00
Chris Robinson
e64d0f83cd
Disable the autowah effect
...
There's apparently some issues with it causing noise or killing the output. It
might be due to the per-sample changes being too harsh for the filter to keep
up with, but it's not something I can take care of in time for release.
This commit should be reverted after release when work on fixing it can resume.
2014-08-06 23:38:05 -07:00
Chris Robinson
f5194a9d8e
Use an ATOMIC_INIT macro instead of ATOMIC_LOAD_UNSAFE
2014-08-03 00:26:21 -07:00
Chris Robinson
87423f046e
Use atomics for the device and context list heads
2014-08-01 02:04:40 -07:00
Chris Robinson
ce046d2f03
Rename ATOMIC_COMPARE_EXCHANGE to ATOMIC_COMPARE_EXCHANGE_STRONG
2014-07-31 04:34:46 -07:00
Chris Robinson
531c0d8e6b
Explicitly pass the address of atomics and parameters that can be modified
2014-07-26 03:00:49 -07:00
Chris Robinson
a3dbe08c8b
Support C11 atomics
2014-07-23 06:36:34 -07:00
Chris Robinson
e4b779c492
Use generic atomics in more places
2014-07-22 18:57:51 -07:00
Chris Robinson
5a339a2a5b
Add macros for generic atomic functionality
2014-07-22 00:20:28 -07:00
Chris Robinson
5de7271bcd
AL_SOFT_source_length is complete
2014-07-05 04:25:37 -07:00
Chris Robinson
fda5bc2bd2
AL_SOFT_MSADPCM is functionally complete
2014-07-03 20:59:44 -07:00
Chris Robinson
8176d2c058
Load soundfont samples into an ALbuffer
...
Also remove ALsoundfont's now-unneeded sample storage functions and struct
fields.
2014-06-29 02:04:05 -07:00
Chris Robinson
81b3395b41
Avoid negating 'negative' variable names
2014-06-20 23:48:58 -07:00
Chris Robinson
be903d67b8
Don't pass the device to HRTF methods
2014-06-20 16:43:14 -07:00
Chris Robinson
fb25a70f95
Don't overwrite the loopback device format with the HRTF format
2014-06-20 15:48:09 -07:00
Timothy Arceri
fc0be88c0f
Add SSE2 and SSE4.1 linear resamplers
...
Currently the only way SSE 4.1 is detected is by using __get_cpuid, i.e. with
GCC. Windows' IsProcessorFeaturePresent does not report SSE4.1 capabilities.
2014-06-06 07:15:00 -07:00
Chris Robinson
2d2bc25fd0
Add an extension string for the in-progress source length extension
...
This is the extension that allows you to get the full length of the source's
buffer queue.
2014-05-26 04:07:50 -07:00
Chris Robinson
3d6ffa282d
Don't resume the backend if there's no contexts
2014-05-24 17:19:52 -07:00
Chris Robinson
5ef5d218c4
Mark a few more functions as const
2014-05-23 10:00:58 -07:00
Chris Robinson
7d997277a0
AL_SOFT_block_alignment is now considered done
2014-05-22 12:27:07 -07:00
Chris Robinson
190ab90c0d
Support the band-pass filter
2014-05-17 08:04:14 -07:00
Chris Robinson
3a26ebef0b
Implementing handling high-pass filter properties
2014-05-17 07:29:50 -07:00
Chris Robinson
1d2504d12e
Make RefCount a non-integer type
...
It should only be accessed through the appropriate functions to ensure proper
atomicity.
2014-05-14 02:47:07 -07:00
Chris Robinson
149df6d4db
Convert the mmdevapi backend to the new backend API
2014-04-25 09:26:53 -07:00
Chris Robinson
32a2f95885
Convert the DSound backend to the new API
2014-04-19 22:54:21 -07:00
Chris Robinson
1353cb0d88
Rename AL_ONCE_INIT to AL_ONCE_FLAG_INIT
2014-04-18 02:21:58 -07:00
Chris Robinson
6c8bf9ec42
Rename althread_once to be more C11-like
2014-04-17 21:39:51 -07:00
Chris Robinson
fbb4cbbe01
Keep TlsDestructors within threads.c
...
This basically makes the threads implementation self-contained in threads.c and
threads.h, except for the UIntMap/RWLock implementations.
2014-04-17 01:09:25 -07:00
Chris Robinson
e5d39a5f4c
Don't use DllMain to call altss destructors
2014-04-17 00:56:02 -07:00
Chris Robinson
c3b1c31d9b
Rename althread_key_ wrappers to altss_ and move it to threads.h/c
2014-04-17 00:11:12 -07:00
Chris Robinson
29cb5058c0
Use a C11-like mutex wrapper instead of CRITICAL_SECTIONs
2014-04-16 01:39:11 -07:00
Chris Robinson
482fb37b68
Recognize NULL as an empty vector/string
2014-04-03 11:13:12 -07:00
Chris Robinson
7b93e10f7a
Use an al_string for the device name
2014-03-28 22:11:34 -07:00
Chris Robinson
af8fda8a4a
Add an al_string type and use it for the device lists
2014-03-28 05:44:19 -07:00
Chris Robinson
20886059fd
Wrap fopen calls under Windows
...
The idea is that all filenames we deal with are encoded as UTF-8, but the
Windows functions that take a char string interpret it using the ANSI codepage.
So instead, we convert the UTF-8 string to a wchar string, and then use the
wchar functions for proper extended character filename support.
2014-03-28 00:37:42 -07:00
Chris Robinson
52deb557d5
Add gain stepping to the send mixers
2014-03-23 16:11:21 -07:00
Chris Robinson
55f851093f
Remove the now-unneeded click removal buffers for the device
...
They are still there for auxiliary sends. However, they should go away soon
enough too, and then we won't have to mess around with calculating extra
"predictive" samples in the mixer.
2014-03-23 07:31:33 -07:00
Chris Robinson
ff63188cc2
Add a generic vector interface and use it for the active effect slots
2014-03-21 01:23:01 -07:00
Chris Robinson
e6e3937fa9
Use flexible array members to pad the device and context structs
...
This helps avoid the convoluted math otherwise required to ensure the default
slot and listener, respectively, are aligned.
2014-03-20 14:49:46 -07:00
Chris Robinson
6ee54fb1f3
Store some source mixing parameters in the active source struct
2014-03-19 13:14:11 -07:00
Chris Robinson
d6f7aac1bb
Use a separate struct for tracking active sources
2014-03-18 19:56:25 -07:00
Chris Robinson
dc74473025
Store the old-style backend funcs in the wrapper
2014-03-17 10:54:27 -07:00
Chris Robinson
308d87b12a
Return the original value from CompExchange*
2014-03-09 03:49:40 -07:00
Chris Robinson
a1c440bd09
Add an extension to support MSADPCM buffer formats
2014-03-04 22:44:30 -08:00
Chris Robinson
f3a87d72b2
Add an extension to alter the block alignment for buffer unpack/pack ops
...
This is for unpacking (reading, e.g. alBufferData) and packing (writing, e.g.
alGetBufferSamplesSOFT) operations. The alignments are specified in sample
frames, with 0 meaning the default (65 for IMA4, 1 otherwise). IMA4 alignment
must be a multiple of 8, plus 1 (e.g. alignment = n*8 + 1), otherwise an error
will occur during (un)packing. Chenging the block alignment does not affect
already-loaded sample data, only future unpack/pack operations... so for
example, this is perfectly valid:
// Load mono IMA4 data with a block alignment of 1024 bytes, or 2041 sample
// frames.
alBufferi(buffer, AL_UNPACK_BLOCK_ALIGNMENT_SOFT, 2041);
alBufferData(buffer, AL_FORMAT_MONO_IMA4, data, data_len, srate);
alBufferi(buffer, AL_UNPACK_BLOCK_ALIGNMENT_SOFT, 0);
2014-03-04 05:53:35 -08:00
Chris Robinson
9f43de62ab
Add a return value to FindHrtfFormat
2014-02-23 20:14:07 -08:00
Chris Robinson
ef8002a832
Check the hrtf config option earlier
...
This is to make sure it tries to find an HRTF-compatible format before reseting
the device, just like when using ALC_HRTF_SOFT.
2014-02-23 20:00:52 -08:00
Chris Robinson
e6e3bdee83
Avoid checking the hrtf config option twice
2014-02-23 19:18:54 -08:00
Chris Robinson
11a7b3e8f8
Avoid duplicating code in alcGetIntegerv
2014-02-01 18:40:36 -08:00
Chris Robinson
112b0f166f
Add an alcGetInteger64vSOFT method and a way to get the device clock
2014-02-01 17:55:42 -08:00