This example tracks the default audio sink, displays its state, and binds a slider to its volume.
The slider writes back only from onMoved, so initialization and service-driven updates do not cause writes.
The write checks that the audio object exists.
This does not exercise PipeWire discovery or volume mutation.
A runtime service test needs an isolated PipeWire environment and explicit interaction assertions.
# 04: PipeWire volume
This example tracks the default audio sink, displays its state, and binds a slider to its volume.
The slider writes back only from `onMoved`, so initialization and service-driven updates do not cause writes.
The write checks that the audio object exists.
Static check:
```sh
qmllint -I /usr/lib/qt6/qml examples/04-pipewire-volume/shell.qml
```
This does not exercise PipeWire discovery or volume mutation.
A runtime service test needs an isolated PipeWire environment and explicit interaction assertions.