Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
lv2_entry.hpp File Reference
#include <pulp/format/adapter_boundary.hpp>
#include <pulp/format/lv2_adapter.hpp>
#include <pulp/format/max_block_contract.hpp>
#include <pulp/format/plugin_state_io.hpp>
#include <pulp/format/processor.hpp>
#include <pulp/runtime/log.hpp>
#include <pulp/runtime/scoped_no_alloc.hpp>
#include <pulp/signal/scoped_flush_denormals.hpp>
#include <lv2/atom/atom.h>
#include <lv2/atom/util.h>
#include <lv2/buf-size/buf-size.h>
#include <lv2/core/lv2.h>
#include <lv2/midi/midi.h>
#include <lv2/state/state.h>
#include <lv2/time/time.h>
#include <lv2/urid/urid.h>
#include <algorithm>
#include <array>
#include <cstring>
#include <fstream>
#include <limits>
#include <span>
#include <vector>

Go to the source code of this file.

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::lv2_generic

Macros

#define PULP_LV2_PLUGIN(factory_fn, plugin_uri)

Functions

bool pulp::format::lv2_generic::read_numeric_atom (const LV2_Atom *atom, const lv2_adapter::Lv2TimeUrids &urids, double &out) noexcept
 Read a numeric atom body as a double, whatever integer or float type the host chose for it.
bool pulp::format::lv2_generic::decode_time_position (const LV2_Atom_Object *obj, const lv2_adapter::Lv2TimeUrids &urids, lv2_adapter::Lv2TimePosition &out) noexcept
 Decode a time:Position object into out, overwriting only the properties the host actually sent.
void pulp::format::lv2_generic::advance_time_position (lv2_adapter::Lv2TimePosition &pos, uint32_t n_samples, double sample_rate) noexcept
 Advance a latched transport by one block of n_samples while it is rolling, so the position keeps moving between the Positions a host chooses to send.
boundary::HostTransport pulp::format::lv2_generic::to_host_transport (const lv2_adapter::Lv2TimePosition &pos) noexcept
 Project a decoded time:Position onto the neutral transport every adapter hands the shared ProcessContext mapper.
LV2_Handle pulp::format::lv2_generic::instantiate (const LV2_Descriptor *, double sample_rate, const char *, const LV2_Feature *const *features)
void pulp::format::lv2_generic::connect_port (LV2_Handle handle, uint32_t port, void *data)
void pulp::format::lv2_generic::activate (LV2_Handle)
void pulp::format::lv2_generic::write_midi_out_to_sequence (LV2_Atom_Sequence *out_seq, LV2_URID urid_atom_sequence, LV2_URID urid_midi_event, const midi::MidiBuffer &midi_out)
void pulp::format::lv2_generic::run (LV2_Handle handle, uint32_t n_samples)
void pulp::format::lv2_generic::deactivate (LV2_Handle)
LV2_State_Status pulp::format::lv2_generic::save_state (LV2_Handle instance, LV2_State_Store_Function store, LV2_State_Handle handle, uint32_t, const LV2_Feature *const *)
LV2_State_Status pulp::format::lv2_generic::restore_state (LV2_Handle instance, LV2_State_Retrieve_Function retrieve, LV2_State_Handle handle, uint32_t, const LV2_Feature *const *)
const void * pulp::format::lv2_generic::extension_data (const char *uri)
void pulp::format::lv2_generic::cleanup (LV2_Handle handle)
int pulp::format::lv2_generic::write_bundle_ttl (const char *bundle_dir, const char *binary_name) noexcept

Variables

ProcessorFactory pulp::format::lv2_generic::g_factory = nullptr
const char * pulp::format::lv2_generic::g_uri = nullptr
constexpr std::size_t pulp::format::lv2_generic::kRealtimeMidiEventCapacity
const LV2_State_Interface pulp::format::lv2_generic::g_state_interface = {save_state, restore_state}
LV2_Descriptor pulp::format::lv2_generic::g_lv2_descriptor

Macro Definition Documentation

◆ PULP_LV2_PLUGIN

#define PULP_LV2_PLUGIN ( factory_fn,
plugin_uri )
Value:
namespace { \
struct PulpLv2Init { \
PulpLv2Init() { \
} \
} s_lv2_init; \
} \
\
extern "C" { \
LV2_SYMBOL_EXPORT \
const LV2_Descriptor* lv2_descriptor(uint32_t index) { \
return (index == 0) ? &pulp::format::lv2_generic::g_lv2_descriptor : nullptr; \
} \
LV2_SYMBOL_EXPORT \
int pulp_lv2_write_bundle_ttl(const char* bundle_dir, const char* binary) { \
return pulp::format::lv2_generic::write_bundle_ttl(bundle_dir, binary); \
} \
}
LV2_Descriptor g_lv2_descriptor
Definition lv2_entry.hpp:779
ProcessorFactory g_factory
Definition lv2_entry.hpp:41
int write_bundle_ttl(const char *bundle_dir, const char *binary_name) noexcept
Definition lv2_entry.hpp:731
const char * g_uri
Definition lv2_entry.hpp:42