meson.build:
When the 'wrap_mode' option is set to 'nodownload' use a system version
of cpptoml. This does not require using git and having a network
connection during build, which is important for Linux packaging
infrastructure.
subprojects/cpptoml.wrap:
Pin revision to last release tag (v0.1.1).
lib/wptoml/*.cpp:
Remove 'include/' prefix from all cpptoml related includes, at is not
required.
Closes#17
* add library.name to not require adding `add-spa-lib` in pipewire.conf
or wireplumber.conf for this to work
* add a commented local=true; it can be useful to run those nodes
locally for testing, sometimes
there are underlying issues with the state management of the graph,
so it's not a very good idea to rely on it to activate / deactivate
our convert node depending on the links that exist
instead, track the links ourselves and create/destroy the corresponding
links to the target node accordingly; it's a more robust approach
it was also not entirely correct that we would previously configure
the convert node to be a driver (node.driver=true); maybe this caused
the underlying issues in the first place... we don't need it now
anyway, so it's gone
1. device export proxies must be destroyed manually since they are
not associated with the WpRegistry
2. the monitors should not disconnect before all WpSpaDevice objects
are destroyed; remove the manual disconnect call and let GObject
ref counting do its job (the core will disconnect when its last ref
count is dropped after the last monitor plugin is destroyed)
* do not copy the full alsa node properties set
* use a node description that makes the nodes look better in JACK
* use . instead of / as a separator for the node.name, like elsewhere
* add audio.convert spa lib association in the tests that use si-convert;
previously it used to work because library.name was present in the
properties copied from the adapter (and it so happens that the adapter
lives in the audioconvert spa plugin as well ...)
previously, we would only remove the endpoint associated with
the node, but not the monitor endpoint...
to implement that, we now store the node's associated session items
in the node's qdata instead of a local hash table, so that we
can store an arbitrary ammount of session items per node