Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
clap_entry.hpp File Reference
#include <pulp/format/processor.hpp>
#include <pulp/format/detail/editor_environment.hpp>
#include <pulp/format/detail/locale_independent_float.hpp>
#include <pulp/format/plugin_state_io.hpp>
#include <pulp/format/parameter_text.hpp>
#include <pulp/format/param_group_projection.hpp>
#include <pulp/format/registry.hpp>
#include <pulp/format/clap_adapter.hpp>
#include <pulp/format/clap_contract_gui.hpp>
#include <pulp/runtime/log.hpp>
#include <pulp/runtime/system.hpp>
#include <clap/clap.h>
#include <clap/ext/audio-ports-config.h>
#include <cctype>
#include <charconv>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <chrono>
#include <string>
#include <string_view>

Go to the source code of this file.

Classes

struct  pulp::format::clap_generic::ClapPluginRecord

Namespaces

namespace  pulp
namespace  pulp::format
 What the product grants a device: the quota table indexed by capability tier and live thermal state.
namespace  pulp::format::clap_generic

Macros

#define PULP_CLAP_CONTRACT_GUI   1
#define PULP_CLAP_BUNDLE_ENTRY()
#define PULP_CLAP_BUNDLE_PLUGIN(Ident, factory_fn)
#define PULP_CLAP_PLUGIN(factory_fn)

Functions

void pulp::format::clap_generic::register_clap_record (ProcessorFactory factory, bool publish_keyed)
void pulp::format::clap_generic::init_record (ClapPluginRecord &rec)
void pulp::format::clap_generic::init_all_records ()
void pulp::format::clap_generic::reset_clap_records_for_testing ()
ClapPluginRecord * pulp::format::clap_generic::find_clap_record (const char *id)
uint32_t pulp::format::clap_generic::audio_ports_count (const clap_plugin_t *plugin, bool is_input)
bool pulp::format::clap_generic::audio_ports_get (const clap_plugin_t *plugin, uint32_t index, bool is_input, clap_audio_port_info_t *info)
uint32_t pulp::format::clap_generic::audio_ports_config_count (const clap_plugin_t *plugin)
bool pulp::format::clap_generic::audio_ports_config_get (const clap_plugin_t *plugin, uint32_t index, clap_audio_ports_config_t *config)
bool pulp::format::clap_generic::audio_ports_config_select (const clap_plugin_t *plugin, clap_id config_id)
bool pulp::format::clap_generic::state_save (const clap_plugin_t *plugin, const clap_ostream_t *stream)
bool pulp::format::clap_generic::state_load (const clap_plugin_t *plugin, const clap_istream_t *stream)
uint32_t pulp::format::clap_generic::params_count (const clap_plugin_t *plugin)
uint32_t pulp::format::clap_generic::params_flags (const state::ParamInfo &parameter)
bool pulp::format::clap_generic::params_get_info (const clap_plugin_t *plugin, uint32_t index, clap_param_info_t *info)
bool pulp::format::clap_generic::params_get_value (const clap_plugin_t *plugin, clap_id param_id, double *value)
bool pulp::format::clap_generic::params_value_to_text (const clap_plugin_t *plugin, clap_id param_id, double value, char *display, uint32_t size)
bool pulp::format::clap_generic::params_text_to_value (const clap_plugin_t *plugin, clap_id param_id, const char *text, double *value)
void pulp::format::clap_generic::params_flush (const clap_plugin_t *plugin, const clap_input_events_t *in, const clap_output_events_t *out)
uint32_t pulp::format::clap_generic::note_ports_count (const clap_plugin_t *plugin, bool is_input)
bool pulp::format::clap_generic::note_ports_get (const clap_plugin_t *plugin, uint32_t index, bool is_input, clap_note_port_info_t *info)
uint32_t pulp::format::clap_generic::declared_voice_count (const clap_plugin_t *plugin)
bool pulp::format::clap_generic::voice_info_get (const clap_plugin_t *plugin, clap_voice_info_t *info)
uint32_t pulp::format::clap_generic::latency_get (const clap_plugin_t *plugin)
uint32_t pulp::format::clap_generic::tail_get (const clap_plugin_t *plugin)
const void * pulp::format::clap_generic::get_static_extension (const clap_plugin_t *plugin, const char *id)
const void * pulp::format::clap_generic::get_extension (const clap_plugin_t *plugin, const char *id)
const clap_plugin_t * pulp::format::clap_generic::create_plugin (const clap_plugin_factory_t *, const clap_host_t *host, const char *plugin_id)
uint32_t pulp::format::clap_generic::get_plugin_count (const clap_plugin_factory_t *)
const clap_plugin_descriptor_t * pulp::format::clap_generic::get_plugin_descriptor (const clap_plugin_factory_t *, uint32_t i)
bool pulp::format::clap_generic::entry_init (const char *)
void pulp::format::clap_generic::entry_deinit ()
const void * pulp::format::clap_generic::entry_get_factory (const char *factory_id)

