aboutsummaryrefslogtreecommitdiffstats
path: root/alc/backends/coreaudio.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.
* Fix some clang-tidy warningsChris Robinson2023-12-081-2/+2
|
* Fix some unused parameter and unhandled enum warningsChris Robinson2023-11-251-5/+10
|
* Add query fonction in ALC_SOFT_system_events unreleased extension (#938)MathiusD2023-11-261-1/+10
| | | | | | | | | | | | | | | | | | | * feat(ALC_SOFT_system_events): Add alcEventIsSupportedSOFT method in ALC_SOFT_system_events unreleased extension The purpose of this addition (to my collection) are allow to retrieve which events are supported and if events are fully supported or if some case isn't managed for some reason For exemple only some backends provide system events: * pipewire -> Full support of extension * wasapi -> Full support of extension * pulseaudio -> Support of add and remove devices events only * coreaudio -> Support of default device change only * feat(ALC_SOFT_system_events): Fix typo in alext.h Cf following review : https://github.com/kcat/openal-soft/pull/938#discussion_r1404509828 * feat(ALC_SOFT_system_events): Remove ALC_EVENT_NOT_SUPPORTED_SOFT token Cf following discussions between this comment : https://github.com/kcat/openal-soft/pull/938#issuecomment-1825876452 to this comment : https://github.com/kcat/openal-soft/pull/938#issuecomment-1826419406
* Use a string_view for the backend open methodChris Robinson2023-08-061-18/+18
|
* Return noErr from DeviceListenerProc (#875)captainurist2023-07-071-0/+1
|
* Use cinttypes instead of inttypes.h in C++Chris Robinson2023-06-011-1/+1
|
* Specify the device type for the event callbackChris Robinson2023-06-011-14/+14
|
* Report device change events from CoreAudio (#856)Deal(一线灵)2023-06-011-1/+50
| | | | | | | | | * Report device change events from CoreAudio * Fix compile error * Use optional * Use optional, no unique_ptr
* Include IOAudioTypes.h only when neededChris Robinson2023-05-311-4/+3
|
* Avoid using al::vector unnecessarilyChris Robinson2023-05-121-2/+2
|
* Clean up some more includesChris Robinson2023-05-121-4/+4
|
* Use std::byte instead of a custom al::byteChris Robinson2023-05-041-3/+3
|
* Handle signed int values holding FourCC codesChris Robinson2023-04-261-0/+1
|
* Print CoreAudio errors as FourCC codes when possibleChris Robinson2023-04-261-43/+58
|
* Check the correct device property to detect headphonesChris Robinson2023-04-251-3/+3
|
* Try to detect headphones with CoreAudioChris Robinson2023-04-241-0/+18
|
* Change a function to a static methodChris Robinson2022-11-131-1/+1
|
* Add preliminary support for 7.1.4 output modesChris Robinson2022-11-031-0/+1
| | | | | | | | 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 the ringbuffer write sizeChris Robinson2022-08-181-1/+1
|
* Use an intermediate buffer for writing to the ringbufferChris Robinson2022-08-181-26/+11
| | | | | It doesn't seem as though AudioUnitRender likes being given two buffers to render/capture samples into segmented memory.
* Pass the action flags to AudioUnitRender from the callbackChris Robinson2022-08-171-3/+2
|
* Pass the bus number to AudioUnitRender from the callbackChris Robinson2022-08-161-2/+2
|
* Remove a couple unnecessary castsChris Robinson2022-05-131-3/+3
|
* Fix the CoreAudio output element valueChris Robinson2022-05-101-1/+1
|
* Fix CoreAudio audio unit element values for captureChris Robinson2022-05-021-19/+21
|
* Handle 3D7.1 as a separate channel configurationChris Robinson2022-04-261-0/+1
| | | | | | | 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.
* Define the CoreAudio default name only when neededChris Robinson2022-02-231-2/+4
|
* Avoid 5.1Rear as its own channel configurationChris Robinson2021-07-301-1/+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.
* Set the CoreAudio stream according to the device channel formatChris Robinson2021-07-241-53/+19
|
* Attempt to support capture enumeration with CoreAudioChris Robinson2021-07-101-45/+72
|
* Use variables and types when they're definedChris Robinson2021-07-091-0/+6
|
* Don't define enumeration functions when they're not usedChris Robinson2021-07-091-16/+25
|
* 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
|
* Handle tvOS caseHALX992021-05-131-3/+3
|
* Add back a missing includeChris Robinson2021-04-271-0/+1
|
* Update include headersChris Robinson2021-04-271-7/+6
| | | | Don't add alc/ to the include paths.
* Use the DeviceBase for the backendChris Robinson2021-04-241-3/+3
|
* Move some more sources to coreChris Robinson2021-04-241-1/+1
|
* Initialize the new audio unit before disposing the old oneChris Robinson2021-03-091-6/+6
|
* Allow calling BackendBase::open multiple times on playback devicesChris Robinson2021-03-081-1/+11
| | | | | | | | | | | 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.
* Move alexcpt to coreChris Robinson2020-12-241-1/+0
|
* Avoid AL/ALC types in the backendsChris Robinson2020-12-171-15/+15
|
* Don't use ALC error enums for the backend error codeChris Robinson2020-12-171-25/+36
|
* Don't return an enum from captureSamplesChris Robinson2020-12-171-9/+8
| | | | It's always no_error
* Move logging to coreChris Robinson2020-12-171-1/+1
|
* Change a couple macros into constexpr variablesChris Robinson2020-11-281-1/+1
|