Skip to content

pipewire: write route volumes without volume step#808

Open
faithleysath wants to merge 1 commit into
quickshell-mirror:masterfrom
faithleysath:fix-pipewire-volume-no-volume-step
Open

pipewire: write route volumes without volume step#808
faithleysath wants to merge 1 commit into
quickshell-mirror:masterfrom
faithleysath:fix-pipewire-volume-no-volume-step

Conversation

@faithleysath
Copy link
Copy Markdown

Summary

Fix PipeWire route volume writes for devices that do not report SPA_PROP_volumeStep.

On these devices, volumeStep is parsed as -1. The previous logic only called PwDevice::setVolumes(...) from inside the volumeStep != -1 branch, so route-backed sink volume writes updated Quickshell's local mVolumes state but did not write the new volume to PipeWire.

This keeps the existing minimum-step filtering when a device reports volumeStep, and treats a missing step value as "no step threshold", allowing the route volume write to proceed.

Fixes #807

Testing

  • just configure debug -DNO_PCH=ON -DBUILD_TESTING=ON
  • just build
  • git diff --check
  • Tested locally against a Bluetooth sink (bluez_output.6C_5A_B5_EB_5E_8D.1) by writing Pipewire.defaultAudioSink.audio.volumes = [0.24, 0.24] from QML and verifying wpctl get-volume @DEFAULT_AUDIO_SINK@ changed to Volume: 0.24.

just lint-changed was not run because this local checkout does not have the required TIDYFOX environment variable configured.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PwNodeAudio volume writes only update local state on Bluetooth sinks without volumeStep

1 participant