Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Track the current/active format for pipewire nodes | Chris Robinson | 2023-08-11 | 1 | -55/+85 |
| | |||||
* | Use a string_view for the backend open method | Chris Robinson | 2023-08-06 | 1 | -10/+11 |
| | |||||
* | Don't use pipewire user data storage for native proxy objects | Chris Robinson | 2023-08-04 | 1 | -110/+83 |
| | |||||
* | Make C callback functions noexcept | Chris Robinson | 2023-07-20 | 1 | -15/+15 |
| | |||||
* | Fix some typos (#872) | Dirk Stolle | 2023-07-04 | 1 | -1/+1 |
| | |||||
* | Specify the device type for the event callback | Chris Robinson | 2023-06-01 | 1 | -5/+17 |
| | |||||
* | Add a comment explaining the DeviceAdded logic for PipeWire | Chris Robinson | 2023-06-01 | 1 | -1/+10 |
| | |||||
* | Report device change events from PipeWire | Chris Robinson | 2023-05-31 | 1 | -34/+91 |
| | |||||
* | Use some more standard functions | Chris Robinson | 2023-05-05 | 1 | -6/+6 |
| | |||||
* | Remove custom stuff for standard | Chris Robinson | 2023-05-04 | 1 | -2/+2 |
| | |||||
* | Avoid defining separate wrapper functions | Chris Robinson | 2023-05-04 | 1 | -32/+16 |
| | |||||
* | Use std::byte instead of a custom al::byte | Chris Robinson | 2023-05-04 | 1 | -5/+5 |
| | |||||
* | Make and use a bit_cast function | Chris Robinson | 2023-05-04 | 1 | -4/+5 |
| | | | | Instead of reinterpret_casting between incompatible types | ||||
* | Replace al::optional with std::optional | Chris Robinson | 2023-05-04 | 1 | -4/+4 |
| | |||||
* | Use macros for the likely/unlikely attributes | Chris Robinson | 2023-03-01 | 1 | -7/+7 |
| | | | | | The syntax parser for GCC 8 (and earlier?) fails when these attributes are in certain places. | ||||
* | Check a string for NULL before calling strtoull | Chris Robinson | 2023-02-11 | 1 | -8/+9 |
| | |||||
* | Use the object serial ID from PipeWire when available | Chris Robinson | 2023-01-24 | 1 | -21/+47 |
| | | | | | | | | | | | Using the node ID as a target is deprecated in newer versions of PipeWire. The serial ID is a monotonic 64-bit integer ID, incremeneted for every object created, so is guaranteed to always refer to the same target (until it wraps around, which I suppose isn't expected/allowed to happen), compared to the 32-bit node ID which I guess allows reuse. We could instead use the target node's name instead of the serial ID, but an integer is nicer to manage than a string. | ||||
* | Don't rely on mRateMatch while waiting for PipeWire timing info | Chris Robinson | 2023-01-09 | 1 | -5/+2 |
| | |||||
* | Add an option to mix on PipeWire's non-RT thread | Chris Robinson | 2023-01-08 | 1 | -14/+14 |
| | |||||
* | Avoid some explicit casts and references | Chris Robinson | 2023-01-01 | 1 | -6/+4 |
| | |||||
* | Avoid setting PipeWire stream properties with separate calls | Chris Robinson | 2022-12-06 | 1 | -12/+11 |
| | |||||
* | Avoid using a macro to wrap standard attributes | Chris Robinson | 2022-12-06 | 1 | -7/+7 |
| | |||||
* | Use standard likely/unlikely attributes when available | Chris Robinson | 2022-12-05 | 1 | -7/+7 |
| | |||||
* | Fix building with PipeWire 0.3.49 and earlier | Chris Robinson | 2022-12-02 | 1 | -0/+19 |
| | |||||
* | Don't prematurely change ALCdevice::BufferSize | Chris Robinson | 2022-11-22 | 1 | -7/+11 |
| | |||||
* | Try to detect the update and buffer size from PipeWire | Chris Robinson | 2022-11-08 | 1 | -4/+45 |
| | |||||
* | Add preliminary support for 7.1.4 output modes | Chris Robinson | 2022-11-03 | 1 | -1/+8 |
| | | | | | | | | 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. | ||||
* | Add media class for Audio/Source/Virtual as a valid node (#747) | Eir W | 2022-08-02 | 1 | -1/+6 |
| | |||||
* | Define PW_KEY_NODE_RATE when needed | Chris Robinson | 2022-06-24 | 1 | -0/+5 |
| | |||||
* | Fix the PipeWire version check | Chris Robinson | 2022-06-24 | 1 | -1/+2 |
| | | | | | | PW_CHECK_VERSION checks if the header version is equal to or newer than the values specified, it can't be used to check if the library version is equal to or newer than the header version. | ||||
* | Keep some variables local to where they're needed | Chris Robinson | 2022-05-13 | 1 | -26/+21 |
| | |||||
* | Use pw_buffer::requested in newer PipeWire versions | Chris Robinson | 2022-05-13 | 1 | -16/+26 |
| | |||||
* | More agressively hide PipeWire and SDL header warnings | Chris Robinson | 2022-05-09 | 1 | -1/+13 |
| | |||||
* | Reject older versions of PipeWire than built against | Chris Robinson | 2022-05-07 | 1 | -0/+24 |
| | | | | | | | | | | | | | | | | | | | Newer versions of PipeWire may add things to public structures. For example, pw_buffer::requested added in 0.3.49. Building against 0.3.49 or newer, but then running with 0.3.48 could result in invalid accesses since the returned pw_buffer objects are shorter than the definition says to expect, creating undefined behavior. Even if explicit access to the additional fields is protected by a runtime check, the language allows the compiler to assume a pointer to a pw_buffer object contains a complete pw_buffer, allowing the optimizer to access the field earlier than the check (with the check only controlling if the value gets used). Another example is pw_time, which had a few fields added in 0.3.50 along with a function, pw_stream_get_time_n, that provides the size of the pw_time struct the application is using (so the library knows what version of the struct it has to fill in). If a later version adds a new field, running it with an older version will either fail (due to the library getting a size larger than it knows about) or silently leave the newer fields as garbage. | ||||
* | Avoid a deprecated PipeWire function | Chris Robinson | 2022-05-06 | 1 | -4/+17 |
| | | | | | Building against 0.3.50 or newer will require that version or newer at runtime. Building against a version before 0.3.50 will work with newer versions. | ||||
* | Handle 3D7.1 as a separate channel configuration | Chris Robinson | 2022-04-26 | 1 | -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. | ||||
* | Trace the actual device form factor in pipewire | Chris Robinson | 2022-02-16 | 1 | -11/+5 |
| | |||||
* | Don't trace ignored pipewire stream nodes | Chris Robinson | 2022-02-15 | 1 | -1/+3 |
| | |||||
* | Reset mIs51Rear only when updating the channel config | Chris Robinson | 2022-02-15 | 1 | -4/+4 |
| | |||||
* | Log when a pipewire device is removed | Chris Robinson | 2022-02-15 | 1 | -1/+6 |
| | |||||
* | Mark another operator bool as explicit | Chris Robinson | 2022-02-15 | 1 | -1/+1 |
| | |||||
* | Add some common wrapper methods to ThreadMainloop | Chris Robinson | 2022-01-26 | 1 | -42/+46 |
| | |||||
* | Default the PipeWire lock's operator= instead of using the base | Chris Robinson | 2022-01-26 | 1 | -1/+1 |
| | |||||
* | Handle 5.1 using rear channels with PulseAudio and PipeWire | Chris Robinson | 2022-01-25 | 1 | -23/+46 |
| | |||||
* | Move some definitions to where they're used | Chris Robinson | 2022-01-24 | 1 | -2/+2 |
| | |||||
* | Avoid a messy while loop to remove from a vector | Chris Robinson | 2022-01-22 | 1 | -11/+8 |
| | |||||
* | Restructure the PipeWire backend code a bit | Chris Robinson | 2022-01-22 | 1 | -219/+235 |
| | | | | | Make some functions into class member functions, and move related declarations closer together. | ||||
* | Avoid holding a pw_proxy, hold the type it represents | Chris Robinson | 2022-01-22 | 1 | -36/+70 |
| | |||||
* | Handle duplex devices with PipeWire | Chris Robinson | 2022-01-22 | 1 | -22/+43 |
| | |||||
* | Load the PipeWire real-time configuration | Chris Robinson | 2022-01-17 | 1 | -18/+57 |
| | | | | | This is apparently needed to ensure RT threads get RT priority, separately from requesting RT processing. |