Chris Robinson
7fbcb4b9e6
Use the actual distance from the ref distance for air absorption and initial reverb decay
2012-03-14 22:45:52 -07:00
Chris Robinson
767a5b3c73
Mark the GlobalContext pointer as volatile
2012-03-14 00:13:16 -07:00
Chris Robinson
a08080bd82
Avoid modifying the ALCdevice in portaudio's open method
2012-03-13 22:18:51 -07:00
Chris Robinson
415bf58a06
Store the portaudio stream parameters with the device
2012-03-13 21:52:47 -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
3b165809cc
Minor coreaudio fix, and make sure to set the device name
2012-03-13 13:48:42 -07:00
Chris Robinson
5c59e6e704
Try to ensure the full mmdevapi buffer is used
2012-03-13 01:39:57 -07:00
Chris Robinson
ef2f237276
Try to ensure at least 2 mmdevapi updates
2012-03-13 01:35:31 -07:00
Chris Robinson
0af14c7a11
Try to find a multiple of mmdevapi's period size nearest to the wanted update size
2012-03-13 01:32:15 -07:00
Chris Robinson
305d790a19
Revert the default stereo layout back to -90 and +90 degrees
...
For the time being, until better stereo spatialization can be implemented and
headphones can be better detected.
2012-03-12 22:49:10 -07:00
Chris Robinson
1f3c1091d3
Finalize AL_SOFT_direct_channels
2012-03-12 22:46:13 -07:00
Chris Robinson
663b43f4f1
Attempted fix for the coreaudio backend
2012-03-12 21:58:40 -07:00
Chris Robinson
560f34e3df
Channel angle is already in radians, not degrees
2012-03-12 18:29:46 -07:00
Chris Robinson
335232207d
With DirectChannels enabled, don't try to mix channels that have no matching output
2012-03-12 18:27:25 -07:00
Chris Robinson
f7a8e3db35
Don't assume the calculated HRTF delta for the gain difference is less than 1
2012-03-12 13:31:19 -07:00
Chris Robinson
7747c320a8
Remove an unused property key definition
2012-03-12 12:56:52 -07:00
Chris Robinson
842a698f2b
Add a text file explaining OpenAL Soft's HRTF support and data file format
2012-03-11 19:27:40 -07:00
Chris Robinson
f5f519aa80
Properly make the source velocity relative to the listener velocity
2012-03-09 23:53:45 -08:00
Chris Robinson
7db29a2332
Clamp the upper and lower bound of the doppler velocity scale more like the original
2012-03-09 22:38:26 -08:00
Chris Robinson
6e70ae9958
The listener velocity is specified in world coordinates, too
2012-03-08 18:27:05 -08:00
Chris Robinson
e190fc9416
Refactor the doppler shift calculations
2012-03-08 18:19:15 -08: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
dddacc25a5
Store a duplicate of the mmdevapi device ID
2012-03-06 13:15:55 -08:00
Chris Robinson
2ba2da467c
Add a comment explaining the pulseaudio prop_filter
2012-03-06 12:01:15 -08:00
Chris Robinson
f2b64fd111
Update the ALCdevice in winmm's reset method instead of open
2012-03-06 10:14:05 -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
3131104595
Filter out a couple pulseaudio stream properties by setting them to 0-length data
...
It seems Qt/Phonon will globally set media.role and phonon.streamid properties,
causing them to apply even to our streams if they happen to be loaded in the
same process. This is particularly a problem because media.role gets set to
"event", preventing the streams from showing in pavucontrol.
2012-03-05 13:00:51 -08:00
Chris Robinson
f64bdc4bd4
Returned pa_operations can be NULL
2012-03-05 08:37:50 -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
bc1bb7f90f
Print and handle errors from pa_stream_readable_size
2012-03-05 00:11:28 -08:00
Chris Robinson
0f0141b9dd
Set prebuf to 0 since we're handling the stream start manually
2012-03-04 09:24:07 -08:00
Chris Robinson
302c08a14b
Enforce range limits on periods and period_size.
2012-03-04 05:44:37 -08:00
Chris Robinson
b643f13a6e
Make sure the pulse stream is properly started and better handle buffer size changes
2012-03-04 05:30:42 -08:00
Chris Robinson
487d05a73e
Invert a nested loop
2012-03-03 10:31:27 -08:00
Chris Robinson
91ed077eba
Handle BS2B cross-feed right after click removal
2012-03-03 09:41:16 -08:00
Chris Robinson
49433c2074
Slight correction for handling the wave writer backend's timer wrapping
2012-03-03 08:50:15 -08:00
Chris Robinson
a93ff6ef3c
Slight correction for handling the null backend's timer wrapping
2012-03-03 08:47:23 -08:00
Chris Robinson
44e10c4f69
Remove some unneeded pulseaudio calls
2012-03-02 09:46:36 -08:00
Chris Robinson
7a832c4522
Don't unload libpulse
...
This sometimes spawns esoteric errors in dlclose
2012-03-02 09:27:30 -08:00
Chris Robinson
7d0faba424
Remove some unneeded markers
2012-03-02 09:08:17 -08:00
Chris Robinson
01d942628b
Set prebuf to the expected buffer size
...
This is to make sure the stream starts even if PulseAudio increases tlength.
2012-03-02 05:38:11 -08:00
Chris Robinson
2a9012c94d
Don't rely on PulseAudio to wake us up using early requests
2012-03-02 04:51:29 -08:00