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.
run_command() was only run at configure time, meaning the generated
version (that was passed on to the sources via -DYAMBAR_VERSION)
became stale.
Fix by implementing a shell script that generates a header file, and
wrap this in a custom target that is run every time (but the generated
file is only updated when the version changes)
Export project version with -DF00BAR_VERSION.
This is by default set to the meson project version.
However, if git is found, and we manage to run 'git describe' and 'git
branch' in the source directory, version is set to the output of that
instead.