aboutsummaryrefslogtreecommitdiffstats
path: root/alc/backends
Commit message (Collapse)AuthorAgeFilesLines
* Fix JACK process callback handlingChris Robinson2020-01-121-50/+48
| | | | | | The callback apparently can't be set after activation, but we can't allocate the ring buffer until after activation when the callback is already getting called. An ugly flag it is, then, I guess.
* Don't allocate the ring buffer for JACK before activationChris Robinson2020-01-111-32/+20
| | | | | | | | | | | | | | It seems the JACK server can send buffer size change events during device reset and wait on it, which causes a failure since the change event can't be processed during a reset. It's otherwise impossible to safely disable the change event callback during a reset since the lock is already held and the callback can be waiting to acquire it. The only guarantee we seem to have is the event callback won't be invoked after jack_activate succeeds. So instead, the buffer size can be queried after jack_activate and the ring buffer allocated then, instead of using an event callback. This does mean the buffer size can change with a start() call, but it's better than a failure to start.
* Make CreateRingBuffer a static RingBuffer methodChris Robinson2020-01-1010-13/+13
|
* Make a duration type to handle WASAPI reference timesChris Robinson2019-12-221-34/+36
|
* Print the unhandled subformatChris Robinson2019-12-221-54/+54
|
* Try harder to find a matching WASAPI configurationChris Robinson2019-12-221-92/+110
| | | | | | As long as the lowest channel bits match the enabled bits for a given configuration, higher bits from any extra channels can be ignored since they can be skipped.
* Handle padding between device sample framesChris Robinson2019-12-2115-36/+58
| | | | | | | | The padding must be constant and sample type aligned (e.g. some fixed multiple of two bytes between the start of two consecutive frames for 16-bit output). The intent is to always have the ability for stereo output with WASAPI even if the device has some other unsupported configuration, as long as front-left and front-right exist.
* Add a config option for custom ALSA capture devicesChris Robinson2019-10-271-18/+16
|
* Gracefully drain the OpenSL capture buffer on disconnectChris Robinson2019-10-101-13/+24
|
* Use one PulseAudio mainloop per deviceChris Robinson2019-10-091-221/+270
| | | | | To help avoid devices blocking on each other when handling asynchronous messages.
* Remove a useless prebuf check with PulseAudioChris Robinson2019-10-091-14/+0
|
* Create the initial PulseAudio stream corkedChris Robinson2019-10-091-1/+2
|
* Don't track the PulseAudio context state in devicesChris Robinson2019-10-091-30/+0
|
* Make C callbacks noexceptChris Robinson2019-10-098-88/+85
| | | | | No telling what would happen if exceptions managed to get back into presumably C-based callers.
* Use smart pointers for ALSA param handlesChris Robinson2019-10-091-132/+128
| | | | And simplify some related error handling
* Never return null from CreateRingBufferChris Robinson2019-10-0810-43/+5
| | | | | Allocation failure would already throw a bad_alloc anyway, now a size overflow throws an exception too.
* Clean up some exception messages and avoid duplicate log messagesChris Robinson2019-10-0814-184/+46
|
* Define some simple wrapper methods inlineChris Robinson2019-10-081-63/+30
|
* Avoid raw lock/unlock callsChris Robinson2019-10-0714-58/+44
|
* Fix BackendVase typoChris Robinson2019-10-071-1/+1
|
* Reduce some indentationChris Robinson2019-10-071-32/+36
|
* Use exceptions for backend open failuresChris Robinson2019-10-0719-542/+514
|
* Make MAX_RESAMPLER_PADDING specify the total paddingChris Robinson2019-09-281-1/+1
|
* Use FastBSinc24 for WASAPI and CoreAudio captureChris Robinson2019-09-282-2/+2
| | | | Given a fixed rate, there's no downside to the fast version.
* Fix a couple more conversion warningsChris Robinson2019-09-221-6/+6
|
* Make the resampler type an enum classChris Robinson2019-09-222-2/+2
|
* Fix some Windows warningsChris Robinson2019-09-182-12/+12
|
* Clean up some more conversion warningsChris Robinson2019-09-161-22/+19
|
* Clean up some more shadowing warningsChris Robinson2019-09-161-8/+6
|
* Add a fallback if SLAndroidDataFormat_PCM_EX isn't availableChris Robinson2019-09-151-56/+91
|
* Make the BackendFactory base destructor protectedChris Robinson2019-09-151-2/+3
|
* Return and pass more appropriate types for backendsChris Robinson2019-09-1519-223/+222
|
* Fix a few more GCC warningsChris Robinson2019-09-143-4/+7
|
* Enable and fix more warningsChris Robinson2019-09-142-1/+3
|
* Don't hold the pulse lock while not necessaryChris Robinson2019-09-141-1/+2
|
* Fix some more implicit conversions noted by GCCChris Robinson2019-09-144-13/+14
|
* Clean up (most) implicit conversions in the backendsChris Robinson2019-09-146-86/+98
|
* Store the ambisonic order as unsignedChris Robinson2019-09-131-1/+1
|
* Return unsigned values from the FromDevFmt functionsChris Robinson2019-09-139-68/+55
|
* Clean up more implicit conversionsChris Robinson2019-09-133-23/+26
|
* Use unsigned channel indicesChris Robinson2019-09-121-2/+2
|
* Fix a few more C-style castsChris Robinson2019-09-112-3/+4
|
* Fix function declarationChris Robinson2019-09-111-2/+3
|
* Avoid C-style casts in C++Chris Robinson2019-09-114-8/+13
|
* Avoid dynamically allocating ChannelConverterChris Robinson2019-09-101-16/+6
|
* Use al::byte for a couple more buffersChris Robinson2019-08-252-11/+11
|
* Use unsigned for the sample and channel convertersChris Robinson2019-08-202-10/+9
|
* Add methods to get env vars as an optionalChris Robinson2019-08-121-2/+3
|
* Move the wstr converters to a separate headerChris Robinson2019-08-114-0/+4
|
* Move the dynload decls and defs to commonChris Robinson2019-08-105-4/+6
|