aboutsummaryrefslogtreecommitdiffstats
path: root/alc/backends/opensl.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove DEF_NEWDELChris Robinson2023-12-161-4/+0
| | | | | C++17 provides alignment-aware allocators for us, so we don't need to use our own to make sure classes/structs are properly aligned.
* Mostly finish cleanup for backendsChris Robinson2023-12-111-1/+2
| | | | Except CoreAudio and Solaris backends
* Remove some long dead codeChris Robinson2023-12-081-68/+0
| | | | It's unlikely to ever get fixed/revived now with Oboe
* Clean up some more clang-tidy warningsChris Robinson2023-12-081-1/+1
|
* Replace a global function with a member functionChris Robinson2023-12-031-1/+1
|
* Use a string_view for the backend open methodChris Robinson2023-08-061-12/+12
|
* Use a lambda to forward a C callbackChris Robinson2023-07-201-6/+6
|
* Fix a comment typoChris Robinson2023-07-041-1/+1
|
* Rename threads.cpp/h to alsem.cpp/hChris Robinson2023-06-011-1/+1
|
* Move althrd_setname to its own sourceChris Robinson2023-06-011-0/+1
|
* Clean up some more includesChris Robinson2023-05-121-1/+2
|
* Use std::byte instead of a custom al::byteChris Robinson2023-05-041-3/+3
|
* Use macros for the likely/unlikely attributesChris Robinson2023-03-011-48/+49
| | | | | The syntax parser for GCC 8 (and earlier?) fails when these attributes are in certain places.
* Fix RingBuffer crash in OpenSL backend (#807)IamSN0WBALL2023-01-121-1/+1
| | | Co-authored-by: IamSN0WBALL <[email protected]>
* Avoid using a macro to wrap standard attributesChris Robinson2022-12-061-6/+6
|
* Avoid LIKELY/UNLIKELY macrosChris Robinson2022-12-051-1/+1
|
* Use standard likely/unlikely attributes when availableChris Robinson2022-12-051-4/+4
|
* Add preliminary support for 7.1.4 output modesChris Robinson2022-11-031-0/+5
| | | | | | | | I don't know how different sound APIs handle 7.1.4 ("Atmos" or "Auro3D") output, but currently it simply specifies the additional channels with the height channel labels. This isn't likely how it works for a virtualized channel bed, for playing over other with-height configurations (7.1.2, 5.1.4, etc), but this should be an okay start.
* Fix requeueing logic for OpenSLCapture::captureSamplesChris Robinson2022-05-281-17/+29
| | | | | | | | | | | | | | The write vector represents the chunks queued for OpenSL, and the write pointer only increments when OpenSL fills in more samples. So requeueing from the start of the write vector is requeueing chunks that are already queued, which is obviously wrong. It instead needs to queue chunks that become available as they're read. Because the ring buffer holds more elements than can be written to at a givem time, the read vector does not represent the next writable chunks to queue. Advancing the read pointer increases the number of writable elements, so instead of queueing from the read vector or the start of the write vector, queue from the end of the write vector given the number of chunks read.
* Reset the ringbuffer when stopping OpenSL playbackChris Robinson2022-04-261-0/+2
|
* Handle 3D7.1 as a separate channel configurationChris Robinson2022-04-261-1/+2
| | | | | | | It's treated as 5.1 + 2 aux channels. This allows AL_DIRECT_CHANNELS_SOFT to behave better, not forwarding rear left/right channel inputs to lower front and upper rear, and allows reporting a more appropriate output mode to the app instead of 7.1.
* Clear capture buffers before enqueueing them with OpenSLChris Robinson2022-04-081-3/+12
|
* Avoid using an if_constexpr macroChris Robinson2022-02-221-1/+1
| | | | | It doesn't actually use if constexpr, and compilers are smart enough to optimize. Some functions can use templates instead.
* Avoid 5.1Rear as its own channel configurationChris Robinson2021-07-301-3/+0
| | | | | | It messes with 5.1 sources using direct channels, and the surround channels are supposed to map to the side labels. Individual backends can deal with the channel order/label differences, as they already do to a degree.
* Update include headersChris Robinson2021-04-271-3/+3
| | | | Don't add alc/ to the include paths.
* Use the DeviceBase for the backendChris Robinson2021-04-241-3/+3
|
* Move helpers.cpp to coreChris Robinson2021-04-221-1/+1
|
* Allow calling BackendBase::open multiple times on playback devicesChris Robinson2021-03-081-0/+3
| | | | | | | | | | | It will not be called while the device is running. If the first call succeeds, a subsequent call that happens to fail must leave the existing device state as it was so it can be resumed. This is a rough first pass. It will fail when trying to re-open the same device which can only be opened once (for instance, with direct hardware access, on hardware that doesn't do its own mixing). Some backends won't guarantee the new device is usable until the reset() or start() call.
* Use if constexpr when possibleChris Robinson2021-01-221-1/+2
|
* Make the endian test more C++-likeChris Robinson2021-01-211-11/+15
|
* Avoid calling readAdvance in a loopChris Robinson2021-01-171-3/+5
|
* Don't assume the ring buffer's read vector is the next writable spaceChris Robinson2021-01-151-30/+36
| | | | | This is untrue since the ring buffer leaves one element unwritten, so there's one extra element to be written once a readable element is read.
* Move alexcpt to coreChris Robinson2020-12-241-1/+0
|
* Avoid AL/ALC types in the backendsChris Robinson2020-12-171-17/+17
|
* Don't use ALC error enums for the backend error codeChris Robinson2020-12-171-9/+12
|
* Don't return an enum from captureSamplesChris Robinson2020-12-171-10/+8
| | | | It's always no_error
* Move logging to coreChris Robinson2020-12-171-1/+1
|
* Add a gain argument to altonegen (#502)Eliot Miranda2020-12-041-1/+1
| | | | | | * Fix a speeling rorre in an error message. Add a gain command-line argument to altonegen.c * Fix some formatting issues and a copy/paste error.
* Change a couple functions into member functionsChris Robinson2020-08-071-10/+9
|
* Move a couple related functions to the backend baseChris Robinson2020-06-121-1/+1
|
* Don't return a bool from the backend start methodChris Robinson2020-04-281-21/+14
|
* Use standard attribute declarationsChris Robinson2020-04-131-0/+1
|
* Get rid of a redundant enumChris Robinson2020-03-301-3/+3
|
* Return the enumerated device names from the backendChris Robinson2020-03-301-6/+8
| | | | Rather than using an out parameter.
* Remove the mutex from the backend baseChris Robinson2020-03-291-2/+4
|
* Remove unnecessary locks now that the mixer doesn't require oneChris Robinson2020-02-261-4/+3
|
* Make CreateRingBuffer a static RingBuffer methodChris Robinson2020-01-101-2/+2
|
* Handle padding between device sample framesChris Robinson2019-12-211-2/+4
| | | | | | | | 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.
* Gracefully drain the OpenSL capture buffer on disconnectChris Robinson2019-10-101-13/+24
|
* Make C callbacks noexceptChris Robinson2019-10-091-6/+6
| | | | | No telling what would happen if exceptions managed to get back into presumably C-based callers.