Chris Robinson
e51295c79e
Don't scale the wet send by the number of channels
...
Each channel should be treated as a distinct audio source, so multiple channels
should act as multiple sources.
2011-08-19 03:59:57 -07:00
Chris Robinson
b40aa8636b
Remove a couple unneeded variables
2011-08-19 03:01:57 -07:00
Chris Robinson
b3645df56f
Delete the mutex if the device fails to open
2011-08-19 02:58:21 -07:00
Chris Robinson
711f0a29ec
Make sure there's a valid backend before trying to open a device
2011-08-19 02:55:36 -07:00
Chris Robinson
e8e1286572
Remove the "via *" portion of the enumerated devices
2011-08-19 01:59:03 -07:00
Chris Robinson
3d722b9ba0
Don't remove backends that fail to initialize
2011-08-19 01:54:55 -07:00
Chris Robinson
4ac0a507e0
Use only the first available backend for playback or capture devices
...
This should help cut down on the number of duplicate devices when enumerating
on a system that supports multiple backends. It will also avoid the problem of
backends that don't play well with others (eg, PulseAudio).
2011-08-19 01:41:16 -07:00
Chris Robinson
d54908d946
Attempt to connect a context when pulseaudio initializes
2011-08-19 01:40:16 -07:00
Chris Robinson
6ba5128f72
Use separate lists for playback and capture backends
2011-08-19 00:30:05 -07:00
Chris Robinson
c96a6c2b1b
Remove a typedef
2011-08-18 23:58:00 -07:00
Chris Robinson
0b0588cc37
Load backend libs on init
2011-08-18 23:56:11 -07:00
Chris Robinson
742bb12498
Make DSoundLoad return a boolean
2011-08-18 01:17:42 -07:00
Chris Robinson
f00017c8c1
Avoid some LP types
2011-08-18 00:31:44 -07:00
Chris Robinson
d976d02936
Only attempt to load MMDevApi and DSound once, on init
2011-08-18 00:13:43 -07:00
Chris Robinson
45f0886eba
Set the proper union member to 0
2011-08-17 20:44:05 -07:00
Chris Robinson
057fef88ae
Remove backends that fail to initialize
2011-08-17 06:15:43 -07:00
Chris Robinson
8148626ba3
Allow the backend init functions to return failure
2011-08-17 06:05:26 -07:00
Chris Robinson
14ffb8bd9b
Coalesce some mixer sample converters
2011-08-17 02:33:25 -07:00
Chris Robinson
2f8510db31
Avoid reading some more source parameters multiple times when updating
2011-08-17 01:54:09 -07:00
Chris Robinson
38a4d9a6c5
Get rid of the remaining min/max usage
2011-08-16 18:53:04 -07:00
Chris Robinson
9f5bf5f930
Rename minF/maxF/clampF to minf/maxf/clampf for consistency
2011-08-16 18:40:21 -07:00
Chris Robinson
04dad28228
Use mini/maxi/clampi and minu/maxu/clampu to replace min/max calls
2011-08-16 18:33:10 -07:00
Chris Robinson
a96f817738
Avoid a float->int->float conversion
2011-08-16 06:13:55 -07:00
Chris Robinson
8a51a7ea2d
Use inline minF/maxF/clampF functions instead of the __min/__max macros
2011-08-16 04:21:58 -07:00
Chris Robinson
b3cb511c06
Fix wet path conehf calculation
2011-08-13 06:58:05 -07:00
Chris Robinson
7e3d02d991
Make sure there's a buffer to render loopback samples to
2011-08-12 15:44:21 -07:00
Chris Robinson
412cec73de
Avoid a temporary throw-away buffer for mixing null output
2011-08-12 15:42:36 -07:00
Chris Robinson
a72c0f7470
Use an existing function to clear and free the context
2011-08-12 05:40:09 -07:00
Chris Robinson
45a245d7de
Round the HRTF sample step count
2011-08-11 21:43:21 -07:00
Chris Robinson
1e60481040
Use ARM Neon vector ops to apply HRTFs when available
2011-08-11 19:02:45 -07:00
Chris Robinson
cda4c738e8
Don't declare i in a for() statement
2011-08-08 13:34:42 -07:00
Chris Robinson
f7c176e8ca
Use a message thread to handle MMDevAPI backend methods
...
Because MMDevAPI uses COM, CoInitialize must be called on the thread(s) where
the device calls are made. OpenAL has no such requirement, thus no guarantee
that COM will be (or remain) initialized on the calling thread(s).
2011-08-03 10:42:29 -07:00
Chris Robinson
3e2bc847d8
Avoid closing devices and deinitializing backends on process exit
...
They are still closed and deinitialized when the DLL is simply being detached
(via FreeLibrary), however.
2011-08-03 09:46:18 -07:00
Chris Robinson
b5092a6212
Delay reading the config file on Windows, too
2011-08-03 09:37:58 -07:00
Chris Robinson
81d401eab5
Use specialized click removal loops for mono and stereo output
2011-07-30 05:43:47 -07:00
Chris Robinson
f986f7dfad
Wait until all headers are unprepared before freeing the buffer
2011-07-28 08:27:52 -07:00
Chris Robinson
bcbc1dea25
Make the thread event auto-resetting
2011-07-28 08:23:19 -07:00
Chris Robinson
c8326ab328
Remove the unnecessary wave header event
...
It's only ever set before sending the quit message, which will set the thread
event. It's also only waited on just before the thread event is used to signal
the end of the thread.
2011-07-28 08:18:43 -07:00
Chris Robinson
91c6bc58dc
Use unnamed events for winmm
2011-07-28 08:16:09 -07:00
Chris Robinson
c722579c18
Make the DSound and MMDevAPI events initially non-signaled
2011-07-24 05:29:43 -07:00
Chris Robinson
1b0a55f44c
Use real-time priority by default on Windows
...
It's actually "time-critical", but it seems normal priority doesn't cope as
well when the system is under moderate load.
2011-07-23 05:44:55 -07:00
Chris Robinson
0c8c3b16d2
Round UpdateSize to the nearest multiple of MMDevAPI's period size
2011-07-21 18:53:15 -07:00
Chris Robinson
3d2812bd35
Reset the MMDevAPI and DSound events before starting playback
2011-07-21 17:04:33 -07:00
Chris Robinson
a0e5cbc47f
Fix DSound UpdateSize calculation when NumUpdates is clamped
2011-07-21 16:53:25 -07:00
Chris Robinson
30750d8763
Create and close the DSound event handle with the device
2011-07-21 03:38:43 -07:00
Chris Robinson
3e4659076a
Use an event to signal the mmdevapi backend to mix
...
Also, use a multiple of the default period size for the update size, since the
event apparently triggers on period boundaries.
2011-07-21 03:32:20 -07:00
Chris Robinson
7cd6327969
Use DSound notifications to wake up the mixer thread
2011-07-21 02:48:09 -07:00
Chris Robinson
77128d298e
Add an option to emulate EAX reverb using standard reverb
2011-07-20 22:53:46 -07:00
Chris Robinson
1e8a379a03
Add a config option to boost reverb output
2011-07-20 22:26:16 -07:00
Chris Robinson
b889823b21
Set real-time priority for the WaveOut backend
2011-07-20 19:59:47 -07:00