Commit 761105c
authored
Audio server utils module (New) (#2131)
* Add audio server utilities module
Introduces a unified interface for working with PulseAudio and PipeWire
audio servers without requiring deep knowledge of either system.
Features:
- AudioServerUtils factory that auto-detects the running audio server
- PipewireUtils: Full support for PipeWire's device/profile/node hierarchy
- PulseaudioUtils: Support for PulseAudio sink/source management
- Node abstraction representing audio sinks and sources
- Methods to list, iterate, set default, and control volume of audio nodes
- CLI interface for listing and interactively selecting audio nodes
The iterator pattern (iter_sinks/iter_sources) automatically activates
profiles before yielding nodes, making them immediately usable.
* Add tests for audio server utilities
Comprehensive test coverage for the audio_server_utils module:
- NodeTests: Basic Node class instantiation
- AudioServerUtilsTests: Factory pattern and server detection
- PipewireUtilsTests: PipeWire-specific functionality including
pw-dump parsing, device/profile/node handling, and volume control
- PulseaudioUtilsTests: PulseAudio-specific functionality including
pactl parsing, sink/source management, and volume control
Signed-off-by: Paolo Gentili <paolo.gentili@canonical.com>
* Use universal_newlines in subprocess.check_output
Signed-off-by: Paolo Gentili <paolo.gentili@canonical.com>
* Add more parser tests with textwrap.dedent
Signed-off-by: Paolo Gentili <paolo.gentili@canonical.com>
* Add end-to-end integration tests for audio utilities
Signed-off-by: Paolo Gentili <paolo.gentili@canonical.com>
* fix: format
---------
Signed-off-by: Paolo Gentili <paolo.gentili@canonical.com>1 parent f643928 commit 761105c
File tree
2 files changed
+1482
-0
lines changed- checkbox-support/checkbox_support/helpers
- tests
2 files changed
+1482
-0
lines changed
0 commit comments