Skip to content

Commit 761105c

Browse files
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

2 files changed

+1482
-0
lines changed

0 commit comments

Comments
 (0)