Chris Robinson
0865db564f
Move the device lock into the backend function table
...
For backend-specific implementations: this should hold the audio mixer loop for
playback devices, and provide recursive mutex behavior.
2012-08-18 15:58:04 -07:00
Chris Robinson
3ae5fcbd7e
Add the start of AL_SOFT_source_latency
...
This extension will provide a way for apps to get accurate latency and playback
position information
2012-08-18 11:06:39 -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
2859357939
Add wrapper methods to ensure aligned allocations
2012-08-15 05:50:40 -07:00
Chris Robinson
2e18baa3c8
Don't bother handling MMX since we don't use it
2012-08-15 01:29:19 -07:00
Chris Robinson
17dfaa3aae
Add a config option to disable use of CPU extensions
2012-08-13 10:37:49 -07:00
Chris Robinson
add53e28c2
Check for some CPU extensions
2012-08-13 09:07:01 -07:00
Chris Robinson
d6fd52a0e5
Add an option for wide stereo sources
...
Replaces the old stereodup option
2012-08-09 05:38:07 -07:00
Chris Robinson
1323e11701
Interpolate between HRTF delay samples using the delay fraction
2012-07-20 15:08:11 -07:00
Chris Robinson
583dc8dbca
Don't use all caps for enum value names
2012-06-28 18:49:49 -07:00
Chris Robinson
d17f835e74
Remove an unused include
2012-06-19 04:02:55 -07:00
Chris Robinson
259e4f5b38
Rename AllDevice -> AllDevices
2012-05-09 16:28:16 -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
8d9838012d
Remove the stereodup option
...
There's better ways to do it now with "wide" sound sources.
2012-04-29 04:44:53 -07:00
Chris Robinson
67f1cdfcbe
Store the speaker angles in the device
2012-04-27 07:38:17 -07:00
Chris Robinson
5ce850570f
Add try/catch-like macros to handle errors, and convert alSource.c to use them
2012-04-23 19:46:05 -07:00
Chris Robinson
b023dbe7b8
Remove hungarian notation from the device and context structs
2012-04-19 22:50:11 -07:00
Chris Robinson
7e5b13aabd
Finalize ALC_SOFT_loopback
2012-03-15 15:21:15 -07:00
Chris Robinson
07e34cc3cf
Use enums to specify the default channel configuration and sample type
2012-03-13 15:32:44 -07:00
Chris Robinson
1f3c1091d3
Finalize AL_SOFT_direct_channels
2012-03-12 22:46:13 -07:00
Chris Robinson
fe6e532c87
Use a separate backend callback to start playback of the device
...
This allows us to properly update the ALCdevice and its resources with the new
parameters before starting playback, instead of expecting the mixer to block
and wait after it has begun.
This also lets us avoid holding the device lock while resetting and starting
the device, which helps prevent lock inversion on some backends (ie, one thread
locking A then B, and another thread locking B then A), ultimately allowing
certain backends to asynchronously update the ALCdevice without risk of lockup.
Capture still has issues here, however.
2012-03-05 07:11:09 -08:00
Chris Robinson
50ef19720d
Make alcLoopbackOpenDeviceSOFT take a standard "device" name for a parameter
2012-03-01 08:30:21 -08:00
Chris Robinson
8d24bd720f
Don't use GUIDs to ID mmdevapi devices, and don't enumerate if not needed
2012-03-01 06:07:00 -08:00
Chris Robinson
504cdadd60
Use an enum for the device type
2012-02-23 15:25:30 -08:00
Chris Robinson
e2ccc6f98e
Always use "OpenAL Soft" for the short device enumeration list
2012-02-20 20:45:22 -08:00
Chris Robinson
4a65747a4b
Add a COUNTOF macro to get the number of entries in a static array
2012-02-19 12:07:40 -08:00
Chris Robinson
60785eab8e
Move the endian test macro to alMain.h
2012-02-15 21:47:35 -08:00
Chris Robinson
6b272ff585
Add a device parameter to alcLoopbackOpenDeviceSOFT
2012-02-15 20:52:49 -08:00
Chris Robinson
fecd679f33
Add a device request flag for the sample type
2012-02-15 16:26:32 -08:00
Chris Robinson
2ab0e3521c
Remove parameter names from typedefs
2012-02-15 15:23:23 -08:00
Chris Robinson
670c88a64c
Define a minimum output sample rate and warn if the config option goes below it
2012-02-15 12:26:19 -08:00
Chris Robinson
1140b3ae83
Support signed and unsigned 32-bit int output
2012-02-14 11:44:57 -08:00
Chris Robinson
ef68aa39f8
Rename non_virtual_channels to direct_channels
2012-02-09 23:35:17 -08:00
Chris Robinson
47161150d7
Check for a 32-bit x86 processor before using MSVC's asm intrinsics
2012-02-03 19:34:06 -08:00
Chris Robinson
8e6832407a
Only use fast float-to-int GCC assembly for x86 and x86_64 targets
2012-02-03 17:40:21 -08:00
Chris Robinson
51e81f4867
Add a global option to apply a reverb effect on source send 0
...
A special slot on the device is created and processed, so it can be shared
across all contexts on the device. Sources that don't have a slot set on send 0
will use this special slot instead.
2012-01-19 19:30:03 -08:00
Chris Robinson
e772fb7d0e
Finalize AL_SOFT_buffer_samples
2012-01-10 01:14:02 -08:00
Chris Robinson
29ba8f9f1a
Remove the unnecessary AL_MULAW_SOFT, AL_ALAW_SOFT, and AL_IMA4_SOFT defines
2012-01-10 00:59:10 -08:00
Chris Robinson
61af4d715c
Append _SOFT to the AL_SOFT_buffer_samples enums
2012-01-10 00:41:05 -08:00
Chris Robinson
535091e36c
Make LockDevice, LockContext, etc, inline
2012-01-09 23:37:03 -08:00
Chris Robinson
886f874ff3
Use a proper typedef for handling atomic pointer swaps
2012-01-01 15:00:03 -08:00
Chris Robinson
d270188578
Append _SOFT to the ALC loopback format enums
2011-11-01 16:00:47 -07:00
Chris Robinson
81133769de
Return the key's value from the map when it's removed
2011-10-06 06:39:13 -07:00
Chris Robinson
a7d3779dfa
Check for the HRTF object instead of a flag
2011-10-06 01:16:07 -07:00
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