PipeWire Object Proxy Interfaces
WpPipewireObject
An interface for standard PipeWire objects. The common characteristic of all objects that implement this interface is the presence of an "info" structure that contains additional properties for this object (in the form of a spa_dict / pw_properties) and optionally also some parameters that can be enumerated and set on the object.
Methods
wp_pipewire_object_enum_params
wp_pipewire_object_enum_params (WpPipewireObject * self, const gchar* id, WpSpaPod * filter, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data)
Enumerate object parameters. This will asynchronously return the result, or an error, by calling the given callback. The result is going to be a WpIterator containing WpSpaPod objects, which can be retrieved with wp_pipewire_object_enum_params_finish.
Parameters:
self
–
the pipewire object
id
(
[nullable])
–
the parameter id to enumerate or NULL for all parameters
filter
(
[nullable])
–
a param filter or NULL
cancellable
(
[nullable])
–
a cancellable for the async operation
callback
(
[scope async])
–
a callback to call with the result
user_data
(
[closure])
–
data to pass to callback
wp_pipewire_object_enum_params_finish
WpIterator * wp_pipewire_object_enum_params_finish (WpPipewireObject * self, GAsyncResult* res, GError** error)
Parameters:
self
–
the pipewire object
res
–
the async result
error
(
[out][optional])
–
the reported error of the operation, if any
an iterator to iterate over the collected params, or NULL if the operation resulted in error; the items in the iterator are WpSpaPod
wp_pipewire_object_enum_params_sync
WpIterator * wp_pipewire_object_enum_params_sync (WpPipewireObject * self, const gchar* id, WpSpaPod * filter)
Parameters:
self
–
id
–
filter
–
wp_pipewire_object_get_native_info
gconstpointer wp_pipewire_object_get_native_info (WpPipewireObject * self)
Requires WP_PIPEWIRE_OBJECT_FEATURE_INFO
Parameters:
self
–
the pipewire object
the native pipewire info structure of this object (pw_node_info, pw_port_info, etc...)
wp_pipewire_object_get_param_info
GVariant* wp_pipewire_object_get_param_info (WpPipewireObject * self)
Returns the available parameters of this pipewire object. The return value
is a variant of type a{ss}
, where the key of each map entry is a spa param
type id (the same ids that you can pass in wp_pipewire_object_enum_params)
and the value is a string that can contain the following letters,
each of them representing a flag:
-
r
: the param is readable (SPA_PARAM_INFO_READ
) -
w
: the param is writable (SPA_PARAM_INFO_WRITE
)
For params that are readable, you can query them with wp_pipewire_object_enum_params
Params that are writable can be set with wp_pipewire_object_set_param
Requires WP_PIPEWIRE_OBJECT_FEATURE_INFO
Parameters:
self
–
the pipewire object
a variant of type a{ss}
or NULL
if the object does not support params at all
wp_pipewire_object_get_properties
WpProperties * wp_pipewire_object_get_properties (WpPipewireObject * self)
Requires WP_PIPEWIRE_OBJECT_FEATURE_INFO
Parameters:
self
–
the pipewire object
the pipewire properties of this object; normally these are the properties that are part of the info structure
wp_pipewire_object_get_property
const gchar* wp_pipewire_object_get_property (WpPipewireObject * self, const gchar* key)
Returns the value of a single pipewire property. This is the same as getting the whole properties structure with wp_pipewire_object_get_properties and accessing a single property with wp_properties_get, but saves one call and having to clean up the WpProperties reference count afterwards.
The value is owned by the proxy, but it is guaranteed to stay alive until execution returns back to the event loop.
Requires WP_PIPEWIRE_OBJECT_FEATURE_INFO
Parameters:
self
–
the pipewire object
key
–
the property name
the value of the pipewire property key or NULL if the property doesn't exist
wp_pipewire_object_new_properties_iterator
WpIterator * wp_pipewire_object_new_properties_iterator (WpPipewireObject * self)
Requires WP_PIPEWIRE_OBJECT_FEATURE_INFO
Parameters:
self
–
the pipewire object
an iterator that iterates over the pipewire properties of this object. Use wp_properties_iterator_item_get_key and wp_properties_iterator_item_get_value to parse the items returned by this iterator.
wp_pipewire_object_set_param
gboolean wp_pipewire_object_set_param (WpPipewireObject * self, const gchar* id, guint32 flags, WpSpaPod * param)
Sets a parameter on the object.
Parameters:
self
–
the pipewire object
id
–
the parameter id to set
flags
–
optional flags or 0
param
(
[transfer: full])
–
the parameter to set
TRUE on success, FALSE if setting the param failed
Signals
params-changed
params_changed_callback (WpPipewireObject * self, guint id, gpointer user_data)
Emitted when the params for id have changed. On proxies that cache params from a remote object, this is emitted after the cached values have changed.
You can expect this to be emitted only when the relevant WP_PIPEWIRE_OBJECT_FEATURE_PARAM_* has been activated.
Parameters:
self
–
the pipewire object
id
–
the parameter id
user_data
–
Flags: Run First
Properties
native-info
“native-info” gpointer
Flags : Read
param-info
“param-info” GVariant*
Flags : Read
Virtual Methods
enum_params
enum_params (WpPipewireObject * self, const gchar* id, WpSpaPod * filter, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data)
Parameters:
self
–
id
–
filter
–
cancellable
–
callback
–
user_data
–
enum_params_finish
WpIterator * enum_params_finish (WpPipewireObject * self, GAsyncResult* res, GError** error)
Parameters:
self
–
res
–
error
–
enum_params_sync
WpIterator * enum_params_sync (WpPipewireObject * self, const gchar* id, WpSpaPod * filter)
Parameters:
self
–
id
–
filter
–
get_native_info
gconstpointer get_native_info (WpPipewireObject * self)
Parameters:
self
–
get_param_info
GVariant* get_param_info (WpPipewireObject * self)
Parameters:
self
–
get_properties
WpProperties * get_properties (WpPipewireObject * self)
Parameters:
self
–
set_param
gboolean set_param (WpPipewireObject * self, const gchar* id, guint32 flags, WpSpaPod * param)
Parameters:
self
–
id
–
flags
–
param
–
Constants
WP_TYPE_PIPEWIRE_OBJECT
#define WP_TYPE_PIPEWIRE_OBJECT (wp_pipewire_object_get_type ())
The WpPipewireObject GType
The results of the search are