Commit Graph

6653 Commits

Author SHA1 Message Date
Chris Robinson 57cdac3368 Create the initial PulseAudio stream corked 2019-10-09 09:42:35 -07:00
Chris Robinson 404f3e2d08 Don't track the PulseAudio context state in devices 2019-10-09 05:01:30 -07:00
Chris Robinson b687e952ef Make C callbacks noexcept
No telling what would happen if exceptions managed to get back into presumably
C-based callers.
2019-10-09 03:29:25 -07:00
Chris Robinson a7c1245360 Use smart pointers for ALSA param handles
And simplify some related error handling
2019-10-09 02:16:08 -07:00
Chris Robinson 2842df5a02 Catch exceptions from backend start calls 2019-10-09 00:11:19 -07:00
Chris Robinson 963580c2d5 Never return null from CreateRingBuffer
Allocation failure would already throw a bad_alloc anyway, now a size overflow
throws an exception too.
2019-10-08 21:55:03 -07:00
Chris Robinson 7726a06d26 Clean up some exception messages and avoid duplicate log messages 2019-10-08 05:44:38 -07:00
Chris Robinson 360330b2ad Define some simple wrapper methods inline 2019-10-08 03:41:49 -07:00
Chris Robinson f4bc3d7ab2 Improve logging for Windows 2019-10-08 00:21:21 -07:00
Chris Robinson 52a003e9bb Avoid raw lock/unlock calls 2019-10-07 23:22:06 -07:00
Chris Robinson f0fa6c6baf Fix BackendVase typo 2019-10-07 22:42:54 -07:00
Chris Robinson 9b411cfcbe Reduce some indentation 2019-10-07 22:25:45 -07:00
Chris Robinson 02d80cd74d Use exceptions for backend open failures 2019-10-07 21:37:56 -07:00
Chris Robinson f8ff4e269b Put the pragma defines in a separate header 2019-10-07 15:26:35 -07:00
Chris Robinson f52eed0607 Update some wording in the changelog 2019-10-07 05:01:05 -07:00
Chris Robinson acb6baad90 Use std::array instead of plain arrays in a couple places 2019-10-05 21:23:31 -07:00
Chris Robinson eb89faf963 Use a span instead of a reference-to-array 2019-10-05 20:00:22 -07:00
Chris Robinson 267b79f337 Avoid duplicate structs 2019-10-05 16:11:38 -07:00
Chris Robinson 1bb93f4fc2 Avoid direct function template and alias types
It's somewhat ambiguous what they mean. Sometimes acting as a pointer, other
times having weird behavior. Pointer-to-function types are explicitly defined
as such, whereas uses of these tend to be as references (never null and not
changeable).
2019-10-03 04:22:39 -07:00
Chris Robinson b350ae3766 Remove the Offset parameter from ApplyCoeffs 2019-10-02 22:38:19 -07:00
Chris Robinson bce6889173 Remove an unnecessary struct specifier 2019-10-02 22:20:34 -07:00
Chris Robinson 324fb8d0b7 Fix a comment 2019-10-02 19:22:14 -07:00
Chris Robinson 58085f1c7b Clean up some unnecessary includes 2019-10-02 19:13:07 -07:00
Chris Robinson 50198ee30c Clean up some ALfloat -> float 2019-10-02 17:07:23 -07:00
Chris Robinson 64e2c377d8 Move ALvoice from alu.h to a separate header 2019-10-02 16:53:23 -07:00
Chris Robinson d639935e19 Move a couple types to the source they're used in 2019-10-02 15:37:33 -07:00
Chris Robinson a35cac7ce0 Rename mixvoice.cpp to voice.cpp 2019-10-02 15:29:01 -07:00
Chris Robinson 4620912f0f Don't inline the utf8 converters 2019-10-01 23:33:00 -07:00
Chris Robinson 2980adb8c0 Make sure the temporary HRIRs are properly aligned 2019-10-01 22:50:28 -07:00
Chris Robinson 69eb685dbc Check for librt earlier 2019-10-01 22:35:33 -07:00
Chris Robinson accac7950c Silence some warnings from GCC in the router 2019-10-01 22:22:46 -07:00
Chris Robinson 28d54efe72 Use al::getenv to get the router env vars 2019-10-01 22:15:40 -07:00
Chris Robinson a0a55d300f Remove an unnecessary function 2019-10-01 21:45:44 -07:00
Chris Robinson e2c1602ede Link the examples with librt if it exists 2019-10-01 19:56:39 -07:00
Chris Robinson 0063f4bfac Add some allocator fields GCC 6.3 seems to want 2019-10-01 01:49:21 -07:00
Chris Robinson 8f6fafd19a Update the changelog 2019-09-30 22:23:14 -07:00
Chris Robinson 5d7a1fa6da Clear the HRTF state values on allocation 2019-09-30 19:29:01 -07:00
Chris Robinson 4d127a2f98 Avoid infs/nans in the crest detector
It needs to be investigated why the rendered mix sometimes has such large
sample values when starting, but the compressor/limiter shouldn't generate NaNs
because of it.
2019-09-30 17:29:04 -07:00
Chris Robinson cf617760b6 Separate a couple assignments from conditionals 2019-09-30 03:03:27 -07:00
Chris Robinson 0139d8a04f Remove noexcept from a function that explicitly throws 2019-09-30 02:57:19 -07:00
Chris Robinson c833af9ecd Repack the bsinc resamplers coefficients
This puts the base coefficients and the phase deltas next to each other. This
improves caching, as the base and phase deltas are always used together while
the scales are only used for the non-fast versions.
2019-09-29 23:39:04 -07:00
Chris Robinson fb56b02041 Modify the bsinc resampler
Readjusted the bsinc12 cutoff back to -60dB. Also increased the filter's phase
count.
2019-09-29 22:43:46 -07:00
Chris Robinson 94ff2daafc Use using to avoid extraneous template instantiations 2019-09-29 16:02:25 -07:00
Chris Robinson fabb9add9b Silence an MSVC warning 2019-09-28 23:31:49 -07:00
Chris Robinson 00250042c8 Check MAX_RESAMPLER_PADDING properly to ensure it's large enough 2019-09-28 19:14:27 -07:00
Chris Robinson 7783fa738c Make the BSincTables constexpr in an anonymous namespace 2019-09-28 16:40:38 -07:00
Chris Robinson 4b746b8d37 Make MAX_RESAMPLER_PADDING specify the total padding 2019-09-28 14:35:42 -07:00
Chris Robinson 31ffb0887c Don't let a function end without a return 2019-09-28 13:56:51 -07:00
Chris Robinson 2d2e5539c0 Use FastBSinc24 for WASAPI and CoreAudio capture
Given a fixed rate, there's no downside to the fast version.
2019-09-28 03:44:13 -07:00
Chris Robinson cbc00bcffe Combine two function calls into one 2019-09-28 03:42:17 -07:00