aboutsummaryrefslogtreecommitdiffstats
path: root/alc/backends/pipewire.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Handle duplex devices with PipeWireChris Robinson2022-01-221-22/+43
|
* Load the PipeWire real-time configurationChris Robinson2022-01-171-18/+57
| | | | | This is apparently needed to ensure RT threads get RT priority, separately from requesting RT processing.
* Avoid a static-sized char array on the stackChris Robinson2021-12-311-16/+22
|
* Avoid some unnecessary copyingChris Robinson2021-12-311-10/+9
|
* Some more restructuring of the PipeWire backendChris Robinson2021-12-301-73/+58
|
* Set the node rate for the pipewire capture stream tooChris Robinson2021-12-291-0/+1
|
* Move some constexpr variables to where they're usedChris Robinson2021-12-281-50/+47
|
* C++-ize the PipeWire backend some moreChris Robinson2021-12-281-61/+94
| | | | | | | | | Use unique_ptrs for a few more types to avoid explicit free calls. Move ThreadMainloop::wait to the unique_lock wrapper that's holding the lock. Since the mainloop acts as both a lock and condition_variable, passing the lock to the wait method makes no sense. Also have it optionally take a predicate functor to dictate when to stop waiting.
* Check for audio devices when initializing PipeWireChris Robinson2021-12-251-3/+64
| | | | | | | | | | | This isn't great since it can fail when PipeWire is handling audio but no devices are available at initialization, causing the Pulseaudio or ALSA backend to be selected instead. Future versions of PipeWire are expected to have a better way to detect if it's handling audio, but for now this is better than nothing. A config option is available for users to have the PipeWire backend be usable even with no devices at initialization, just in case.
* Set the PipeWire stream rateChris Robinson2021-12-161-0/+1
| | | | | When requesting a non-default rate, this may allow the hardware to run at the requested rate.
* Handle SPA_CHOICE_None for sample rates from PipeWireChris Robinson2021-11-141-52/+59
|
* Report unexpected types for the sample rate from PipeWireChris Robinson2021-11-141-42/+44
|
* Support "enum" choices for sample rates with PipeWireChris Robinson2021-11-141-8/+48
|
* Don't trace unused metadata properties and node typesChris Robinson2021-10-261-6/+0
| | | | | | | As useful as it may sometimes be to see what's being provided, at least under kwin_wayland a not-insignificant number of video-related nodes and metadata properties are sent through normal use of the system (most notably when hovering over the taskbar to see window thumbnails).
* Use a flag to indicate headphone-like outputChris Robinson2021-10-231-2/+2
|
* Make a construct_at method amd use itChris Robinson2021-10-081-4/+4
|
* Avoid double indirection to access spa_data::datasChris Robinson2021-10-071-13/+13
|
* Remove a couple unnecessary variablesChris Robinson2021-10-031-4/+2
|
* Make simpler likely/unlikely functions and use them in some placesChris Robinson2021-10-031-6/+6
|
* Use a constexpr char array instead of duplicating stringsChris Robinson2021-09-191-5/+6
|
* Replace a hardcoded offset valueChris Robinson2021-09-141-1/+1
|
* Wait for the pipewire capture stream to start before returningChris Robinson2021-09-131-1/+9
|
* Track whether nodes are marked as headphonesChris Robinson2021-09-121-2/+14
| | | | | | Newer versions of PipeWire copy the PW_KEY_DEVICE_FORM_FACTOR property to the sink node, so this should work to detect whether the device should be treated as headphones or not.
* Use a constexpr char array for a reused prefix stringChris Robinson2021-09-121-4/+6
|
* Remove a leftover debug traceChris Robinson2021-09-011-1/+0
|
* Fix when a PipeWire metadata property is being clearedChris Robinson2021-09-011-1/+8
|
* Properly limit the name header comparison lengthChris Robinson2021-08-221-1/+1
|
* Add PipeWire capture supportChris Robinson2021-08-211-12/+280
|
* Don't try to get the stream time if there's no streamChris Robinson2021-08-191-0/+1
|
* Simplify pwire_loadChris Robinson2021-08-191-39/+35
|
* Track default devices with PipeWireChris Robinson2021-08-181-20/+183
|
* Support getting device latency with PipeWireChris Robinson2021-08-181-1/+93
|
* Track the actual update size used for PipeWire updatesChris Robinson2021-08-181-1/+37
|
* Minor naming and comment typo fixChris Robinson2021-08-151-4/+4
|
* Add enumeration support to the PipeWire backendChris Robinson2021-08-141-45/+667
| | | | | This does not currently track the default devices, and simply gives which came up first. More work is needed to find the default source/sink node IDs.
* Implement PipeWire playbackChris Robinson2021-08-061-71/+434
| | | | | Not yet an auto-selected backend. This doesn't yet support enumeration, or matching the AL device format to the output.
* Start a PipeWire backendChris Robinson2021-08-021-0/+179
It's just a copy of the Null backend to start with