So pipewire daemon is able to find pipewire-media-session from the
location it's installed to, even when it's not in $PATH.
For the `pw-ininstalled.sh` and `make run` invocations, provide a
`src/daemon/pipewire-uninstalled.conf` that still uses the relative
path, but isn't installed.
Fix up clients that say they have fixed properties while in fact
they are not. Assume that when there are alternatives, the property
was in fact not fixed.
When a resource is doing an operation that sets the client in the busy
state, make sure we unblock the client again when the resource is
destroyed before we could complete the operation or else the client
is stuck forever.
dup the fd when added to the outgoing buffer and close it againç
when sent. This ensures the fd remains valid in the buffer. A
quick add/remove of memory before a buffer flush could close the
fd before we can send it and then we get a bad fd and disconnect
the client.
When the proxy was removed, we remove the event listener and don't
set the proxy to NULL because the destroy event is not called anymore.
If we then call disconnect twice, we try to destroy the proxy again
and assert.
Remove the extra proxy to the node, it's awkward and not needed.
pw_core_export() returns a handle to the remote object with the
interface of the factory.
If the node is destroyed, make sure the proxy doesn't access
it anymore.
If the handle is removed or destroyed, make sure we remove the
proxy related info around the node. Never destroy the proxy
ourselves, this is something the app needs to do when it is
ready.
Don't try to use the proxy destroy event to destroy the objects.
It is not called automatically anymore, only when we call
pw_proxy_destroy() ourselves.
Destroy the proxy objects when we destroy the session managed
object instead, either when the global is removed or when we
explicitly call _destroy()
Add an object free signal to clean up final resources after the
proxies have been destroyed, like closing libraries.
Track and destroy our link proxies.
Don't set the core to NULL in _remove so that the proxies
will be removed from the map when they are destroyed. Then make
another run over the map to warn about the proxies that were not
destroyed.