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

@ -125,7 +125,8 @@ yambar = executable(
version,
dependencies: [bar, libepoll, libinotify, pixman, yaml, threads, dl, tllist, fcft] +
decorations + particles + modules,
c_args: [plugin_mpd_enabled? '-DPLUGIN_ENABLED_MPD':[]],
c_args: [plugin_mpd_enabled? '-DPLUGIN_ENABLED_MPD':[],
plugin_pulse_enabled? '-DPLUGIN_ENABLED_PULSE':[]],
build_rpath: '$ORIGIN/modules:$ORIGIN/decorations:$ORIGIN/particles',
export_dynamic: true,
install: true,
@ -162,7 +163,10 @@ summary(
)
summary(
{'Music Player Daemon (MPD)': plugin_mpd_enabled},
{
'Music Player Daemon (MPD)': plugin_mpd_enabled,
'Pulseaudio': plugin_pulse_enabled,
},
section: 'Optional modules',
bool_yn: true
)