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
gbooleansupports_type)(WpComponentLoader *self, const gchar *type)
gbooleanload)(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

Return
TRUE if loaded, FALSE if there was an error
Parameters
  • 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

WP_TYPE_COMPONENT_LOADER (wp_component_loader_get_type ())

The WpComponentLoader GType.