Commit Graph

1594 Commits

Author SHA1 Message Date
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 2f3bd5b5d9 Move an include to where it makes more sense to be 2011-07-23 05:53:53 -07:00
Chris Robinson fad80a4f92 Don't cast for the float versions of math functions 2011-07-23 05:52:10 -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 14b359beb0 Fix cmake check 2011-07-23 04:36:03 -07:00
Chris Robinson f32876d4bd Check for the finite() function along with _finite() 2011-07-23 04:23:54 -07:00
Chris Robinson 13f9dbe582 Look for ieeefp.h and include it when appropriate 2011-07-23 04:06:29 -07:00
Chris Robinson 8dfa2560b1 Use a better method for determining if shared functions exist 2011-07-23 00:48:19 -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 d5ddc6acee Make sure some state values are finite 2011-07-21 16:18:21 -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
Chris Robinson 9723c553b6 Scale reverb output based on the number of channels
A scale of sqrt(2/numchannels) is used so the perceived volume matches as if it
was stereo output, which seems to match other implementations.
2011-07-20 19:57:24 -07:00
Chris Robinson 6bfb0371eb Make sure some effect property values are finite 2011-07-20 03:33:06 -07:00