aboutsummaryrefslogtreecommitdiffstats
path: root/alc/alc.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Avoid redundant definitionsChris Robinson2024-01-031-2/+3
|
* Avoid using bit_cast for pointer typesChris Robinson2024-01-031-1/+1
|
* Allocate effect slot property updates in clustersChris Robinson2024-01-031-6/+17
|
* Use an atomic unique_ptr for the device's context arrayChris Robinson2024-01-011-9/+4
|
* Replace some macrosChris Robinson2023-12-291-2/+2
|
* Handle pointer ownership a bit betterChris Robinson2023-12-291-14/+32
|
* Try to start being a bit more pointer-owner consciousChris Robinson2023-12-261-1/+1
|
* Use standard methods for roundingChris Robinson2023-12-251-3/+3
|
* Avoid assignments in if conditionsChris Robinson2023-12-231-17/+20
|
* Use string_views for querying config parametersChris Robinson2023-12-211-32/+30
|
* Fix some implicit conversionsChris Robinson2023-12-171-1/+2
|
* Fix searching the channel type listChris Robinson2023-12-151-1/+1
|
* Don't fail alcDevicePauseSOFT for disconnected devicesChris Robinson2023-12-131-6/+0
| | | | | | | | | | | The device playback is stopped so the function doesn't technically fail. This primarily just allows the device state to be flagged as paused for a subsequent reset or reopen, which covers a potential issue where a device is disconnected, the app pauses it due to something like an incoming call or being put into the background, then successfully resets or reopens the device before playback should resume. Without this, the device will (try to) start immediately upon being reset or reopened, which would either fail (and disconnect again) or start playing again prematurely before it can be stopped.
* Properly check that the device was playing before restarting itChris Robinson2023-12-121-7/+4
|
* Track the device state for being properly configuredChris Robinson2023-12-121-31/+61
| | | | And don't allow resuming if the backend device isn't properly set up.
* Remove void from empty parameter listsChris Robinson2023-12-121-2/+2
| | | | Also convert some functions to trailing return types and remove (void) casts.
* Refactor FlexArrayChris Robinson2023-12-101-0/+1
| | | | | This avoids using an array of 1 as a flexible array member, and instead uses a span to reference the memory after itself.
* More clang-tidy cleanupChris Robinson2023-12-101-89/+94
| | | | And suppress some warnings
* Use a fixed array for fixed-size clustersChris Robinson2023-12-081-7/+9
|
* Clean up some more clang-tidy warningsChris Robinson2023-12-081-21/+21
|
* Fix some clang-tidy warningsChris Robinson2023-12-081-5/+5
|
* Use RAII to handle writing under the mixer seqlockChris Robinson2023-12-041-6/+2
|
* Remove some unnecessary atomic wrappersChris Robinson2023-12-031-1/+2
|
* Make the device clock members atomicChris Robinson2023-12-031-6/+14
| | | | | | Even though they're protected by a SeqLock of sorts, it's still UB to read and write non-atomic vars from different threads. It's fine to do relaxed reads and writes given the lock though, to help alleviate the cost.
* Fix some unused parameter and unhandled enum warningsChris Robinson2023-11-251-20/+15
|
* Add query fonction in ALC_SOFT_system_events unreleased extension (#938)MathiusD2023-11-261-0/+40
| | | | | | | | | | | | | | | | | | | * 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
* Start a 32-bit sample format extensionChris Robinson2023-11-181-19/+29
| | | | | This ultimately is to properly distinguish and clarify formats being 32-bit integer and 32-bit float.
* Update the downmix tablesChris Robinson2023-10-211-66/+53
|
* Add a alcGetProcAddress2 functionChris Robinson2023-09-121-0/+3
| | | | | | | | | | | | | | | | This is essentially just a copy of alcGetProcAddress. It's purpose is to bypass Creative's router's alcGetProcAddress implementation, which returns its own functions even if given a device handle. When combined with it also wrapping the drivers' device and context handles, that prevents any extention function that needs a recognizable device or context handle from working, like the *Direct functions, as there's no way for the app to get a device or context handle the driver can know about). An alternate function to get function pointers allows a driver to return its own implementation for standard and extension functions, which an application can use to "bootstrap" audio to use a particular driver directly, enabling use of extensions that the router gets in the way of (and also avoid the overhead of the router, however small that may be).
* Allow querying AL_EFFECTSLOT_EFFECTChris Robinson2023-08-251-1/+1
| | | | | | | This doesn't make much sense since the effect associated with the ID may be modified and not represent the effect being played, or was even deleted and isn't a valid effect ID, but Generic Software allows querying it so it should be queryable for compatibility if nothing else.
* Use a string instead of a c_str for a string_viewChris Robinson2023-08-181-1/+1
|
* Make ALC_SOFT_system_events publicChris Robinson2023-08-181-2/+2
|
* Make AL(C)_EXT_debug publicChris Robinson2023-08-111-1/+1
|
* Use a string_view for the backend open methodChris Robinson2023-08-061-6/+35
|
* Catch exceptions from constructing ALCcontextsChris Robinson2023-07-241-1/+15
|
* Add a function to set a callback for log messagesChris Robinson2023-07-021-0/+5
|
* Don't pass the file handle to al_printChris Robinson2023-07-011-7/+0
|
* Don't initialize in alcGetProcAddress or alcGetEnumValueChris Robinson2023-06-021-2/+0
|
* Rename threads.cpp/h to alsem.cpp/hChris Robinson2023-06-011-1/+0
|
* Define FORCE_ALIGN in config.hChris Robinson2023-06-011-3/+9
|
* Move the function and enum list to a separate fileChris Robinson2023-05-301-864/+1
|
* Add a callback to report system device changesChris Robinson2023-05-301-24/+30
| | | | | Devices being added or removed, or the default device changing. Not all backends report this (none do currently), but it'll be supported where it can.
* Use a string_view for handling debug messagesChris Robinson2023-05-231-2/+2
|
* Make the API functions noexceptChris Robinson2023-05-221-93/+31
| | | | | | | | | | | Only relevant for C++, but these functions can't throw as it's a C-based API. Letting the compiler know that helps improve code generation. Extension callbacks must also not let exceptions leave the callback, or else Bad Things can happen. The macro AL_DISABLE_NOEXCEPT may be defined before including the headers to not mark functions as noexcept, but this should only be done if the caller can't otherwise be fixed.
* Add extension strings for the in-progress direct APIChris Robinson2023-05-141-0/+2
|
* Implement direct functions for EFXChris Robinson2023-05-141-0/+34
|
* Implement direct functions for the debug APIChris Robinson2023-05-141-0/+7
|
* Implement direct functions for the listener and eventsChris Robinson2023-05-141-0/+15
|
* Add more direct functions to the function tableChris Robinson2023-05-141-0/+66
|
* Implement direct functions for extension queries and EAXChris Robinson2023-05-141-0/+10
|