services/pipewire: use node volume controls when routeDevice missing
Some checks failed
Build / Nix (push) Has been cancelled
Build / Nix-1 (push) Has been cancelled
Build / Nix-2 (push) Has been cancelled
Build / Nix-3 (push) Has been cancelled
Build / Nix-4 (push) Has been cancelled
Build / Nix-5 (push) Has been cancelled
Build / Nix-6 (push) Has been cancelled
Build / Nix-7 (push) Has been cancelled
Build / Nix-8 (push) Has been cancelled
Build / Nix-9 (push) Has been cancelled
Build / Nix-10 (push) Has been cancelled
Build / Nix-11 (push) Has been cancelled
Build / Nix-12 (push) Has been cancelled
Build / Nix-13 (push) Has been cancelled
Build / Nix-14 (push) Has been cancelled
Build / Nix-15 (push) Has been cancelled
Build / Nix-16 (push) Has been cancelled
Build / Nix-17 (push) Has been cancelled
Build / Nix-18 (push) Has been cancelled
Build / Nix-19 (push) Has been cancelled
Build / Nix-20 (push) Has been cancelled
Build / Nix-21 (push) Has been cancelled
Build / Nix-22 (push) Has been cancelled
Build / Nix-23 (push) Has been cancelled
Build / Nix-24 (push) Has been cancelled
Build / Nix-25 (push) Has been cancelled
Build / Nix-26 (push) Has been cancelled
Build / Nix-27 (push) Has been cancelled
Build / Nix-28 (push) Has been cancelled
Build / Nix-29 (push) Has been cancelled
Build / Nix-30 (push) Has been cancelled
Build / Nix-31 (push) Has been cancelled
Build / Archlinux (push) Has been cancelled
Lint / Lint (push) Has been cancelled

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.
This commit is contained in:
outfoxxed 2025-12-25 20:58:05 -08:00
parent 3918290c1b
commit 41828c4180
No known key found for this signature in database
GPG key ID: 4C88A185FB89301E
3 changed files with 9 additions and 3 deletions

View file

@ -26,6 +26,7 @@ set shell id.
## Bug Fixes ## Bug Fixes
- Fixed volume control breaking with pipewire pro audio mode. - Fixed volume control breaking with pipewire pro audio mode.
- Fixed volume control breaking with bluez streams and potentially others.
- Fixed escape sequence handling in desktop entries. - Fixed escape sequence handling in desktop entries.
- Fixed volumes not initializing if a pipewire device was already loaded before its node. - Fixed volumes not initializing if a pipewire device was already loaded before its node.
- Fixed hyprland active toplevel not resetting after window closes. - Fixed hyprland active toplevel not resetting after window closes.

View file

@ -222,8 +222,11 @@ void PwNode::onInfo(void* data, const pw_node_info* info) {
self->routeDevice = id; self->routeDevice = id;
if (self->boundData) self->boundData->onDeviceChanged(); if (self->boundData) self->boundData->onDeviceChanged();
} else { } else {
qCCritical(logNode) << self << "has attached device" << self->device qCDebug(
<< "but no card.profile.device property."; logNode
) << self
<< "has attached device" << self->device
<< "but no card.profile.device property. Node volume control will be used.";
} }
} }

View file

@ -244,7 +244,9 @@ public:
qint32 routeDevice = -1; qint32 routeDevice = -1;
bool proAudio = false; bool proAudio = false;
[[nodiscard]] bool shouldUseDevice() const { return this->device && !this->proAudio; } [[nodiscard]] bool shouldUseDevice() const {
return this->device && !this->proAudio && this->routeDevice != -1;
}
signals: signals:
void propertiesChanged(); void propertiesChanged();