1365 Commits

Author SHA1 Message Date
Chris Robinson
b375b130ba Add config options for card- and device-specific prefixes in ALSA device names 2012-02-11 09:36:40 -08:00
Chris Robinson
3fb6351212 Format the ALSA device name when enumerating them 2012-02-11 06:55:24 -08:00
Chris Robinson
61be01efc1 Rename SpeakerGain to ChannelGain 2012-02-10 00:29:47 -08:00
Chris Robinson
23bda38be0 Match the 7.1 channel angles with the speakers 2012-02-09 23:59:24 -08:00
Chris Robinson
e6a0dd10a9 Pre-scale the channel angles 2012-02-09 23:52:20 -08:00
Chris Robinson
ef68aa39f8 Rename non_virtual_channels to direct_channels 2012-02-09 23:35:17 -08:00
Chris Robinson
b4b492c417 Improve checks for supported output formats from ALSA 2012-02-09 22:26:16 -08:00
Chris Robinson
18f87b97d5 Always use the default speaker layout for loopback devices 2012-02-07 07:29:34 -08:00
Chris Robinson
c211f1d3fe Don't enable BS2B for loopback devices 2012-02-07 07:06:38 -08:00
Chris Robinson
deb84cfdac Improve a couple error messages with the full ALSA device control name 2012-02-07 07:04:33 -08:00
Chris Robinson
7ad1b45d11 Change the default stereo speaker positions to match the stereo channel positions
A separate "headphones" configuration may be nice to add for -90,+90, however
not many audio APIs can detect this. Ideally HRTF would be used with
headphones too, which largely ignores the speaker positions, however there
could be situations where this is unfeasible or unwanted.
2012-02-04 10:29:19 -08:00
Chris Robinson
0107e74986 Use an enum for static const values 2012-01-31 03:43:52 -08:00
Chris Robinson
15a8e58225 Implement capture for the DirectSound backend
Based on a patch by Jeffrey Knockel <jeff250.at.gmail.com>
2012-01-31 01:47:59 -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
dd3abd0f16 Use sizeof(ALfloat) when finding the max stepping value
The mixer always reads from floats, so the size of the storage type is
unimportant.
2012-01-26 22:33:36 -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
d807c4bf87 Don't process a default device slot if it doesn't exist 2012-01-25 18:48:26 -08:00
Chris Robinson
86ef115e21 Set the source's slot send parameter to NULL if it's the AL_EFFECT_NULL type 2012-01-23 06:29:03 -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
0ef3a30b84 Fix WaveIn shutdown for real
The processing thread must be messaged when shutting down, and depending on the
state of the device, waveInReset may not do it. Additionally, all buffers must
be removed from the device before they can be unprepared and the device closed.
2012-01-20 12:36:23 -08:00
Chris Robinson
b375897374 Remove an unnecessary else statement 2012-01-20 12:20:24 -08:00
Chris Robinson
2b2ce8bf3b Always message the WinMM processing thread when a buffer is done
So the processing thread can keep track of completed buffers when shutting
down, too.
2012-01-20 12:06:31 -08:00
Chris Robinson
47c8c15878 Fix a possible race condition when shutting down WinMM devices
If the processing threads are interrupted between the shutdown check and re-
adding the buffer back to the device, the device can be left with a buffer that
will get unprepared and freed while in use.
2012-01-20 03:02:21 -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
ae7b61b040 Avoid printing messages about device parameter changes in the backends 2012-01-17 16:38:58 -08:00
Chris Robinson
5a2a534240 Report parameter request changes in UpdateDeviceParams 2012-01-17 15:55:37 -08:00
Chris Robinson
09258ca5c1 Change the default output format to 32-bit float 2012-01-17 15:38:36 -08:00
Chris Robinson
e0966d99a1 Retry opening the PortAudio device with 16-bit short if 32-bit float output fails 2012-01-17 15:26:22 -08:00
Chris Robinson
66a700729b Retry opening the DSound device with 16-bit short if 32-bit float output fails 2012-01-17 12:38:47 -08:00
Chris Robinson
a7266442c2 Retry opening the WinMM device with 16-bit short if 32-bit float output fails 2012-01-17 12:21:52 -08:00
Chris Robinson
cf34b9c04e Support 32-bit float in the WinMM backend 2012-01-17 12:17:41 -08:00
Chris Robinson
530597347c Safely insert the new context into the list 2012-01-12 06:13:24 -08:00
Chris Robinson
e772fb7d0e Finalize AL_SOFT_buffer_samples 2012-01-10 01:14:02 -08:00
Chris Robinson
535091e36c Make LockDevice, LockContext, etc, inline 2012-01-09 23:37:03 -08:00
Chris Robinson
18216ab1a9 Remove the warning when a context being released is globally current
Just about every implementation allows this, and there's no direct harm caused
by it. However, leave the warnings for when it's still current on specific
threads, as this can cause issues.
2012-01-01 15:36:31 -08:00
Chris Robinson
5500ed9209 Use the device lock when removing the context from the device's list 2012-01-01 15:22:58 -08:00
Chris Robinson
886f874ff3 Use a proper typedef for handling atomic pointer swaps 2012-01-01 15:00:03 -08:00
Chris Robinson
2691c33b55 Use a string to specify the resampler config option 2011-12-20 01:36:01 -08:00
Chris Robinson
7f6844e48d Use a struct to associate channel enums and their angles 2011-12-20 01:17:11 -08:00
Chris Robinson
a5a929ff72 Restore the old FPU mode if the effects fail to update with new device parameters 2011-12-20 00:35:32 -08:00
Chris Robinson
6a97f6a327 Reset the ALSA device if the number of available samples grows too large 2011-11-28 10:24:24 -08:00
Chris Robinson
dfd02817fa Make ALSA XRUN when the number of available samples exceeds the buffer size 2011-11-28 09:12:30 -08:00
Chris Robinson
222d2363cd Don't fail to insert a map entry when the key exists and the limit is reached 2011-11-26 03:52:07 -08:00
Chris Robinson
14c117ffd3 Initialize listener matrix to identity 2011-11-26 03:37:37 -08:00