aboutsummaryrefslogtreecommitdiffstats
path: root/alc/backends/pulseaudio.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add query fonction in ALC_SOFT_system_events unreleased extension (#938)MathiusD2023-11-261-1/+13
| | | | | | | | | | | | | | | | | | | * 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-8/+8
|
* Specify the device type for the event callbackChris Robinson2023-06-011-2/+4
|
* Handle device added/removed events with PulseAudioChris Robinson2023-06-011-0/+42
|
* Add a context to PulseMainloopChris Robinson2023-06-011-84/+64
|
* Avoid using al::vector unnecessarilyChris Robinson2023-05-121-3/+3
|
* Use std::byte instead of a custom al::byteChris Robinson2023-05-041-8/+7
|
* Make and use a bit_cast functionChris Robinson2023-05-041-1/+2
| | | | Instead of reinterpret_casting between incompatible types
* Replace al::optional with std::optionalChris Robinson2023-05-041-3/+3
|
* Use macros for the likely/unlikely attributesChris Robinson2023-03-011-12/+12
| | | | | The syntax parser for GCC 8 (and earlier?) fails when these attributes are in certain places.
* clang-tidy cleanups (#800)Rosen Penev2023-01-151-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * clang-tidy: use bool literals Found with modernize-use-bool-literals Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: replace std::bind with lambdas Found with modernize-avoid-bind Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: use data() instead of pointer stuff Found with readability-container-data-pointe Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: use empty() Found with readability-container-size-empty Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: remove static in anon namespace Found with readability-static-definition-in-anonymous-namespace Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: remove const return Found with readability-const-return-type Signed-off-by: Rosen Penev <[email protected]> Signed-off-by: Rosen Penev <[email protected]>
* Don't explicitly try to spawn servers by defaultChris Robinson2023-01-141-1/+1
|
* Avoid using a non-0 span length over nullptrChris Robinson2023-01-131-17/+32
|
* Write proper samples when starting the PulseAudio streamChris Robinson2023-01-131-17/+3
| | | | | Instead of silence, to ensure the number of samples written to PulseAudio is the same as the number mixed/rendered.
* Avoid single-use static class method wrappersChris Robinson2023-01-131-81/+46
|
* Avoid unnecessary uses of make_optionalChris Robinson2023-01-131-2/+4
|
* Avoid some explicit casts and referencesChris Robinson2023-01-011-7/+11
|
* Avoid using a macro to wrap standard attributesChris Robinson2022-12-061-12/+12
|
* Avoid LIKELY/UNLIKELY macrosChris Robinson2022-12-051-13/+13
|
* Add preliminary support for 7.1.4 output modesChris Robinson2022-11-031-1/+17
| | | | | | | | 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.
* Remove unnecessary includes and forward declarationsChris Robinson2022-09-231-7/+0
|
* Remove an unnecessary includeChris Robinson2022-09-221-1/+0
|
* Use PulseAudio's threaded mainloop instead of a custom oneChris Robinson2022-09-221-141/+160
|
* Handle 3D7.1 as a separate channel configurationChris Robinson2022-04-261-0/+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.
* Handle 5.1 using rear channels with PulseAudio and PipeWireChris Robinson2022-01-251-82/+14
|
* Use a flag to indicate headphone-like outputChris Robinson2021-10-231-2/+2
|
* Avoid 5.1Rear as its own channel configurationChris Robinson2021-07-301-7/+1
| | | | | | 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-2/+2
| | | | Don't add alc/ to the include paths.
* Move GetChannelIdxByName and clean up some more includesChris Robinson2021-04-261-10/+26
|
* Use the DeviceBase for the backendChris Robinson2021-04-241-4/+4
|
* Move helpers.cpp to coreChris Robinson2021-04-221-1/+1
|
* Move declarations to a more appropriate headerChris Robinson2021-04-221-0/+1
|
* Fill the PulseAudio buffer before uncorking playbackChris Robinson2021-04-191-14/+14
|
* Don't force application name with pulseaudioIlya Fedin2021-03-181-8/+1
|
* Allow calling BackendBase::open multiple times on playback devicesChris Robinson2021-03-081-3/+14
| | | | | | | | | | | 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 a standard bitset for bitfield flagsChris Robinson2021-01-221-3/+3
|
* 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
|
* Move alexcpt to coreChris Robinson2020-12-241-1/+0
|
* Avoid AL/ALC types in the backendsChris Robinson2020-12-171-16/+16
|
* Don't use ALC error enums for the backend error codeChris Robinson2020-12-171-14/+17
|
* Don't return an enum from captureSamplesChris Robinson2020-12-171-11/+9
| | | | It's always no_error
* Move logging to coreChris Robinson2020-12-171-1/+1
|
* Change a couple functions into member functionsChris Robinson2020-08-071-6/+6
|
* Use a predicate instead of a while loopChris Robinson2020-07-231-3/+3
|
* Print the name of unhandled PulseAudio channelsChris Robinson2020-06-151-1/+3
|
* Remove the Lower channel labels and rename the Upper labelsChris Robinson2020-06-151-7/+7
|
* Don't bother with otherwise unused Aux channelsChris Robinson2020-06-151-33/+37
|
* Don't return a bool from the backend start methodChris Robinson2020-04-281-6/+4
|