wireplumber/lib/wp
George Kiagiadakis ded2e34eb6 global: properly destroy impl proxies that were removed by the server
When a pw_global is removed on the server (by pw_registry_destroy() or other
means), it triggers the proxy removed & the registry global_remove callbacks,
but it does not necessarily destroy the pw_proxy.

For client proxies, we were previously destroying them by unrefing the WpProxy
in wp_global_rm_flags(), since the global was not "owned" by the WpProxy.

For impl proxies, we were not doing anything, as we expected that it would
only be removed from the registry if the local WpProxy was destroyed first.
This is not always the case, though, as the server or another client may
request to destroy this proxy with pw_registry_destroy()

Now we always destroy the pw_proxy as soon as it is removed from the registry,
no matter if it was a client or an impl proxy. If it was an impl proxy,
the WpProxy will continue to live and it's up to the code that created it
to handle the "pw-proxy-destroyed" signal and do something meaningful.
If it was a client proxy, the global will still unref the WpProxy right after
destroying the pw_proxy and there is no change in behavior.
2020-05-07 15:50:14 +03:00
..
base-endpoint.c debug: update all library code to use the new debug system 2020-04-14 18:31:17 +03:00
base-endpoint.h base-endpoint: add wp_base_endpoint_begin_fade API 2020-02-27 08:39:15 -05:00
client.c lib: add extensive API documentation 2020-02-19 10:43:07 +02:00
client.h lib: add extensive API documentation 2020-02-19 10:43:07 +02:00
configuration.c debug: update all library code to use the new debug system 2020-04-14 18:31:17 +03:00
configuration.h lib: add extensive API documentation 2020-02-19 10:43:07 +02:00
core.c core: add idle & timeout method variants that take a GClosure 2020-05-07 11:10:12 +03:00
core.h core: add idle & timeout method variants that take a GClosure 2020-05-07 11:10:12 +03:00
debug.c debug: randomize object printout colors 2020-04-27 11:49:55 +03:00
debug.h debug: handle null objects in WP_OBJECT_ARGS 2020-05-05 18:04:05 +03:00
defs.h lib: introduce export macros and hide all private symbols 2020-01-16 18:50:07 +02:00
device.c proxy: use WpSpaPod instead of struct spa_pod in public API 2020-04-21 16:11:05 -04:00
device.h lib: add extensive API documentation 2020-02-19 10:43:07 +02:00
endpoint-link.c si-standard-link: fix endpoint linking bugs and add some debug statements 2020-05-05 18:04:05 +03:00
endpoint-link.h lib: implement proxy & impl for PW_TYPE_INTERFACE_EndpointLink 2020-03-31 19:26:56 +03:00
endpoint-stream.c tests: si-simple-node-endpoint: add export test 2020-04-23 17:25:57 +03:00
endpoint-stream.h proxy: add set and get control vmethods, and remove them from sub-classes 2020-04-21 16:11:05 -04:00
endpoint.c si-standard-link: fix endpoint linking bugs and add some debug statements 2020-05-05 18:04:05 +03:00
endpoint.h session/endpoint/node: proxy the object-manager API for looking up child objects 2020-05-05 18:04:05 +03:00
error.c lib: add extensive API documentation 2020-02-19 10:43:07 +02:00
error.h lib: add extensive API documentation 2020-02-19 10:43:07 +02:00
factory.c debug: update all library code to use the new debug system 2020-04-14 18:31:17 +03:00
factory.h lib: add extensive API documentation 2020-02-19 10:43:07 +02:00
iterator.c object-manager: replace GPtrArray API with WpIterator 2020-04-21 13:21:03 +03:00
iterator.h lib: add iterator base class API 2020-04-07 14:18:11 -04:00
link.c link: add method to get object ids 2020-05-05 18:04:05 +03:00
link.h link: add method to get object ids 2020-05-05 18:04:05 +03:00
meson.build lib: add new session-bin class to handle multiple session items 2020-05-03 19:54:31 +03:00
module.c module: add annotations in wp_module_load() 2020-04-22 17:06:29 +03:00
module.h lib: add extensive API documentation 2020-02-19 10:43:07 +02:00
node.c session/endpoint/node: proxy the object-manager API for looking up child objects 2020-05-05 18:04:05 +03:00
node.h session/endpoint/node: proxy the object-manager API for looking up child objects 2020-05-05 18:04:05 +03:00
object-interest.c lib: implement WpObjectInterest 2020-05-01 19:21:08 +03:00
object-interest.h lib: implement WpObjectInterest 2020-05-01 19:21:08 +03:00
object-manager.c global: properly destroy impl proxies that were removed by the server 2020-05-07 15:50:14 +03:00
object-manager.h object-manager: add _is_installed() method to query installation status 2020-05-07 15:45:00 +03:00
policy.c port some more deprecated object-manager calls 2020-05-03 19:49:21 +03:00
policy.h lib: add extensive API documentation 2020-02-19 10:43:07 +02:00
port.c port: add wp_port_get_direction() 2020-04-22 10:59:12 +03:00
port.h port: add wp_port_get_direction() 2020-04-22 10:59:12 +03:00
private.h session-item: add _get_parent API 2020-05-03 19:54:31 +03:00
properties.c debug: update all library code to use the new debug system 2020-04-14 18:31:17 +03:00
properties.h properties: add wp_properties_ensure_unique_owner() method 2020-03-31 16:11:08 +03:00
proxy.c global: properly destroy impl proxies that were removed by the server 2020-05-07 15:50:14 +03:00
proxy.h proxy: add _request_destroy() method for destroying remote objects 2020-05-07 15:47:15 +03:00
session-bin.c session-bin: improve iterator 2020-05-04 18:03:53 +03:00
session-bin.h session-bin: add _get_n_children() method 2020-05-04 14:13:32 +03:00
session-item.c si-standard-link: fix endpoint linking bugs and add some debug statements 2020-05-05 18:04:05 +03:00
session-item.h session-item: add _get_parent API 2020-05-03 19:54:31 +03:00
session.c session/endpoint/node: proxy the object-manager API for looking up child objects 2020-05-05 18:04:05 +03:00
session.h session/endpoint/node: proxy the object-manager API for looking up child objects 2020-05-05 18:04:05 +03:00
si-factory.c modules: fix small issues in the session items 2020-04-23 15:22:32 +03:00
si-factory.h lib: implement WpSiFactory, a factory for session items 2020-03-29 15:02:59 +03:00
si-interfaces.c si-interfaces: drop the multi-endpoint interface 2020-05-04 09:35:22 +03:00
si-interfaces.h si-interfaces: drop the multi-endpoint interface 2020-05-04 09:35:22 +03:00
spa-pod.c spa-pod: fix constness and add get_object_type_name and get_choice_type_name 2020-04-21 16:11:05 -04:00
spa-pod.h spa-pod: fix constness and add get_object_type_name and get_choice_type_name 2020-04-21 16:11:05 -04:00
spa-props.c proxy: use WpSpaPod instead of struct spa_pod in public API 2020-04-21 16:11:05 -04:00
spa-type.c spa-type: add the AUDIO_CHANNEL table 2020-04-22 13:44:40 +03:00
spa-type.h spa-type: add the AUDIO_CHANNEL table 2020-04-22 13:44:40 +03:00
transition.c debug: update all library code to use the new debug system 2020-04-14 18:31:17 +03:00
transition.h lib: implement a new WpTransition class 2020-03-29 15:02:59 +03:00
wp.h lib: add new session-bin class to handle multiple session items 2020-05-03 19:54:31 +03:00