aboutsummaryrefslogtreecommitdiffstats
path: root/alc/backends
Commit message (Collapse)AuthorAgeFilesLines
* Use a unique_ptr to hold raw byte memoryChris Robinson2021-06-211-2/+4
|
* Fix getting of device channel count in CoreAudio backendalexey.lysiuk2021-06-211-3/+1
| | | | | | | AudioBufferList contains a variable length array of mNumberBuffers elements, so it should not be created with the default constructor like usual class instances. Unfortunately, Apple developer site documentation is literally empty for this API. There is a bunch of comments in framework's header files. Here is the correct usage of AudioBufferList pointer from Chromium: https://chromium.googlesource.com/chromium/src/media/+/008a1abc573e1f8bcf513b50ce48a923b30ef130/audio/mac/audio_manager_mac.cc#266 There were occasional crashes because of memory corruption which was confirmed by address sanitizer
* Fix some size typesChris Robinson2021-06-181-2/+2
|
* Initial attempt at CoreAudio playback enumerationChris Robinson2021-06-181-14/+253
|
* Use a unique_ptr to auto-free the jack ports listChris Robinson2021-06-121-20/+24
|
* Set the JACK output ports as terminalChris Robinson2021-06-121-1/+1
| | | | Since there are no input ports associated with the output.
* Give a name to a lambdaChris Robinson2021-06-111-7/+7
|
* Improve name duplication handling with JACKChris Robinson2021-06-101-26/+63
| | | | | If a custom device pattern matches an existing one, its name will be replaced. A separate loop is used to check and handle duplicate display names.
* Add an option to mix directly in the JACK callbackChris Robinson2021-06-081-31/+80
|
* Handle tvOS caseHALX992021-05-131-3/+3
|
* Add back a missing includeChris Robinson2021-04-271-0/+1
|
* Rename alcmain.h to device.hChris Robinson2021-04-274-9/+7
|
* Update include headersChris Robinson2021-04-2729-68/+62
| | | | Don't add alc/ to the include paths.
* Partially implement an extension to hold sources on disconnectChris Robinson2021-04-261-1/+3
| | | | | | | | Rather than stopping voices/sources when the device becomes disconnected, the context can be set to leave them alone. As a consequence, their state will remain as playing and they'll keep their last known sample offset indefinately. For applications mindful of this behavior, it will allow resetting or reopening the device to reconnect and automatically resume where it left off.
* Move GetChannelIdxByName and clean up some more includesChris Robinson2021-04-263-17/+35
|
* Use the DeviceBase for the backendChris Robinson2021-04-2435-69/+69
|
* Move some more sources to coreChris Robinson2021-04-242-2/+2
|
* Move helpers.cpp to coreChris Robinson2021-04-2212-12/+12
|
* Move declarations to a more appropriate headerChris Robinson2021-04-225-0/+5
|
* Fill the PulseAudio buffer before uncorking playbackChris Robinson2021-04-191-14/+14
|
* Don't force application name with pulseaudioIlya Fedin2021-03-181-8/+1
|
* Don't activate the WASAPI device when initially opening itChris Robinson2021-03-171-17/+2
|
* Avoid returning objects with a reference parameterChris Robinson2021-03-161-13/+13
|
* Check that CoCreateInstance succeedsChris Robinson2021-03-161-13/+17
|
* Workaround mingw complaining about the %z formatterChris Robinson2021-03-121-0/+4
|
* Initialize the new audio unit before disposing the old oneChris Robinson2021-03-091-6/+6
|
* Move the ComPtr wrapper to a common headerChris Robinson2021-03-082-126/+2
|
* Allow calling BackendBase::open multiple times on playback devicesChris Robinson2021-03-0815-257/+360
| | | | | | | | | | | 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.
* Add enumeration to the JACK backendChris Robinson2021-02-131-35/+84
| | | | | | | | Port names seem to be structured as <device_name:channel_name> or <app_name:channel_name>. I'm not sure if this is always the case, but it seems some other apps expect something like this. Also fix the port selection to exclude MIDI ports and allow non-physical ports.
* Stop the Oboe recording stream when recording is stoppedChris Robinson2021-02-021-2/+2
| | | | Hopefully Oboe will retain any unread samples and let them be read.
* Implement Oboe captureChris Robinson2021-01-311-4/+135
|
* Set the oboe stream buffer sizeChris Robinson2021-01-311-0/+2
|
* Allow the sample type to get changed on SolarisChris Robinson2021-01-291-6/+10
|
* Fix compilation on Solaris backendCacodemon3452021-01-291-0/+1
|
* Remove an unnecessary semicolonChris Robinson2021-01-221-1/+1
|
* Use if constexpr when possibleChris Robinson2021-01-222-2/+4
|
* Make PopCount and CountTrailingZeros more standard-likeChris Robinson2021-01-222-2/+4
|
* Use a standard bitset for bitfield flagsChris Robinson2021-01-225-12/+12
|
* Make the endian test more C++-likeChris Robinson2021-01-212-13/+17
|
* Fix handling paused devices with the wave writer backendChris Robinson2021-01-211-10/+14
|
* Simplify a divisionChris Robinson2021-01-211-1/+1
| | | | | The division opcode typically also generates the remainder, making the result of x%y free with x/y.
* 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.
* Use a span instead of passing a vector by referenceChris Robinson2021-01-111-5/+5
|
* Make sure proper names are used for querying PulseAudio infoChris Robinson2021-01-101-5/+5
|
* Pass nullptr to pulse for default deviceIlya Fedin2021-01-101-42/+13
|
* Remove unnecessary includesChris Robinson2020-12-244-8/+0
|
* Move alexcpt to coreChris Robinson2020-12-2417-17/+1
|
* Avoid some more AL typesChris Robinson2020-12-241-4/+4
|
* Avoid AL/ALC types in the backendsChris Robinson2020-12-1717-273/+274
|