# Component Loader

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

  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

  Returns

    TRUE if loaded, FALSE if there was an error

WP_TYPE_COMPONENT_LOADER (wp_component_loader_get_type ())

  The WpComponentLoader GType.