Variables

constexpr uint32_t pulp::format::clap_generic::kMaxClapPlugins = 64
ClapPluginRecord pulp::format::clap_generic::g_clap_records [kMaxClapPlugins]
uint32_t pulp::format::clap_generic::g_clap_record_count = 0
ClapPluginRecord * pulp::format::clap_generic::g_clap_index [kMaxClapPlugins] = {}
uint32_t pulp::format::clap_generic::g_clap_index_count = 0
const clap_plugin_audio_ports_t pulp::format::clap_generic::audio_ports_ext
const clap_plugin_audio_ports_config_t pulp::format::clap_generic::audio_ports_config_ext
const clap_plugin_state_t pulp::format::clap_generic::state_ext = { .save = state_save, .load = state_load }
const clap_plugin_params_t pulp::format::clap_generic::params_ext
const clap_plugin_note_ports_t pulp::format::clap_generic::note_ports_ext
const clap_plugin_voice_info_t pulp::format::clap_generic::voice_info_ext = {.get = voice_info_get}
const clap_plugin_latency_t pulp::format::clap_generic::latency_ext = { .get = latency_get }
const clap_plugin_tail_t pulp::format::clap_generic::tail_ext = { .get = tail_get }
const clap_plugin_factory_t pulp::format::clap_generic::plugin_factory

Macro Definition Documentation

◆ PULP_CLAP_BUNDLE_ENTRY

#define PULP_CLAP_BUNDLE_ENTRY ( )
Value:
extern "C" CLAP_EXPORT const clap_plugin_entry_t clap_entry = { \
.clap_version = CLAP_VERSION, \
};
bool entry_init(const char *)
Definition clap_entry.hpp:1082
const void * entry_get_factory(const char *factory_id)
Definition clap_entry.hpp:1097
void entry_deinit()
Definition clap_entry.hpp:1096

◆ PULP_CLAP_BUNDLE_PLUGIN

#define PULP_CLAP_BUNDLE_PLUGIN ( Ident,
factory_fn )
Value:
namespace { \
struct Ident##_ClapRegistrar { \
Ident##_ClapRegistrar() { \
pulp::format::clap_generic::register_clap_record(factory_fn, \
/*publish_keyed=*/true); \
} \
} Ident##_clap_registrar_; \
}

◆ PULP_CLAP_CONTRACT_GUI

#define PULP_CLAP_CONTRACT_GUI   1

◆ PULP_CLAP_PLUGIN

#define PULP_CLAP_PLUGIN ( factory_fn)
Value:
namespace { \
struct PulpClapInit { \
PulpClapInit() { \
pulp::format::clap_generic::register_clap_record(factory_fn, \
/*publish_keyed=*/false); \
pulp::format::register_plugin(factory_fn); \
} \
} _pulp_clap_init; \
} \
PULP_CLAP_BUNDLE_ENTRY()