Chris Robinson
45bb010b28
Shorten a warning
2012-09-14 05:05:20 -07:00
Chris Robinson
f4642953d4
Warn about SSE performance with non-multiple-of-4 update sizes
2012-09-11 11:17:41 -07:00
Chris Robinson
7e81918f7b
Update HRTF code
...
This update allows for much more flexibility in the HRTF data. It also allows
for HRTF table file names to include "%r" to represent the device's playback
rate (e.g. if you set hrtf-%r.mhr, then it will try to use hrtf-44100.mhr or
hrtf-48000.mhr depending if the device's output rate is 44100 or 48000,
respectively).
The makehrtf utility has also been updated to support more options and input
file formats, as well as the new mhr format.
2012-09-11 02:11:51 -07:00
Chris Robinson
332d66c183
Make sure device buffers are 16-byte aligned
2012-08-29 01:40:42 -07:00
Chris Robinson
bc1ce7b3ac
Add methods to get source properties as doubles
2012-08-20 15:26:35 -07:00
Chris Robinson
50fa9a44be
Properly export alGetSource3i64SOFT
2012-08-20 14:48:08 -07:00
Chris Robinson
37924887e8
Use a default method to provide a dummy latency
2012-08-19 12:31:59 -07:00
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
2b020040b4
Keep the backend device open until the last reference is released
...
This should generally happen with the next ALCdevice_DecRef call unless the
device is in the middle of being used in another thread, in which case it's
probably best to not remove the resources.
2012-08-18 14:49:42 -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
c9e87a19a9
Add cmake options to disable or require support for CPU extensions
2012-08-15 01:24:50 -07:00
Chris Robinson
e9a20cb985
Add an SSE-enhanced HRTF mixer using intrinsics
...
Not as good as it could be, but it's something
2012-08-14 03:53:07 -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
8304fc1bef
Handle the scalar values a bit better
2012-08-11 06:20:24 -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
6bd535bed0
Use wrappers for float-typed math functions
2012-06-29 02:12:36 -07:00
Chris Robinson
583dc8dbca
Don't use all caps for enum value names
2012-06-28 18:49:49 -07:00
Chris Robinson
ef1f8aa9a0
Don't needlessly verify a device
2012-06-19 00:25:45 -07:00
Chris Robinson
259e4f5b38
Rename AllDevice -> AllDevices
2012-05-09 16:28:16 -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
549d542a31
Reorganize some ALsource fields
2012-04-27 01:36:13 -07:00
Chris Robinson
77f55da6c7
Use a macro to declare the function and enum list members
2012-04-20 22:38:03 -07:00
Chris Robinson
0ad8047820
Combine ALCenum and ALenum lists
2012-04-20 01:24:58 -07:00
Chris Robinson
2115f578e9
Reorganize ALC functions and fixup some comments
2012-04-20 01:18:38 -07:00
Chris Robinson
d6491e21f9
Remove some more hungarian notation
2012-04-19 23:28:34 -07:00
Chris Robinson
5418519637
Remove some more hungarian notation
2012-04-19 23:00:58 -07:00
Chris Robinson
b023dbe7b8
Remove hungarian notation from the device and context structs
2012-04-19 22:50:11 -07:00
Chris Robinson
f6a1e53f19
Read ALSOFT_TRAP_*ERROR when reading the config
2012-04-16 20:13:50 -07:00
Chris Robinson
b7d67d8bcc
Don't error when querying unknown enums for the channel config and sample format
2012-03-15 15:22:58 -07:00
Chris Robinson
7e5b13aabd
Finalize ALC_SOFT_loopback
2012-03-15 15:21:15 -07:00
Chris Robinson
767a5b3c73
Mark the GlobalContext pointer as volatile
2012-03-14 00:13:16 -07:00
Chris Robinson
3b517bfa59
Initialize the default effect after opening the device
2012-03-13 19:02:26 -07:00
Chris Robinson
e356527a88
Rename GetReverbEffect to LoadReverbPreset
2012-03-13 15:48:51 -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
f7f1dd1346
Initialize the default effect when opening the device and update it with the other effect slots
2012-03-13 15:07:38 -07:00
Chris Robinson
92ccacdc77
Pass the device to InitializeEffect and return the error enum from it
2012-03-13 14:58:34 -07:00
Chris Robinson
b5ed2a5351
Pass a device to the effect update functions
2012-03-13 14:49:58 -07:00
Chris Robinson
55c5e4fe92
Rename ForcedEffect to DefaultEffect
2012-03-13 14:38:09 -07:00
Chris Robinson
1f3c1091d3
Finalize AL_SOFT_direct_channels
2012-03-12 22:46:13 -07:00
Chris Robinson
1a4a0abd1a
Pin the DLL for Windows
...
The mmdevapi backend does not react well to being unloaded dynamically. It has
a message-handling thread running in the background which can't quit before
DllMain is called with DLL_PROCESS_DETACH, at which point it's too late to
safely message and wait for it shutddown, thus it can continue running after
the DLL is unloaded from memory.
2012-03-08 17:42:16 -08:00
Chris Robinson
6623f69476
Mark the device as running for capture, too
2012-03-05 15:10:02 -08:00
Chris Robinson
db36574667
Hold the list lock while calling the backend
...
Pretty ugly, but we mustn't hold the device lock
2012-03-05 14:53:25 -08: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
5cdeeb47f3
Avoid some uninitialized warnings
2012-03-05 00:28:57 -08:00
Chris Robinson
302c08a14b
Enforce range limits on periods and period_size.
2012-03-04 05:44:37 -08:00
Chris Robinson
f784aa704d
Make sure the device gets stopped when closing even if there's no contexts
2012-03-02 00:10:24 -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
2285c79ded
Give "OpenAL Soft" for the standard device name
2012-02-28 03:36:16 -08:00