aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use exceptions when opening and reseting the PulseAudio backendChris Robinson2019-05-041-117/+82
|
* Catch exceptions from backend resetChris Robinson2019-05-041-1/+7
|
* Add the printf format attribute to backend_exception's constructorChris Robinson2019-05-041-1/+8
|
* Add an exception class to cover backend creation and openingChris Robinson2019-05-044-35/+90
|
* Report the threshold limit for the output limiterChris Robinson2019-05-041-3/+6
|
* Use BUFFERSIZE for the reverb loop limitChris Robinson2019-05-031-11/+6
| | | | | | | At 44/48khz, the main delay line comes out to 20k to 22k samples, which gets rounded up to 32k as the next power of two. This leaves plenty of room for the full 1k BUFFERSIZE without having to increase the delay line beyond what it already is.
* Add some assumes and constsChris Robinson2019-05-031-16/+15
|
* Avoid a few more array length assumptionsChris Robinson2019-05-011-36/+35
|
* Avoid masking offsets in the inner reverb loopsChris Robinson2019-04-301-84/+158
|
* Add some missing include directoriesChris Robinson2019-04-291-19/+7
|
* Make a number of settings tristateChris Robinson2019-04-292-73/+63
|
* Disable NFC by defaultChris Robinson2019-04-293-12/+13
|
* Allow NFC filters without HQ decodingChris Robinson2019-04-291-64/+18
| | | | | | It still requires a proper custom decoder configuration for speakers, so that proper distances can be specified. Ambisonic output still relies on the nfc-ref-delay option, and HRTF uses the dataset's distance.
* Merge pull request #285 from ArthurSonzogni/masterkcat2019-04-292-44/+56
|\ | | | | Update CMakeLists.txt. Simplify examples build and export PUBLIC headers.
| * CMAKE: export PUBLIC headers of OpenAL.ArthurSonzogni2019-04-302-44/+56
|/ | | | | | | | | | | | | | | | Remove the cmake function: INCLUDE_DIRECTORIES(..) Replace it by: TARGET_INCLUDE_DIRECTORIES(...) It gives us the opportunity to define whether or not OpenAL dependencies should be exported or not (using PUBLIC or PRIVATE keywoard). [user visible changes] The OpenAL PUBLIC headers are exported. When a target depends on OpenAL, it will have access to its public headers. Some small refactor along the way.
* Increase the period size slider and don't use steps of 64Chris Robinson2019-04-282-12/+9
|
* Properly replace sinc4 with cubic in alsoft-configChris Robinson2019-04-281-3/+3
|
* Only enable NFC with HRTF when hq-mode is enabledChris Robinson2019-04-281-2/+5
|
* Combine some reverb processing loopsChris Robinson2019-04-281-29/+31
| | | | | | Specifically, the A2B and output mixing, as well as applying the band-pass with B2A mixing (the latter of which hiding a bug that was overwriting the early buffer storage).
* Remove restrict from in+out parametersChris Robinson2019-04-282-5/+5
|
* Be more robust with PulseAudio captureChris Robinson2019-04-271-12/+15
| | | | | | | Particularly, handle "holes" in the record stream and premature end-of-buffer. Also don't bail out when capturing while disconnected (the extension says it should provide anything it previously reported available, going to silence for anything no longer readable).
* Add missing function pointersChris Robinson2019-04-271-154/+107
|
* Remove some ancient PulseAudio KDE/Phonon/Qt hacksChris Robinson2019-04-272-18/+6
| | | | | | | | | | Unfortuantely, the relevant KDE bug still seems to exist (streams are forced to KDE's default device after opening, even when they're created with a specific device at user request). I do not know why KDE thinks this is in any way good behavior (the user doesn't get their desired device, nor does the stream get the appropriate format for the device its ultimately put on), but making streams non-movable as a workaround has been a thorn in the side of non-KDE users for too long. C'mon KDE, it's been nearly (if not more than) 7 years now.
* Remove unused pa_threaded* functionsChris Robinson2019-04-271-83/+0
|
* Use a custom PulseAudio mainloopChris Robinson2019-04-271-235/+199
| | | | | This allows using RT priority again with the mixer. It also consolidates all mainloop instances into one.
* Don't round WASAPI updates to the update sizeChris Robinson2019-04-271-1/+0
|
* Update the period size placeholder textChris Robinson2019-04-261-6/+6
|
* Change the default period size to 20msChris Robinson2019-04-262-7/+9
|
* Scale the update size with sample rate changesChris Robinson2019-04-263-20/+18
|
* Set the ALSA period size firstChris Robinson2019-04-261-4/+4
|
* Specify the buffer size as itself instead of the period countChris Robinson2019-04-2617-154/+132
| | | | | | | Certain backends don't need a buffer size to be a strict multiple of the period count, which allows a little more flexibility. The period/update size simply acts as the minimum request, which helps control CPU load by determining how often parameter and other pre-mixing updates are processed.
* Work around a 32-bit GCC compiler bugChris Robinson2019-04-262-5/+10
|
* Open the playback device earlierChris Robinson2019-04-201-18/+20
| | | | | | | | | | So we actually have a device name to get the initial settings for. Be aware that some backends set a format when opening instead of on reset, so such devices will only set the default format (it can't get a desired format without the device name, but the format will already be set once that's known). The affected backends are WinMM, SDL2, and PortAudio (none of which are generally used). This could be fixed by reopening the device during reset, but it would need to be done carefully.
* Don't round the PulseAudio write size to the period multipleChris Robinson2019-04-171-4/+0
|
* Fix PulseAudio backend initializationChris Robinson2019-04-161-1/+1
|
* Remove the backend factory deinit methodChris Robinson2019-04-1428-374/+239
| | | | | | It was never actually called anywhere, and there's no safe place where it can be called. It's probably better to let the individual backends worry about cleaning themselves up anyway.
* Use a custom message queue for the WASAPI backendChris Robinson2019-04-141-263/+160
|
* Fix some integer truncation warnings in MSVCChris Robinson2019-04-124-54/+53
|
* Load buffer data using the current and end pointerChris Robinson2019-04-121-65/+57
|
* Remove the SZFMT macroChris Robinson2019-04-115-31/+23
| | | | C++11 mandates the %zu/d formatter
* Simplify sorting and initializing the backendsChris Robinson2019-04-111-58/+42
|
* Add exception protection to the last of the API functionsChris Robinson2019-04-102-18/+113
|
* Add exception protection to effect, filter, and buffer functionsChris Robinson2019-04-103-8/+98
|
* Add exception protection to the listener functionsChris Robinson2019-04-101-8/+25
|
* Add exception protection to context state functionsChris Robinson2019-04-101-0/+49
|
* Add exception protection to some AL functionsChris Robinson2019-04-103-0/+15
|
* Fix usage of the voice's HRTF accumulation buffer when blendingChris Robinson2019-04-091-20/+7
|
* Don't use a fixed size buffer for printed messagesChris Robinson2019-04-092-24/+31
|
* Add macros to stop exceptions from leaving API functionsChris Robinson2019-04-093-6/+74
| | | | | | | | Effectively makes the functions act as noexcept, since there's no meaningful reason to propogate exceptions from "C" functions. Currently only applied to ALC functions, but can incrementally be applied to AL functions too. In the future, this could also handle ALC and AL errors with unique exception types (functions that utilize this behavior would need to ensure proper cleanup).
* Make sure the all-pass filter is cleared before useChris Robinson2019-04-041-3/+7
|