|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #pragma once
-
- #include "version.h"
- #include "private/macros.h"
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- // This interface is the entry point of the dynamic library.
- //
- // CLAP plugins standard search path:
- //
- // Linux
- // - ~/.clap
- // - /usr/lib/clap
- //
- // Windows
- // - %CommonFilesFolder%/CLAP/
- // - %LOCALAPPDATA%/Programs/Common/CLAP/
- //
- // MacOS
- // - /Library/Audio/Plug-Ins/CLAP
- // - ~/Library/Audio/Plug-Ins/CLAP
- //
- // In addition to the OS-specific default locations above, a CLAP host must query the environment
- // for a CLAP_PATH variable, which is a list of directories formatted in the same manner as the host
- // OS binary search path (PATH on Unix, separated by `:` and Path on Windows, separated by ';', as
- // of this writing).
- //
- // Each directory should be recursively searched for files and/or bundles as appropriate in your OS
- // ending with the extension `.clap`.
- //
- // Every method must be thread-safe.
- typedef struct clap_plugin_entry {
- clap_version_t clap_version; // initialized to CLAP_VERSION
-
- // This function must be called first, and can only be called once.
- //
- // It should be as fast as possible, in order to perform a very quick scan of the plugin
- // descriptors.
- //
- // It is forbidden to display graphical user interface in this call.
- // It is forbidden to perform user interaction in this call.
- //
- // If the initialization depends upon expensive computation, maybe try to do them ahead of time
- // and cache the result.
- //
- // If init() returns false, then the host must not call deinit() nor any other clap
- // related symbols from the DSO.
- bool (CLAP_ABI *init)(const char *plugin_path);
-
- // No more calls into the DSO must be made after calling deinit().
- void (CLAP_ABI *deinit)(void);
-
- // Get the pointer to a factory. See plugin-factory.h for an example.
- //
- // Returns null if the factory is not provided.
- // The returned pointer must *not* be freed by the caller.
- const void *(CLAP_ABI *get_factory)(const char *factory_id);
- } clap_plugin_entry_t;
-
- /* Entry point */
- CLAP_EXPORT extern const clap_plugin_entry_t clap_entry;
-
- #ifdef __cplusplus
- }
- #endif
|