Component Loader

digraph inheritance { rankdir=LR; GObject -> WpObject; WpObject -> WpPlugin; WpPlugin -> WpComponentLoader; }

struct WpComponentLoader

The component loader is a plugin that provides the ability to load components.

Components can be:

  • WirePlumber modules (libraries that provide WpPlugin and WpSiFactory objects)

  • PipeWire modules (libraries that extend libpipewire)

  • Scripts (ex. lua scripts)

  • Configuration files

The WirePlumber library provides built-in support for loading WirePlumber and PipeWire modules, without a component loader. For other kinds of components, like the lua scripts and config files, a component loader is provided in by external WirePlumber module.

struct _WpComponentLoaderClass

Public Members

WpPluginClass parent_class
gboolean (*supports_type)(WpComponentLoader *self, const gchar *type)
gboolean (*load)(WpComponentLoader *self, const gchar *component, const gchar *type, GVariant *args, GError **error)
gboolean wp_core_load_component(WpCore *self, const gchar *component, const gchar *type, GVariant *args, GError **error)

Loads the specified component on self.

The type will determine which component loader to use. The following types are built-in and will always work without a component loader:

  • ”module” - Loads a WirePlumber module

  • ”pw_module” - Loads a PipeWire module

  • self – the core

  • component – the module name or file name

  • type – the type of the component

  • args – (transfer floating)(nullable): additional arguments for the component, usually a dict or a string

  • error – (out) (optional): return location for errors, or NULL to ignore


TRUE if loaded, FALSE if there was an error

WP_TYPE_COMPONENT_LOADER (wp_component_loader_get_type ())

The WpComponentLoader GType.