1 # Register well-known SPA factories
2 # These do not need to exist on the system to be registered
3 add-spa-lib audio.convert* audioconvert/libspa-audioconvert
4 add-spa-lib api.alsa.* alsa/libspa-alsa
5 add-spa-lib api.v4l2.* v4l2/libspa-v4l2
6 add-spa-lib api.bluez5.* bluez5/libspa-bluez5
8 # the client-device pipewire module is needed for libwireplumber-module-monitor
9 load-pipewire-module libpipewire-module-client-device
11 # Basic pipewire integration - do not remove
12 load-module C libwireplumber-module-pipewire
14 # Grants access to security confined clients
15 load-module C libwireplumber-module-client-permissions
17 # Endpoint that provides high-level volume controls for the AGL mixer
18 # The streams specified here are the ones that will appear in the mixer.
19 # They must match the stream names in the alsa-udev module,
20 # except for "Master", which is treated specially.
21 load-module C libwireplumber-module-mixer {
22 "streams": <["Master", "Multimedia", "Speech-Low", "Custom-Low",
23 "Navigation", "Speech-High", "Custom-High",
24 "Communication", "Emergency"]>
27 load-module C libwireplumber-module-monitor {
28 "factory": <"api.alsa.enum.udev">,
29 "flags": <["use-adapter", "activate-devices"]>
32 # Monitors the ALSA devices that are discovered via udev
33 # and creates softdsp-endopints for each one of them
34 # The streams specified here are the ones that will be available for linking
35 # clients. Currently, they are matched against the client's role string.
36 load-module C libwireplumber-module-pw-alsa-udev {
37 "streams": <["Multimedia", "Speech-Low", "Custom-Low",
38 "Navigation", "Speech-High", "Custom-High",
39 "Communication", "Emergency"]>
42 # Monitors the Audio clients that are discovered via pipewire
43 # and creates simple-endpoints for each one of them
44 load-module C libwireplumber-module-pw-audio-client
46 # Implements linking clients to devices and maintains
47 # information about the devices to be used.
49 # - Devices must be specified in hw:X,Y format, where X and Y are integers.
50 # Things like hw:Intel,0 or paths are not understood.
51 # - Roles and priorities can be arbitrary strings and arbitrary numbers
52 # - Roles are matched against the stream names specified in the modules above.
53 load-module C libwireplumber-module-simple-policy {
54 "default-playback-device": <"PLAYBACK">,
55 "default-capture-device": <"CAPTURE">,