Commit Graph

2080 Commits

Author SHA1 Message Date
Chris Robinson 24e763f2a1 Get rid of ALCdevice_Lock/Unlock 2018-12-29 14:00:34 -08:00
Chris Robinson 71a4d6db6f Return a unique_ptr for the backend 2018-12-29 02:16:16 -08:00
Chris Robinson 3d92e8c4df Convert the backends to use proper inheritence 2018-12-28 22:56:20 -08:00
Chris Robinson 515edc3dee Fix ring buffer vector methods 2018-12-27 15:05:12 -08:00
Chris Robinson 4dca2f2ee5 Use a unique_ptr for the AsyncEvents ringbuffer 2018-12-27 10:44:02 -08:00
Chris Robinson c3f370fa41 Constify and reorder a couple device fields 2018-12-27 10:25:09 -08:00
Chris Robinson d367093c06 Use std::array for appropriate source and listener properties 2018-12-26 22:27:34 -08:00
Chris Robinson a4ac43b602 Avoid a lambda to find a not-null entry in an array 2018-12-26 21:55:39 -08:00
Chris Robinson 8a0295503d Clean up the ring buffer struct and use member functions 2018-12-26 21:22:17 -08:00
Chris Robinson 4f253a935a Handle HRTF coefficients and values by reference where possible 2018-12-26 15:35:05 -08:00
Chris Robinson b2665a503f Do some pre-mixing fading checks once before preparing to mix 2018-12-25 19:54:14 -08:00
Chris Robinson 208ea76922 Cleanup some includes 2018-12-25 11:09:41 -08:00
Chris Robinson 8336de6653 Rename a couple filter files for consistency 2018-12-25 10:28:02 -08:00
Chris Robinson 63df7cd537 Construct AsyncEvent objects directly in the ringbuffer 2018-12-25 09:32:38 -08:00
Chris Robinson fbae41020d Remove extraneous typedef, struct, and enum keywords 2018-12-24 19:29:01 -08:00
Chris Robinson 194e7ff815 Add an in-progress extension to set the effect slot target 2018-12-24 15:52:37 -08:00
Chris Robinson bbf9e6931c Propagate an effectslot target property 2018-12-24 15:17:38 -08:00
Chris Robinson ae86aef4db Provide effect target parameters through a common struct 2018-12-24 13:29:36 -08:00
Chris Robinson 68352d3188 Apply the limiter before distance compensation 2018-12-24 07:30:01 -08:00
Chris Robinson 3fe38fed7c Mix effect slot output to the effect target if it's set 2018-12-23 08:51:28 -08:00
Chris Robinson e218999b4f Dynamically sort the effect slots when mixing
This is to be able to support effects that output to other effects. When an
effect outputs to another effect, the former needs to process first, so the
former mixes to the latter's buffer before the latter is processed.

This sorting needs to happen in the mixer because the effect slot's "Target"
property changes asynchronously.
2018-12-22 22:31:26 -08:00
Chris Robinson 86caf2683e Constify a parameter 2018-12-22 18:43:34 -08:00
Chris Robinson 334b3a905a Clean up some math stuff 2018-12-22 16:01:14 -08:00
Chris Robinson 87724db6e3 Rename a couple HRTF structs 2018-12-22 09:20:50 -08:00
Chris Robinson 7744e4ff72 Pass RealMixParams by reference instead of pointer 2018-12-20 13:26:39 -08:00
Chris Robinson 0214a11024 Use inline methods for the device format sizes 2018-12-19 05:57:36 -08:00
Chris Robinson b49e8985a4 Don't hardcode the channel count from the device ambisonic order 2018-12-19 03:13:15 -08:00
Chris Robinson e2896dc839 Combine handling of attribute processing 2018-12-18 09:27:00 -08:00
Chris Robinson e0f635b20d Move some ambisonic-related macros to a separate header 2018-12-15 03:30:47 -08:00
Chris Robinson 2d13e0af29 Add macros for the ambisonic order masks 2018-12-14 23:26:44 -08:00
Chris Robinson d18ae81e9c Add POPCNT32 and CTZ32 macros 2018-12-13 22:05:47 -08:00
Chris Robinson b779ebb512 Fix some MSVC conversion warnings 2018-12-12 21:18:31 -08:00
Chris Robinson 5a283c66ee Use proper classes for Vector and Matrix types 2018-12-12 04:22:11 -08:00
Chris Robinson e87eb07db4 A bit more cleanup 2018-12-10 21:30:22 -08:00
Chris Robinson ed18fd76c5 Clean up a few more loops 2018-12-10 14:49:57 -08:00
Chris Robinson efb8e076c7 Pass a reference to an array for a function parameter 2018-12-09 15:21:24 -08:00
Chris Robinson e5db9b2378 Avoid static global initialization functions 2018-12-08 21:58:44 -08:00
Chris Robinson c9f5617f06 Avoid several uses of memset 2018-12-08 14:22:20 -08:00
Chris Robinson 5a9a2cb1ed Increase GAIN_MIX_MAX 2018-12-08 04:10:59 -08:00
Chris Robinson 5ea3c8fb60 Use member functions for BFormatDec and AmbiUpsampler 2018-12-08 02:50:34 -08:00
Chris Robinson 0f24139b57 Use a constructor instead of a macro to initialize AsyncEvent 2018-12-06 22:24:20 -08:00
Chris Robinson 10b39d57d5 Use class methods for the NFC filters 2018-12-05 15:20:52 -08:00
Chris Robinson 6409910543 Handle EventType_BufferCompleted uniquely 2018-12-04 16:33:26 -08:00
Chris Robinson 31b54eb86a Avoid a few more explicit loops 2018-12-03 01:41:52 -08:00
Chris Robinson 85e83bbdff Use a std::string for the source state change message 2018-12-02 19:34:09 -08:00
Chris Robinson 45b65366bb Improve some checks for compiler analysis 2018-12-02 15:29:26 -08:00
Chris Robinson 60254488e9 Add a couple missing source lock guards 2018-12-02 14:36:53 -08:00
Chris Robinson 4e17ad3ec0 Avoid a few more explicit loops 2018-12-02 13:35:07 -08:00
Chris Robinson cc161fe7c1 Add a missing include 2018-12-01 01:12:05 -08:00
Chris Robinson 7b1548af3c Handle source state changed events uniquely in the event loop
To avoid the need of constructing the string in the mixer thread, which is
commonly formatted anyway.
2018-11-30 21:39:59 -08:00