|
| virtual | ~PluginSlot ()=default |
| virtual const PluginInfo & | info () const =0 |
| virtual bool | is_loaded () const =0 |
| virtual bool | prepare (double sample_rate, int max_block_size)=0 |
| virtual void | release ()=0 |
| virtual void | process (audio::BufferView< float > &output, const audio::BufferView< const float > &input, const midi::MidiBuffer &midi_in, midi::MidiBuffer &midi_out, const ParameterEventQueue ¶m_events, int num_samples)=0 |
| virtual std::vector< HostParamInfo > | parameters () const =0 |
| virtual float | get_parameter (uint32_t id) const =0 |
| virtual void | set_parameter (uint32_t id, float normalized_value)=0 |
| virtual void | set_bypass (bool bypassed)=0 |
| virtual bool | is_bypassed () const =0 |
| virtual std::vector< uint8_t > | save_state () const =0 |
| virtual bool | restore_state (const std::vector< uint8_t > &data)=0 |
| virtual bool | has_editor () const =0 |
| virtual void * | create_editor_view ()=0 |
| virtual void | destroy_editor_view ()=0 |
| virtual std::unique_ptr< HostedEditor > | create_hosted_editor (void *) |
| | Create the hosted editor.
|
| virtual void | destroy_hosted_editor (std::unique_ptr< HostedEditor > ed) |
| | Tear down a hosted editor. Default routes to destroy_editor_view().
|
| virtual int | latency_samples () const =0 |
| virtual int | tail_samples () const =0 |
| virtual void | accept (NativeHandleVisitor &visitor) const |
| virtual void | process (format::ProcessBuffers &audio, const midi::MidiBuffer &midi_in, midi::MidiBuffer &midi_out, const ParameterEventQueue ¶m_events, int num_samples) |
| virtual bool | wants_transport () const |
| virtual void | process (format::ProcessBuffers &audio, const midi::MidiBuffer &midi_in, midi::MidiBuffer &midi_out, const ParameterEventQueue ¶m_events, int num_samples, const format::ProcessContext &) |
| virtual LatencyQuery | latency_query () const |
| | Whether latency_samples() is a fact from the plugin, or a placeholder.
|
| virtual void | set_editor_resize_request_handler (EditorResizeRequestHandler) |
| | Install the handler invoked on a plugin-initiated resize request.
|
| virtual bool | set_hosted_editor_size (uint32_t &, uint32_t &) |
| | Host-initiated resize: ask the plugin to adopt (width, height).
|
| virtual BypassSurface | bypass_surface () const |
| | Where this plugin keeps its own bypass control.
|
| virtual void | set_preferred_channel_layout (int, int) |
| virtual std::string | retained_history_key () const |
| | Optional realtime DSP-history carry for a prepared replacement.
|
| virtual std::vector< uint8_t > | serialize_dsp_state () const |
| virtual bool | restore_dsp_state (const std::vector< uint8_t > &) |
| virtual bool | reseed_dsp_state (std::uint64_t) |
| virtual void | begin_process () noexcept |
| virtual ProcessStatus | process_status () const noexcept |
| virtual std::optional< PluginResolvedIdentity > | resolved_identity () const |
| | Detached strict-load receipt; unavailable for legacy or unsupported loaders.
|
| virtual LatencyQuery pulp::host::PluginSlot::latency_query |
( |
| ) |
const |
|
inlinevirtual |
Whether latency_samples() is a fact from the plugin, or a placeholder.
Appended last to preserve the existing PluginSlot virtual ordering.
latency_samples() returns an int either way, so on its own it cannot distinguish "this plugin reports zero latency" from "this backend has no
way to ask." Those are completely different claims, and collapsing them turns an unanswered question into a confident zero — which a latency proof would then happily certify. Ask this before trusting the number.
Defaults to Available: the CLAP, VST3, and AU backends all read a real value from the plugin. The LV2 backend overrides it, because Pulp's hosted LV2 slot cannot currently read the plugin's latency port.
| virtual std::string pulp::host::PluginSlot::retained_history_key |
( |
| ) |
const |
|
inlinevirtual |
Optional realtime DSP-history carry for a prepared replacement.
This is deliberately separate from save_state()/restore_state(): preset state describes user-facing parameters, while this opaque blob carries delay lines, tails, waveguide state, or physical-model integrators. The default is cold-start safe for every existing slot implementation.
| virtual bool pulp::host::PluginSlot::set_hosted_editor_size |
( |
uint32_t & | , |
|
|
uint32_t & | ) |
|
inlinevirtual |
Host-initiated resize: ask the plugin to adopt (width, height).
The plugin may snap to its own constraints, so the accepted size is written back through width/height. Returns false when the slot has no open editor, the format cannot resize, or the plugin refused.