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
Chris Robinson
230e784b9e
Trace the name of the created device
2012-02-27 21:57:33 -08:00
Chris Robinson
b78b8f0c82
Use separate loops for getting and checking device attributes
2012-02-25 18:03:33 -08:00
Chris Robinson
504cdadd60
Use an enum for the device type
2012-02-23 15:25:30 -08:00
Chris Robinson
45b9cbe2b3
Only probe for devices when a backend is loaded
2012-02-20 22:12:48 -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
40bb8bd9dc
Remove the trailing double-underscore from a couple env vars
2012-02-19 17:24:01 -08:00
Chris Robinson
03ec2d6fc7
Check for the ALSOFT_DRIVERS env var for a list of backend drivers
...
This overrides the 'drivers' config option
2012-02-19 14:27:00 -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
6dc194ed1d
Fix a misnamed variable
2012-02-19 11:56:01 -08:00
Chris Robinson
1aa69e77e9
Print a warning if using the 'format' config option
2012-02-19 11:54:24 -08:00
Chris Robinson
6ac16867b4
Only set a default slot for non-NULL effect types
2012-02-18 17:09:08 -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
9afd6b2858
Separate the format config option into channels and sample-type
2012-02-15 15:22:44 -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
425ff7cb00
Combine a couple if checks
2012-02-15 11:28:19 -08:00
Chris Robinson
1140b3ae83
Support signed and unsigned 32-bit int output
2012-02-14 11:44:57 -08:00
Chris Robinson
e394d14cda
Use more proper enum names for the resampler
2012-02-12 08:45:19 -08:00
Chris Robinson
ef68aa39f8
Rename non_virtual_channels to direct_channels
2012-02-09 23:35:17 -08:00
Chris Robinson
c211f1d3fe
Don't enable BS2B for loopback devices
2012-02-07 07:06:38 -08:00
Chris Robinson
0107e74986
Use an enum for static const values
2012-01-31 03:43:52 -08:00
Chris Robinson
4393b6b05f
Only initialize the default reverb effect when a slot is available
2012-01-29 22:49:17 -08:00
Chris Robinson
1d1440ac64
Make sure context attributes are specified for loopback devices
2012-01-26 16:31:46 -08:00
Chris Robinson
119768001c
Make sure InitializeEffect on the default slot doesn't set a context error
2012-01-26 14:46:52 -08:00
Chris Robinson
3ee92a2b33
Return the error code from UpdateDeviceParams
2012-01-25 20:00:34 -08:00
Chris Robinson
f87b607a53
Make sure the attributes list specifies a format for loopback devices
2012-01-25 19:54:55 -08:00
Chris Robinson
f520257463
Avoid duplicating some initialization code
2012-01-20 16:23:15 -08:00
Chris Robinson
e52e4b1a8c
Not all devices will have a default effect slot
2012-01-20 12:53:41 -08:00
Chris Robinson
b375897374
Remove an unnecessary else statement
2012-01-20 12:20:24 -08:00
Chris Robinson
fa36435290
Add a default-reverb config option, and rename __ALSOFT_FORCE_REVERB to match
2012-01-20 01:51:27 -08:00
Chris Robinson
37b17c8c78
Add the ability to specify a preset for forced reverb
2012-01-19 20:02:57 -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
5a2a534240
Report parameter request changes in UpdateDeviceParams
2012-01-17 15:55:37 -08:00