|
Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
|
Platform-independent wrapper for loading plugin shared libraries. More...
#include <src/plugins/plugin_library.h>
Public Types | |
| using | FunctionSymbol = void (*) () |
| Function pointer type returned when resolving library symbols. | |
Public Member Functions | |
| PluginLibrary (const PluginLibrary &)=delete | |
| PluginLibrary & | operator= (const PluginLibrary &)=delete |
| PluginLibrary (PluginLibrary &&other) noexcept | |
| PluginLibrary & | operator= (PluginLibrary &&other) noexcept |
| bool | load (const utils::Utf8String &path) |
| Loads the plugin library at the given path. | |
| FunctionSymbol | resolve (std::string_view symbol_name) |
| Resolves a symbol from the loaded library. | |
| void | unload () |
| Unloads the library. | |
| bool | is_loaded () const |
| Returns true if the library is currently loaded. | |
| utils::Utf8String | error_string () const |
| Returns a human-readable description of the last error. | |
Platform-independent wrapper for loading plugin shared libraries.
Encapsulates the platform-specific details of loading plugin binaries (QLibrary on Linux/Windows, with macOS bundle resolution).
TODO: Replace the internal QLibrary implementation with CFBundle on macOS (like JUCE does for VST3) for proper bundle handling without manual path resolution.
Definition at line 24 of file plugin_library.h.
| using zrythm::plugins::PluginLibrary::FunctionSymbol = void (*) () |
Function pointer type returned when resolving library symbols.
Definition at line 28 of file plugin_library.h.
|
nodiscard |
Loads the plugin library at the given path.
On macOS, if the path is a directory bundle (e.g., .clap/, .vst3/), resolves to the binary inside Contents/MacOS/ before loading.