Add initial pulseaudio module support

This seems to work quite well including hotplugging of devices, changes to
default sinks/sources etc.

So far I only provided percentage values for sink/source since they seem most
useful. Defaults are set to DEFAULT_SINK/DEFAULT_SOURCE which means it will
follow whatever defaults are at the moment (instead of being fixed to a given
device).

One thing currently left unhandled is when pulseaudio/pipewire gets
disconnected/restarted. In such a case we mark the sink/source as offline but
there is no reconnect attempted later.

Added man page + more complex example which includes mixed usage of both input
and output.
This commit is contained in:
Stanislav Ochotnický 2021-09-17 13:29:30 +02:00
parent 6250360c58
commit 04d47cba3c
8 changed files with 566 additions and 2 deletions

View file

@ -43,6 +43,9 @@ EXTERN_MODULE(label);
EXTERN_MODULE(mpd);
#endif
EXTERN_MODULE(network);
#if defined(PLUGIN_ENABLED_PULSE)
EXTERN_MODULE(pulse);
#endif
EXTERN_MODULE(removables);
EXTERN_MODULE(river);
EXTERN_MODULE(sway_xkb);
@ -123,6 +126,9 @@ init(void)
REGISTER_CORE_MODULE(mpd, mpd);
#endif
REGISTER_CORE_MODULE(network, network);
#if defined(PLUGIN_ENABLED_PULSE)
REGISTER_CORE_MODULE(pulse, pulse);
#endif
REGISTER_CORE_MODULE(removables, removables);
#if defined(HAVE_PLUGIN_river)
REGISTER_CORE_MODULE(river, river);