Loading...
Searching...
No Matches
Clap::clap_node_base Class Reference
Inheritance diagram for Clap::clap_node_base:
Clap::clap_node Clap::clap_node_mono Clap::clap_node_32 Clap::clap_node_64 Clap::clap_node_mono_32 Clap::clap_node_mono_64

Public Member Functions

 clap_node_base (const Clap::Model &proc)
 
std::string label () const noexcept override
 
bool activate_plugin (const clap_plugin_t *plugin, double sample_rate, uint32_t max_buffer_size)
 
bool start_plugin (const clap_plugin_t *plugin)
 
void stop_plugin (const clap_plugin_t *plugin)
 
void init_parameter_values (const clap_plugin_t *plugin)
 
bool deactivate_plugin (const clap_plugin_t *plugin)
 
auto make_transport (const ossia::token_request &tk, ossia::exec_state_facade st)
 
void process_controls (uint32_t samples)
 
void process_midi ()
 
void stash_midi ()
 
void prepare_input_events (int64_t offset, int samples)
 
void inject_all_notes_off ()
 
void all_notes_off () noexcept override
 
void dispatch_param_outputs ()
 

Public Attributes

std::shared_ptr< Clap::PluginHandle > handle
 
ossia::small_vector< ossia::audio_inlet *, 2 > audio_ins
 
ossia::small_vector< ossia::audio_outlet *, 2 > audio_outs
 
ossia::small_vector< ossia::midi_inlet *, 2 > midi_ins
 
ossia::small_vector< ossia::midi_outlet *, 2 > midi_outs
 
std::vector< ossia::value_inlet * > parameter_ins
 
std::vector< ossia::value_outlet * > parameter_outs
 
clap_event_transport_t m_current_transport {}
 
int64_t m_tick_start {}
 
int64_t m_tick_frames {}
 
ossia::small_vector< std::pair< uint16_t, libremidi::ump >, 8 > m_deferred_midi
 
event_storage m_input_events
 
event_storage m_output_events
 
const std::vector< clap_param_info_t > & m_param_ins
 
const std::vector< clap_param_info_t > & m_param_outs
 
const std::vector< clap_note_port_info_t > & m_midi_ins
 
const std::vector< clap_note_port_info_t > & m_midi_outs
 
const ossia::flat_map< clap_id, std::uint32_t > & m_param_out_index
 
double m_sample_rate {44100.0}
 
uint32_t m_buffer_size {512}
 
clap_process_status m_last_status {CLAP_PROCESS_CONTINUE}
 
std::atomic< bool > m_pending_all_notes_off {false}
 

Member Function Documentation

◆ stash_midi()

void Clap::clap_node_base::stash_midi ( )
inline

Keep this tick's events for the next block rather than dropping them: the span covers no whole sample, so every date in the tick maps to the sample the span starts on, which is offset 0 of the next block that covers one.

Member Data Documentation

◆ m_deferred_midi

ossia::small_vector<std::pair<uint16_t, libremidi::ump>, 8> Clap::clap_node_base::m_deferred_midi

Events from ticks that covered no whole sample, with the port they came in on, waiting for the next block that does cover one.


The documentation for this class was generated from the following file:
  • score-plugin-clap/Clap/Executor.cpp