refactor daemon, refactor component loading, cleanup
a big set of changes, admittedly
- Remove obsolete modules and configuration files
- make WpPlugin inherit from WpObject and use
wp_object_activate
, which has the advantage of being asynchronous and it also has error reporting - introduce WpComponentLoader, a WpPlugin subclass that allows loading other "components". "components" can be modules, pipewire modules, lua scripts, lua configuration files, etc... it's fully extensible to load any kind of dynamically loadable piece of code
- remove WpModule; it was never useful in any way, except for
wp_module_load
, which is now available aswp_core_load_component
; also, this allows us to useWpModule
in the future to wrappw_module
, if needed - a few changes in wplua to be able to use it for split configuration files
- added a NOT_EQUALS verb in WpObjectInterest; this is now used in main.c to select all plugins except the lua-scripting one, which is activated separately
- Add global
wp_get_foo_dir()
functions to get the standard configuration, data and modules directories - refactor m-lua-scripting to be a WpComponentLoader and let it load both scripts with the lua api that we had before but also configuration files with no exposed api (except for some lua basics); scripts can also be split into multiple files (ex
config.lua
can be split inconfig.lua.d/*.lua
) - Install scripts in /usr/share/wireplumber, as users should always have the default versions available; however, allow overriding scripts from /etc/wireplumber/scripts/, so it's possible for users to copy a standard script and modify it
- Refactor the code in main.c