5721955686
services/pipewire: ignore ENOENT errors
...
Pipewire describes all errors as fatal, however these just aren't,
don't seem to be squashable, and resetting for them breaks users.
2026-03-04 23:26:33 -08:00
bbedward
36517a2c10
services/pipewire: manage default objs using normal qt properties
...
Fixes use after free bugs due to pointer mismatches in destructors.
Drops SimpleObjectHandle.
2026-02-23 23:17:42 -08:00
Andrei
afbc5ffd4e
services/pipewire: use node volume control when device missing
...
Some outputs which present a pipewire device object do not present
routes, instead expecting volume to be set on the associated pipewire node.
2026-02-21 20:39:03 -08:00
783b97152a
build: update CI, nix checkouts, lints
2026-01-13 23:20:55 -08:00
eecc2f88b3
services/pipewire: ignore monitors in PwNodeLinkTracker
2026-01-09 01:09:25 -08:00
11d6d67961
services/pipewire: add peak detection
2026-01-09 01:09:24 -08:00
5d8354a88b
services/pipewire: add reconnect support
2026-01-08 04:11:09 -08:00
41828c4180
services/pipewire: use node volume controls when routeDevice missing
...
For bluez audio streams and potentially other types of synthetic
device, volume controls are managed via the node and persistence is
handled by the service.
2025-12-25 20:58:05 -08:00
0a7dcf30ea
build: update clang tooling and reformat
2025-11-15 04:43:27 -08:00
1552aca3df
build: fix new clang-tidy lints
2025-11-15 04:29:12 -08:00
a00ff03944
services/pipewire: cache route device volumes to initialize nodes
...
Nodes referencing a device can be bound later than the device is
bound. If this happens, the node will not receive an initial route
device volume change event. This change caches the last known route
device volume and initializes the device with it if present.
2025-11-14 02:12:42 -08:00
ea79eaceb0
services/pipewire: do not use device for pro audio node controls
...
Note that the device object is currently still bound. This should not
be necessary.
Fixes #178
2025-10-11 21:42:58 -07:00
9662234759
services/pipewire: consider device volume step when sending updates
...
Previously a hardcoded 0.0001 offset was used to determine if a volume
change was significant enough to send to a device, however some
devices have a much more granular step size, which caused future
volume updates to be blocked.
This change replaces the hardcoded offset with the volumeStep device
route property which should be large enough for the device to work with.
Fixes #279
2025-10-01 00:29:45 -07:00
1d94144976
all: fix lints
2025-09-28 23:56:32 -07:00
4dad447570
docs: remove }; in headers + typo fixes
...
}; breaks the docgen regex
2025-07-24 17:15:03 -07:00
91dcb41d22
services/pipewire: destroy qml ifaces early to avoid user callbacks
...
Consumers of defaultAudio*Changed signals can run code between
safeDestroy being called and PwObjectIface destruction due to
signal connection order. This change destroys ifaces earlier so they
are nulled by the time a changed signal is fired from destruction,
preventing access between ~PwNode() and ~QObject() completion.
Fixes #116 #122 #124
2025-07-17 00:22:58 -07:00
3d594e16dd
core/log: track default logging categories
...
Fixes a bug in fb37be7 which ignored default logging categories due to
skipping QLoggingRegistry's filter.
2025-07-08 13:49:06 -07:00
87d99b866f
services/pipewire: destroy bound audio object when node is destroyed
...
Fixes a leak and prevents a UAF via device volume signals
derefing the freed node.
Fixes #91
2025-07-04 20:29:50 -07:00
02362c3e94
services/pipewire: add missing ; after Q_ENUM for docgen
2025-06-20 02:53:30 -07:00
95d0af8113
services/pipewire: update volume props from device for device nodes
...
Yet another device node edge case. In addition to only writing via
a pw_device when present, now we only read from one as well.
This fixes missing state changes not conveyed by the pw_node.
Fixes #35
2025-06-19 05:12:24 -07:00
517143adf9
all: fix new lints
2025-06-12 17:01:13 -07:00
nydragon
ee570ec623
services/pipewire: expose node type
2025-06-07 03:26:55 -07:00
6d8022b709
service/pipewire: add registry and node ready properties
2025-01-14 15:30:47 -08:00
2c411fce5a
all: fix new lints
2025-01-07 03:11:19 -08:00
3fc1c914c7
lint: remove reinterpret_cast lint
...
Unhelpful.
2024-12-06 20:18:38 -08:00
2571766d3b
all: fix clang 18 lints
2024-11-24 03:36:04 -08:00
b528be9426
all: fix gcc warnings
2024-11-05 13:31:24 -08:00
92252c36a3
build: fix gcc
2024-11-05 12:14:45 -08:00
7ffce72b31
all: optimize build
2024-11-05 04:15:17 -08:00
1168879d6d
build: only install necessary qml module files
2024-11-04 14:13:37 -08:00
cdeec6ee83
all: use fully qualified type names in signals and invokables
...
Further fixes qmllint/qmlls
2024-11-01 21:10:21 -07:00
98cdb87181
all: use UntypedObjectModel instead of ObjectModel in Q_PROPERTY
...
Fixes qmllint/qmlls type deduction for ObjectModels
2024-11-01 03:12:07 -07:00
746b0e70d7
all: use fully qualified type names in Q_PROPERTY
...
Fixes type deduction issues with qmllint/qmlls.
2024-11-01 01:43:22 -07:00
a931adf033
all: add DEPENDENCIES entries to qml modules
...
Fixes some qmlls/qmllint issues.
2024-10-31 14:05:02 -07:00
8e40112d14
service/pipewire: ignore metadata updates with null keys
...
Fixes #6
2024-10-06 00:57:19 -07:00
3ed39b2a79
service/pipewire: fix metadata permission checks
2024-09-26 15:52:31 -07:00
fbaec141c0
service/pipewire: improve documentation
2024-09-24 01:59:38 -07:00
fdc78ae16f
service/pipewire: add a way to set preferred default nodes
2024-09-24 01:59:01 -07:00
f889f08901
service/pipewire: refactor defaults and metadata handling
2024-09-23 23:53:54 -07:00
7f9762be53
service/pipewire: disconnect link tracker from registry on node destroy
...
Caused duplicate entries to be created due to double connection, which
then caused a crash.
2024-09-17 23:44:41 -07:00
931aca5392
service/pipewire: don't use configured default devices
...
These don't appear to be intended for use by applications, only the
non configured ones.
This fixes the default device being unset on many computers and the
device being lost on actions like headphone unplug which replace it.
2024-09-17 23:04:06 -07:00
f6ad617b67
service/pipewire: ignore insignificant device volume changes
...
Fixes devices getting stuck in a "waiting for volume change
acknowledgement" state forever.
2024-08-29 13:21:07 -07:00
79b22af093
service/pipewire: avoid overloading devices with volume changes
...
Wait until in-flight changes have been responded to before sending more.
2024-08-27 20:34:11 -07:00
c60871a7fb
service/pipewire: set device node volumes with device object
...
Fixes discrepancies between pulse and qs volumes, and volumes not
persisting across reboot or vt switches.
2024-08-27 01:34:34 -07:00
a9e4720fae
docs: use new member reference shorthand
2024-07-21 17:41:49 -07:00
e9cacbd92d
all: use type/prop shorthand in docs
2024-07-14 16:17:51 -07:00
8547d12396
service/pipewire: make binding warnings in docs more obvious
2024-06-27 20:45:27 -07:00
5016dbf0d4
all: replace list properties with ObjectModels
2024-05-23 17:28:07 -07:00
908ba3eef5
hyprland/global_shortcuts: fix crash when protocol is not present
2024-05-19 02:50:14 -07:00
3e80c4a4fd
service/pipewire: add pipewire module
2024-05-19 02:29:21 -07:00