Commit Graph

5852 Commits

Author SHA1 Message Date
Chris Robinson 88c2f11dcf Use DeviceRef and ContextRef when creating a new device and context 2019-01-01 22:44:46 -08:00
Chris Robinson 399dfca1e3 Rename ALCdevice_struct and ALCcontext_struct
A (possibly contentious?) change in the public headers. Those names were never
part of any specification, and I don't know why the struct names differed from
the actual type name. But with C++, which takes the original struct declaration
as the original name, it was affecting the type's internal symbols.

This shouldn't affect user code since ALCdevice_struct and ALCcontext_struct
were never part of the spec. If issues arise from this change, it should be
reported.
2019-01-01 18:13:33 -08:00
Chris Robinson 1630a33567 Use standard unique_lock and lock_guard for the backend lock 2019-01-01 16:42:54 -08:00
Chris Robinson 2f1566e0b4 Add and use a make_unique function 2019-01-01 14:33:01 -08:00
Chris Robinson c36798fd07 Avoid unnecessary extra buffers for filter chains 2019-01-01 02:41:27 -08:00
Chris Robinson e930c70eaa Don't make BiquadFilter's src and dst restrict
There's no technical reason they can't be the same since IIR filters can't be
auto-vectorized anyway.
2019-01-01 00:04:46 -08:00
Chris Robinson a9e71c2668 Handle all input channels in MixDirectHrtf 2018-12-31 23:33:04 -08:00
Chris Robinson 0452c9201d Add a missing include 2018-12-31 20:51:51 -08:00
Chris Robinson 87143b6645 Remove some C-isms from makehrtf
Remove unnecessary typedefs, use C++11 stamndard types and values, avoid
explicit allocations.
2018-12-31 19:54:34 -08:00
Chris Robinson 4c4572ae8a Compile makehrtf as C++ 2018-12-31 18:23:30 -08:00
Chris Robinson d8eecc89e0 Pass a reference to an array instead of a pointer 2018-12-31 18:07:00 -08:00
Chris Robinson 5a9a1c8d7d Further improve HRTF methods to avoid masking in the inner loops 2018-12-31 04:12:20 -08:00
Chris Robinson 5e03941701 Use an atomic bool on things that only take true or false 2018-12-30 21:58:14 -08:00
Chris Robinson 9f5c9a2260 Rename BackendLock to StateLock 2018-12-30 21:38:42 -08:00
Chris Robinson 3df1d185f8 Don't make the backend's lock/unlock methods noexcept 2018-12-29 17:29:52 -08:00
Chris Robinson 24e763f2a1 Get rid of ALCdevice_Lock/Unlock 2018-12-29 14:00:34 -08:00
Chris Robinson bdf7c16cfb Clean up a member name 2018-12-29 13:21:47 -08:00
Chris Robinson 8a84e7b662 Use member functions for the sample and channel converters 2018-12-29 12:26:45 -08:00
Chris Robinson 9b0b722d72 Add missing includes for mem_fn 2018-12-29 03:11:06 -08:00
Chris Robinson 63fc74beaa Don't bother with an explicit Loopback backend type 2018-12-29 02:21:53 -08:00
Chris Robinson 71a4d6db6f Return a unique_ptr for the backend 2018-12-29 02:16:16 -08:00
Chris Robinson 3c637d5fd7 Make the backend type an enum class 2018-12-29 01:38:26 -08:00
Chris Robinson 8fd4477215 Get CoreAudio capture samples in one call 2018-12-28 23:19:49 -08:00
Chris Robinson 3d92e8c4df Convert the backends to use proper inheritence 2018-12-28 22:56:20 -08:00
Chris Robinson 67b874328d Use static_cast instead of reinterpret_cast where possible 2018-12-28 16:13:28 -08:00
Chris Robinson 01ed98c99b Finish turning ancillary backend methods into member functions 2018-12-28 15:09:51 -08:00
Chris Robinson b7f5166d59 Turn even more methods into member functions 2018-12-28 14:06:15 -08:00
Chris Robinson 200e267b81 Turn some more methods into member functions 2018-12-28 12:58:01 -08:00
Chris Robinson 983904bbdc Add a method to prefix logged function names 2018-12-28 12:29:05 -08:00
Chris Robinson aff58265cb Make more methods into member functions 2018-12-27 23:37:24 -08:00
Chris Robinson 28308226e7 Turn more methods into member functions 2018-12-27 21:50:54 -08:00
Chris Robinson 885f68268f Turn more methods into member functions 2018-12-27 20:24:35 -08:00
Chris Robinson 015a4b060b Make some ancillary methods into member functions 2018-12-27 19:38:02 -08:00
Chris Robinson 0f36459028 Use vectors instead of malloc'd buffers 2018-12-27 18:33:49 -08:00
Chris Robinson 465ab11748 Finish renaming backend struct fields 2018-12-27 17:48:02 -08:00
Chris Robinson e48b8c4cda Rename some more struct members for consistency 2018-12-27 17:09:14 -08:00
Chris Robinson 515edc3dee Fix ring buffer vector methods 2018-12-27 15:05:12 -08:00
Chris Robinson f2c2b7c538 Get rid of the unnecessary STATIC_(UP)CAST macros 2018-12-27 14:27:35 -08:00
Chris Robinson 4782d6107d Use a proper constructor/destructor for the ALCbackend base 2018-12-27 13:40:43 -08:00
Chris Robinson 7880f27054 Rename DSound class members for consistency 2018-12-27 13:07:14 -08:00
Chris Robinson 1a4387d137 Return unique_ptrs instead of raw pointers
For the ring buffer, channel converter, and sample converter.
2018-12-27 12:55:43 -08:00
Chris Robinson 323cf58f02 Simplify resampling with CoreAudio capture
The ringbuffer holds the samples from the device, and we use our own converter
for resampling, calling it on demand with data from the ring buffer.
2018-12-27 12:04:18 -08:00
Chris Robinson 4dca2f2ee5 Use a unique_ptr for the AsyncEvents ringbuffer 2018-12-27 10:44:02 -08:00
Chris Robinson be85ab6f82 Rename some ALSA class members for consistency 2018-12-27 10:34:22 -08:00
Chris Robinson c3f370fa41 Constify and reorder a couple device fields 2018-12-27 10:25:09 -08:00
Chris Robinson 7d821551ac Recognize ambix as an alias for acn+sn3d 2018-12-27 01:18:10 -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