Spa Device¶
-
struct
WpSpaDevice¶ A WpSpaDevice allows running a
spa_deviceobject locally, loading the implementation from a SPA factory. This is useful to run device monitors inside the session manager and have control over creating the actual nodes that thespa_devicerequests to create.To enable the spa device, call wp_object_activate() requesting WP_SPA_DEVICE_FEATURE_ENABLED.
For actual devices (not device monitors) it also possible and desirable to export the device to PipeWire, which can be done by requesting WP_PROXY_FEATURE_BOUND from wp_object_activate(). When exporting, the export should be done before enabling the device, by requesting both features at the same time.
GObject Properties
GObject Signals
- create-object
- object-removed
-
enum
wpspadevice::WpSpaDeviceFeatures¶ Flags to be used as WpObjectFeatures for WpSpaDevice.
Values:
-
WP_SPA_DEVICE_FEATURE_ENABLED= (WP_PROXY_FEATURE_CUSTOM_START << 0)¶ enables a spa device
-
-
WpSpaDevice*
wp_spa_device_new_wrap(WpCore * core, gpointer spa_device_handle, WpProperties * properties)¶ Constructs an SPA Device object from an existing device handle.
- Return
(transfer full): A new WpSpaDevice
- Parameters
core: the wireplumber corespa_device_handle: the spa device handleproperties: (nullable) (transfer full): additional properties of the device
-
WpSpaDevice*
wp_spa_device_new_from_spa_factory(WpCore * core, const gchar * factory_name, WpProperties * properties)¶ Constructs a
SPA_TYPE_INTERFACE_Deviceby loading the given SPA factory_name.To export this device to the PipeWire server, you need to call wp_object_activate() requesting WP_PROXY_FEATURE_BOUND and wait for the operation to complete.
- Return
(nullable) (transfer full): A new WpSpaDevice wrapping the device that was constructed by the factory, or NULL if the factory does not exist or was unable to construct the device
- Parameters
core: the wireplumber corefactory_name: the name of the SPA factoryproperties: (nullable) (transfer full): properties to be passed to device constructor
-
WpProperties*
wp_spa_device_get_properties(WpSpaDevice * self)¶ Gets the properties of this device.
- Return
(transfer full): the device properties
- Parameters
self: the spa device
-
WpIterator*
wp_spa_device_new_managed_object_iterator(WpSpaDevice * self)¶ Iterates through all the objects managed by this device.
- Return
(transfer full): a WpIterator that iterates over all the objects managed by this device
- Since
0.4.11
- Parameters
self: the spa device
-
GObject*
wp_spa_device_get_managed_object(WpSpaDevice * self, guint id)¶ Gets one of the objects managed by this device.
- Return
(transfer full): the managed object associated with id
- Parameters
self: the spa deviceid: the (device-internal) id of the object to get
-
void
wp_spa_device_store_managed_object(WpSpaDevice * self, guint id, GObject * object)¶ Stores or removes a managed object into/from a device.
- Parameters
self: the spa deviceid: the (device-internal) id of the objectobject: (transfer full) (nullable): the object to store or NULL to remove the managed object associated with id
-
WP_TYPE_SPA_DEVICE(wp_spa_device_get_type ())¶ The WpSpaDevice GType.