- Nov 16, 2020
-
-
George Kiagiadakis authored
-
George Kiagiadakis authored
-
George Kiagiadakis authored
This is to mark private functions that are exposed in public headers. These functions will not be exported from the library and will generate a warning when client code is trying to use them.
-
- Nov 15, 2020
-
-
George Kiagiadakis authored
There is no good reason to keep them private
-
George Kiagiadakis authored
-
George Kiagiadakis authored
Now we have a deeper hierarchy, so requesting the features on WP_TYPE_PROXY wouldn't properly request the features on WP_TYPE_NODE
-
- Nov 14, 2020
-
-
George Kiagiadakis authored
-
- Nov 13, 2020
-
-
George Kiagiadakis authored
This is an attempt to unclutter the API of WpProxy and split functionality into smaller pieces, making it easier to work with. In this new class layout, we have the following classes: - WpObject: base class for everything; handles activating | and deactivating "features" |- WpProxy: base class for anything that wraps a pw_proxy; | handles events from pw_proxy and nothing more |- WpGlobalProxy: handles integration with the registry All the other classes derive from WpGlobalProxy. The reason for separating WpGlobalProxy from WpProxy, though, is that classes such as WpImplNode / WpSpaDevice can also derive from WpProxy now, without interfacing with the registry. All objects that come with an "info" structure and have properties and/or params also implement the WpPipewireObject interface. This provides the API to query properties and get/set params. Essentially, this is implemented by all classes except WpMetadata (pw_metadata does not have info) This interface is implemented on each object separately, using a private "mixin", which is a set of vfunc implementations and helper functions (and macros) to facilitate the implementation of this interface. A notable difference to the old WpProxy is that now features can be deactivated, so it is possible to enable something and later disable it again. This commit disables modules, tests, tools, etc, to avoid growing the patch more, while ensuring that the project compiles.
-
George Kiagiadakis authored
-
George Kiagiadakis authored
-
George Kiagiadakis authored
A base class for objects that can have optional features enabled and disabled. The intention is to make this the superclass of WpProxy. Instead of following the augment() pattern of WpProxy, this one follows the more advanced transition pattern that has been previously implemented in WpSessionItem.
-
- Oct 22, 2020
-
-
Julian Bouzas authored
-
George Kiagiadakis authored
-
- Oct 15, 2020
-
-
Julian Bouzas authored
-
- Aug 31, 2020
-
-
George Kiagiadakis authored
-
George Kiagiadakis authored
* Implement the proxy properly with info caching, methods, etc * Get rid of useless variables and includes
-
- Jul 31, 2020
-
-
George Kiagiadakis authored
-
- Jul 30, 2020
-
-
raghu447 authored
-
- Jul 22, 2020
-
-
David Runge authored
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
-
- Jun 29, 2020
-
-
George Kiagiadakis authored
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)
-
- Jun 18, 2020
-
-
George Kiagiadakis authored
otherwise the parent never un-exports or de-activates itself and we leak a bunch of stuff
-
- Jun 16, 2020
-
-
George Kiagiadakis authored
it requires GLib 2.60 and it's not worth it
-
George Kiagiadakis authored
g_object_get_property did not support uninitialized GValues prior to GLib 2.60, and it's not worth requiring 2.60 for this reason Fixes #11
-
Julian Bouzas authored
-
George Kiagiadakis authored
-
- Jun 15, 2020
-
-
George Kiagiadakis authored
- pw_core_info has data that represent the remote core - pw_core properties are the properties of its pw_client, initially inherited from the pw_context, which can be updated either when calling pw_context_connect() or later at runtime (the pw_core calls pw_client_update_properties() on its pw_client) wp_core_update_properties() is made in such a way so that we can do: ``` clone = wp_core_clone(core); wp_core_update_properties(clone, ...); wp_core_connect(clone); ``` and get clone to have different properties than the original core, while they still share the same pw_context underneath
-
George Kiagiadakis authored
also delay the "connected" signal until info is there
-
George Kiagiadakis authored
a method to take the internal pw_properties without copying
-
George Kiagiadakis authored
and do not allow writing to wrapped pw_properties, since they are const now
-
George Kiagiadakis authored
the spa object undereath doesn't do that and we lose a bunch of properties otherwise
-
- Jun 12, 2020
-
-
Julian Bouzas authored
-
- Jun 11, 2020
-
-
George Kiagiadakis authored
-
- Jun 10, 2020
-
-
Julian Bouzas authored
-
Julian Bouzas authored
-
George Kiagiadakis authored
-
George Kiagiadakis authored
By mistake, WpImplNode was developed by keeping in mind that the proxy returned by pw_core_export() is a PW_TYPE_INTERFACE_Node, but this is not true. It's actually a ClientNode... Unfortunately, making WpImplNode work as if it was a WpNode is not so easy, especially when it comes to handling params, which need to be queried syncrhonously on the underlying spa_node. So, instead of fixing WpImplNode to work as a WpNode, we choose to disconnect them. This way, WpImplNode will not be used as a proxy in the registry and the registry will normally create WpNode proxies instead, making round-trips through the server to change node params.
-
- Jun 04, 2020
-
-
Julian Bouzas authored
-
Julian Bouzas authored
-
Julian Bouzas authored
-
Julian Bouzas authored
-