- May 31, 2020
-
-
George Kiagiadakis authored
so that we can filter proxies by id on object managers
-
George Kiagiadakis authored
-
- May 19, 2020
-
-
Julian Bouzas authored
-
- May 14, 2020
-
-
George Kiagiadakis authored
-
George Kiagiadakis authored
-
- May 13, 2020
-
-
George Kiagiadakis authored
This happens when the daemon fails to connect and the not installed object managers try to get installed, but the weak ref to the core is already gone
-
George Kiagiadakis authored
object managers that are registered a bit early (such as the one in wireplumber-cli) have no use if they are declared as installed before any globals appear. After the initial registry startup, there should be at least 1 global, the core (id=0), so even if this client has no access to any object, the object manager should be able to finish its installation successfully
-
George Kiagiadakis authored
-
- May 12, 2020
-
-
Julian Bouzas authored
-
- May 07, 2020
-
-
George Kiagiadakis authored
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.
-
George Kiagiadakis authored
-
- May 03, 2020
-
-
George Kiagiadakis authored
-
- May 01, 2020
-
-
George Kiagiadakis authored
-
- Apr 24, 2020
-
-
George Kiagiadakis authored
The 'installed' signal can be used to know that there are no known objects that are being prepared internally, so the object manager is ready to use. This also improves internal state management so that the 'objects-changed' signal cannot be fired earlier than it should. Previously there were corner cases with complex proxy features, as the object manager relied on the fact that after a core 'sync' it is safe to assume that all proxies are augmented... that's not always the case.
-
- Apr 21, 2020
-
-
Julian Bouzas authored
-
George Kiagiadakis authored
+ add the useful _find_proxy() method
-
- Apr 14, 2020
-
-
George Kiagiadakis authored
+ enable the new log writer on the executables + enable structured logging in the tests
-
- Mar 31, 2020
-
-
George Kiagiadakis authored
-
George Kiagiadakis authored
-
George Kiagiadakis authored
This allows having constraints on the pw properties and the GObject properties of the proxy, instead of just on the global properties. This is only useful for constraints on impl proxies, since the globals coming from the registry don't have a proxy object associated at the time they are added in the object managers
-
George Kiagiadakis authored
-
- Feb 19, 2020
-
-
George Kiagiadakis authored
-
- Feb 17, 2020
-
-
George Kiagiadakis authored
the global is stored internally and the returned ref is only useful in the WpProxy code, not in the registry_global() event
-
George Kiagiadakis authored
-
George Kiagiadakis authored
it doesn't matter, because we don't use it, but for the sake of readability
-
- Feb 14, 2020
-
-
George Kiagiadakis authored
-
George Kiagiadakis authored
-
George Kiagiadakis authored
some code is expecting things to happen in that order...
-
George Kiagiadakis authored
... in case the global is removed from the registry before the initial augment completes
-
George Kiagiadakis authored
When a new global is created, it is not certain if the registry global event or the proxy bound event will be fired first. In order to make sure we associate all proxies to their WpGlobals correctly, we now wait a core sync before exposing globals to the object managers, so that in case the implementation proxy receives the bound event after the registry creates the WpGlobal, we can make sure to use this proxy instead of constructing a new one through the object managers
-
George Kiagiadakis authored
There are 3 kinds of WpProxy objects: * the ones that are created as a result of binding a global from the registry * the ones that are created as a result of calling into a remote factory (wp_node_new_from_factory, etc...) * the ones that are a local implementation of an object (WpImplNode, etc...) and are exported Previously the object manager was only able to track the first kind. With these changes we can now also have globals associated with WpProxies that were created earlier (and caused the creation of the global). This saves some resources and reduces round-trips (in case client code wants to change properties of an object that is locally implemented, it shouldn't need to do a round-trip through the server)
-
- Feb 12, 2020
-
-
George Kiagiadakis authored
-
- Feb 10, 2020
-
-
George Kiagiadakis authored
+ use the pw_proxy API to find the bound id instead of relying on WpGlobal This has the advantage that it works also for exported objects and for objects that have been created by calling into a remote factory (such as the link-factory), so we can now know the global id of all proxies, not only the ones that have been created by the registry.
-
- Jan 13, 2020
-
-
Julian Bouzas authored
-
- Dec 05, 2019
-
-
George Kiagiadakis authored
Otherwise, if the object manager is destroyed while a sync is in progress, we get an invalid 'self' pointer on the callback later, which is being called regardless There is a bit more work that should be done in the core to avoid leaking this ref in case pipewire disconnects before the sync is completed
-
- Dec 04, 2019
-
-
Julian Bouzas authored
-
- Nov 27, 2019
-
-
Julian Bouzas authored
-
- Nov 13, 2019
-
-
George Kiagiadakis authored
-