comparison DPF-Prymula-audioplugins/dpf/distrho/src/clap/plugin-factory.h @ 3:84e66ea83026

DPF-Prymula-audioplugins-0.231015-2
author prymula <prymula76@outlook.com>
date Mon, 16 Oct 2023 21:53:34 +0200
parents
children
comparison
equal deleted inserted replaced
2:cf2cb71d31dd 3:84e66ea83026
1 #pragma once
2
3 #include "plugin.h"
4
5 static const CLAP_CONSTEXPR char CLAP_PLUGIN_FACTORY_ID[] = "clap.plugin-factory";
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10
11 // Every method must be thread-safe.
12 // It is very important to be able to scan the plugin as quickly as possible.
13 //
14 // The host may use clap_plugin_invalidation_factory to detect filesystem changes
15 // which may change the factory's content.
16 typedef struct clap_plugin_factory {
17 // Get the number of plugins available.
18 // [thread-safe]
19 uint32_t(CLAP_ABI *get_plugin_count)(const struct clap_plugin_factory *factory);
20
21 // Retrieves a plugin descriptor by its index.
22 // Returns null in case of error.
23 // The descriptor must not be freed.
24 // [thread-safe]
25 const clap_plugin_descriptor_t *(CLAP_ABI *get_plugin_descriptor)(
26 const struct clap_plugin_factory *factory, uint32_t index);
27
28 // Create a clap_plugin by its plugin_id.
29 // The returned pointer must be freed by calling plugin->destroy(plugin);
30 // The plugin is not allowed to use the host callbacks in the create method.
31 // Returns null in case of error.
32 // [thread-safe]
33 const clap_plugin_t *(CLAP_ABI *create_plugin)(const struct clap_plugin_factory *factory,
34 const clap_host_t *host,
35 const char *plugin_id);
36 } clap_plugin_factory_t;
37
38 #ifdef __cplusplus
39 }
40 #endif