Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::host::SignalGraph::PreparedTopologyEdit Class Reference

#include <signal_graph_prepared_topology_edit.hpp>

Public Types

enum class  Result : std::uint8_t {
  Prepared , Committed , InvalidMutation , StaleBase ,
  PreflightFailed , MidiOutputSnapshotLocalRequired , ExternalPluginReprepareRequired , BaselinePluginRemovalRequiresRelease ,
  ExistingCustomReprepareRequired , BaselineCustomRemovalRequiresRelease , CustomRegistryConflict , CustomInstanceCreateFailed ,
  CustomStateRestoreFailed , CompileFailed , RuntimeAdoptionFailed , ParallelWorkerStartFailed ,
  QuiescedRollbackFailed , NotPrepared , AlreadyCommitted , RegionRuntimeUnavailable ,
  ParameterContractMismatch , Staged
}

Public Member Functions

 ~PreparedTopologyEdit ()
 PreparedTopologyEdit (const PreparedTopologyEdit &)=delete
PreparedTopologyEdit & operator= (const PreparedTopologyEdit &)=delete
bool register_custom_node_type (CustomNodeType type)
bool register_custom_node_type (CustomNodeType type, SampleKernelDescriptor sample_kernel)
bool unregister_custom_node_type (std::string_view type_id, int version)
std::size_t prune_unused_custom_node_types ()
std::size_t custom_node_type_count () const
NodeId add_input_node (int channels, const std::string &name="Input")
SpectralResult< SpectralAnalysisPorts > add_spectral_analysis (SpectralIdentity identity, const std::string &name)
SpectralResult< SpectralStagePorts > add_spectral_stage (SpectralIdentity identity, QualifiedSpectralStage stage, const std::string &name)
SpectralResult< SpectralSynthesisPorts > add_spectral_synthesis (SpectralIdentity identity, const std::string &name)
GraphResult connect (SpectralOutputPort source, SpectralInputPort destination)
GraphResult connect (const PortHandle &source, const PortHandle &destination)
NodeId add_output_node (int channels, const std::string &name="Output")
NodeId add_gain_node (const std::string &name="Gain")
NodeId add_midi_input_node (const std::string &name="MIDI In")
NodeId add_midi_output_node (const std::string &name="MIDI Out")
NodeId add_owned_builtin_plugin_node (std::unique_ptr< PluginSlot > slot, int num_inputs, int num_outputs, const std::string &name)
 Transfers a pathless Pulp-owned slot into this disposable candidate.
NodeId add_processor_node (std::shared_ptr< format::ProcessorNodeInstance > processor, const std::string &name={})
NodeId add_processor_node (std::unique_ptr< format::Processor > processor, const std::string &name={})
NodeId add_custom_node (std::string_view type_id, const std::string &name={})
NodeId add_custom_node (std::string_view type_id, int version, const std::string &name={})
NodeId add_unresolved_custom_node (std::string_view type_id, int version, int num_inputs, int num_outputs, const std::string &name)
bool remove_node (NodeId id)
bool connect (NodeId source, PortIndex source_port, NodeId dest, PortIndex dest_port)
bool connect_automation (NodeId source, PortIndex source_port, NodeId dest, uint32_t dest_param_id, float range_lo, float range_hi, float smoothing_ms=0.0f, AutomationMix mix=AutomationMix::Replace)
bool connect_audio_rate_modulation (NodeId source, PortIndex source_port, NodeId dest, uint32_t dest_param_id, float range_lo, float range_hi, float smoothing_ms=0.0f, AutomationMix mix=AutomationMix::Replace)
bool connect_feedback (NodeId source, PortIndex source_port, NodeId dest, PortIndex dest_port)
bool connect_midi (NodeId source, NodeId dest)
bool disconnect (NodeId source, PortIndex source_port, NodeId dest, PortIndex dest_port)
bool disconnect_modulation (NodeId source, PortIndex source_port, NodeId dest, uint32_t dest_param_id, bool audio_rate)
bool set_node_gain (NodeId id, float linear_gain)
SampleRegionResult declare_sample_region (SampleRegionDefinition definition)
SampleRegionResult remove_sample_region (SampleRegionId id)
SampleRegionResult add_sample_region_member (SampleRegionId id, NodeId member, SampleKernelConfig config)
SampleRegionResult remove_sample_region_member (SampleRegionId id, NodeId member)
SampleRegionResult set_sample_kernel_config (SampleRegionId id, NodeId member, SampleKernelConfig config)
SampleRegionResult connect_in_sample_region (SampleRegionId id, NodeId source, PortIndex source_port, NodeId destination, PortIndex destination_port)
SampleRegionProof prove_sample_region (SampleRegionId id) const
std::optional< SampleRegionDescriptor > sample_region (SampleRegionId id) const
std::vector< SampleRegionDescriptor > sample_regions () const
SampleRegionParameterContract sample_region_parameter_contract () const
SampleRegionResult bind_sample_region_parameters (const SampleRegionParameterBinding &binding)
const SampleRegionParameterBinding * sample_region_parameter_binding () const noexcept
void set_canonical_executor_routing_enabled (bool enabled) noexcept
void set_parallel_routing_enabled (bool enabled) noexcept
void set_anticipation_enabled (bool enabled) noexcept
const GraphNode * node (NodeId id) const
const std::vector< GraphNode > & nodes () const
const std::vector< Connection > & connections () const
bool routed_execution_ready (int block_size) const noexcept
Result prepare (double sample_rate, int max_block_size)
Result prepare_quiesced (double sample_rate, int max_block_size)
 Requires process, MIDI injection, and anticipation to be stopped.
Result commit ()
ExecutionSnapshot committed_execution_snapshot () const noexcept
Result last_result () const noexcept
bool set_exact_parameter_event_nodes (const std::shared_ptr< detail::ExactParameterIngressOwner > &owner, std::span< const NodeId > nodes, ExactParameterNodeClaimPasskey)

Friends

class SignalGraph
bool register_builtin_sample_region_types (SignalGraph::PreparedTopologyEdit &edit)

Member Enumeration Documentation

◆ Result

Enumerator
Prepared 
Committed 
InvalidMutation 
StaleBase 
PreflightFailed 
MidiOutputSnapshotLocalRequired 
ExternalPluginReprepareRequired 
BaselinePluginRemovalRequiresRelease 
ExistingCustomReprepareRequired 
BaselineCustomRemovalRequiresRelease 
CustomRegistryConflict 
CustomInstanceCreateFailed 
CustomStateRestoreFailed 
CompileFailed 
RuntimeAdoptionFailed 
ParallelWorkerStartFailed 
QuiescedRollbackFailed 
NotPrepared 
AlreadyCommitted 
RegionRuntimeUnavailable 
ParameterContractMismatch 
Staged 

Constructor & Destructor Documentation

◆ ~PreparedTopologyEdit()

pulp::host::SignalGraph::PreparedTopologyEdit::~PreparedTopologyEdit ( )

◆ PreparedTopologyEdit()

pulp::host::SignalGraph::PreparedTopologyEdit::PreparedTopologyEdit ( const PreparedTopologyEdit & )
delete

Member Function Documentation

◆ add_custom_node() [1/2]

NodeId pulp::host::SignalGraph::PreparedTopologyEdit::add_custom_node ( std::string_view type_id,
const std::string & name = {} )

◆ add_custom_node() [2/2]

NodeId pulp::host::SignalGraph::PreparedTopologyEdit::add_custom_node ( std::string_view type_id,
int version,
const std::string & name = {} )

◆ add_gain_node()

NodeId pulp::host::SignalGraph::PreparedTopologyEdit::add_gain_node ( const std::string & name = "Gain")

◆ add_input_node()

NodeId pulp::host::SignalGraph::PreparedTopologyEdit::add_input_node ( int channels,
const std::string & name = "Input" )

◆ add_midi_input_node()

NodeId pulp::host::SignalGraph::PreparedTopologyEdit::add_midi_input_node ( const std::string & name = "MIDI In")

◆ add_midi_output_node()

NodeId pulp::host::SignalGraph::PreparedTopologyEdit::add_midi_output_node ( const std::string & name = "MIDI Out")

◆ add_output_node()

NodeId pulp::host::SignalGraph::PreparedTopologyEdit::add_output_node ( int channels,
const std::string & name = "Output" )

◆ add_owned_builtin_plugin_node()

NodeId pulp::host::SignalGraph::PreparedTopologyEdit::add_owned_builtin_plugin_node ( std::unique_ptr< PluginSlot > slot,
int num_inputs,
int num_outputs,
const std::string & name )

Transfers a pathless Pulp-owned slot into this disposable candidate.

◆ add_processor_node() [1/2]

NodeId pulp::host::SignalGraph::PreparedTopologyEdit::add_processor_node ( std::shared_ptr< format::ProcessorNodeInstance > processor,
const std::string & name = {} )

◆ add_processor_node() [2/2]

NodeId pulp::host::SignalGraph::PreparedTopologyEdit::add_processor_node ( std::unique_ptr< format::Processor > processor,
const std::string & name = {} )

◆ add_sample_region_member()

SampleRegionResult pulp::host::SignalGraph::PreparedTopologyEdit::add_sample_region_member ( SampleRegionId id,
NodeId member,
SampleKernelConfig config )

◆ add_spectral_analysis()

SpectralResult< SpectralAnalysisPorts > pulp::host::SignalGraph::PreparedTopologyEdit::add_spectral_analysis ( SpectralIdentity identity,
const std::string & name )
inline

◆ add_spectral_stage()

SpectralResult< SpectralStagePorts > pulp::host::SignalGraph::PreparedTopologyEdit::add_spectral_stage ( SpectralIdentity identity,
QualifiedSpectralStage stage,
const std::string & name )
inline

◆ add_spectral_synthesis()

SpectralResult< SpectralSynthesisPorts > pulp::host::SignalGraph::PreparedTopologyEdit::add_spectral_synthesis ( SpectralIdentity identity,
const std::string & name )
inline

◆ add_unresolved_custom_node()

NodeId pulp::host::SignalGraph::PreparedTopologyEdit::add_unresolved_custom_node ( std::string_view type_id,
int version,
int num_inputs,
int num_outputs,
const std::string & name )

◆ bind_sample_region_parameters()

SampleRegionResult pulp::host::SignalGraph::PreparedTopologyEdit::bind_sample_region_parameters ( const SampleRegionParameterBinding & binding)

◆ commit()

Result pulp::host::SignalGraph::PreparedTopologyEdit::commit ( )

◆ committed_execution_snapshot()

ExecutionSnapshot pulp::host::SignalGraph::PreparedTopologyEdit::committed_execution_snapshot ( ) const
inlinenoexcept

◆ connect() [1/3]

GraphResult pulp::host::SignalGraph::PreparedTopologyEdit::connect ( const PortHandle & source,
const PortHandle & destination )
inline

◆ connect() [2/3]

bool pulp::host::SignalGraph::PreparedTopologyEdit::connect ( NodeId source,
PortIndex source_port,
NodeId dest,
PortIndex dest_port )

◆ connect() [3/3]

GraphResult pulp::host::SignalGraph::PreparedTopologyEdit::connect ( SpectralOutputPort source,
SpectralInputPort destination )
inline

◆ connect_audio_rate_modulation()

bool pulp::host::SignalGraph::PreparedTopologyEdit::connect_audio_rate_modulation ( NodeId source,
PortIndex source_port,
NodeId dest,
uint32_t dest_param_id,
float range_lo,
float range_hi,
float smoothing_ms = 0.0f,
AutomationMix mix = AutomationMix::Replace )

◆ connect_automation()

bool pulp::host::SignalGraph::PreparedTopologyEdit::connect_automation ( NodeId source,
PortIndex source_port,
NodeId dest,
uint32_t dest_param_id,
float range_lo,
float range_hi,
float smoothing_ms = 0.0f,
AutomationMix mix = AutomationMix::Replace )

◆ connect_feedback()

bool pulp::host::SignalGraph::PreparedTopologyEdit::connect_feedback ( NodeId source,
PortIndex source_port,
NodeId dest,
PortIndex dest_port )

◆ connect_in_sample_region()

SampleRegionResult pulp::host::SignalGraph::PreparedTopologyEdit::connect_in_sample_region ( SampleRegionId id,
NodeId source,
PortIndex source_port,
NodeId destination,
PortIndex destination_port )

◆ connect_midi()

bool pulp::host::SignalGraph::PreparedTopologyEdit::connect_midi ( NodeId source,
NodeId dest )

◆ connections()

const std::vector< Connection > & pulp::host::SignalGraph::PreparedTopologyEdit::connections ( ) const

◆ custom_node_type_count()

std::size_t pulp::host::SignalGraph::PreparedTopologyEdit::custom_node_type_count ( ) const

◆ declare_sample_region()

SampleRegionResult pulp::host::SignalGraph::PreparedTopologyEdit::declare_sample_region ( SampleRegionDefinition definition)

◆ disconnect()

bool pulp::host::SignalGraph::PreparedTopologyEdit::disconnect ( NodeId source,
PortIndex source_port,
NodeId dest,
PortIndex dest_port )

◆ disconnect_modulation()

bool pulp::host::SignalGraph::PreparedTopologyEdit::disconnect_modulation ( NodeId source,
PortIndex source_port,
NodeId dest,
uint32_t dest_param_id,
bool audio_rate )

◆ last_result()

Result pulp::host::SignalGraph::PreparedTopologyEdit::last_result ( ) const
inlinenoexcept

◆ node()

const GraphNode * pulp::host::SignalGraph::PreparedTopologyEdit::node ( NodeId id) const

◆ nodes()

const std::vector< GraphNode > & pulp::host::SignalGraph::PreparedTopologyEdit::nodes ( ) const

◆ operator=()

PreparedTopologyEdit & pulp::host::SignalGraph::PreparedTopologyEdit::operator= ( const PreparedTopologyEdit & )
delete

◆ prepare()

Result pulp::host::SignalGraph::PreparedTopologyEdit::prepare ( double sample_rate,
int max_block_size )

◆ prepare_quiesced()

Result pulp::host::SignalGraph::PreparedTopologyEdit::prepare_quiesced ( double sample_rate,
int max_block_size )

Requires process, MIDI injection, and anticipation to be stopped.

◆ prove_sample_region()

SampleRegionProof pulp::host::SignalGraph::PreparedTopologyEdit::prove_sample_region ( SampleRegionId id) const

◆ prune_unused_custom_node_types()

std::size_t pulp::host::SignalGraph::PreparedTopologyEdit::prune_unused_custom_node_types ( )

◆ register_custom_node_type() [1/2]

bool pulp::host::SignalGraph::PreparedTopologyEdit::register_custom_node_type ( CustomNodeType type)

◆ register_custom_node_type() [2/2]

bool pulp::host::SignalGraph::PreparedTopologyEdit::register_custom_node_type ( CustomNodeType type,
SampleKernelDescriptor sample_kernel )

◆ remove_node()

bool pulp::host::SignalGraph::PreparedTopologyEdit::remove_node ( NodeId id)

◆ remove_sample_region()

SampleRegionResult pulp::host::SignalGraph::PreparedTopologyEdit::remove_sample_region ( SampleRegionId id)

◆ remove_sample_region_member()

SampleRegionResult pulp::host::SignalGraph::PreparedTopologyEdit::remove_sample_region_member ( SampleRegionId id,
NodeId member )

◆ routed_execution_ready()

bool pulp::host::SignalGraph::PreparedTopologyEdit::routed_execution_ready ( int block_size) const
noexcept

◆ sample_region()

std::optional< SampleRegionDescriptor > pulp::host::SignalGraph::PreparedTopologyEdit::sample_region ( SampleRegionId id) const

◆ sample_region_parameter_binding()

const SampleRegionParameterBinding * pulp::host::SignalGraph::PreparedTopologyEdit::sample_region_parameter_binding ( ) const
inlinenoexcept

◆ sample_region_parameter_contract()

SampleRegionParameterContract pulp::host::SignalGraph::PreparedTopologyEdit::sample_region_parameter_contract ( ) const

◆ sample_regions()

std::vector< SampleRegionDescriptor > pulp::host::SignalGraph::PreparedTopologyEdit::sample_regions ( ) const

◆ set_anticipation_enabled()

void pulp::host::SignalGraph::PreparedTopologyEdit::set_anticipation_enabled ( bool enabled)
noexcept

◆ set_canonical_executor_routing_enabled()

void pulp::host::SignalGraph::PreparedTopologyEdit::set_canonical_executor_routing_enabled ( bool enabled)
noexcept

◆ set_exact_parameter_event_nodes()

bool pulp::host::SignalGraph::PreparedTopologyEdit::set_exact_parameter_event_nodes ( const std::shared_ptr< detail::ExactParameterIngressOwner > & owner,
std::span< const NodeId > nodes,
ExactParameterNodeClaimPasskey  )

◆ set_node_gain()

bool pulp::host::SignalGraph::PreparedTopologyEdit::set_node_gain ( NodeId id,
float linear_gain )

◆ set_parallel_routing_enabled()

void pulp::host::SignalGraph::PreparedTopologyEdit::set_parallel_routing_enabled ( bool enabled)
noexcept

◆ set_sample_kernel_config()

SampleRegionResult pulp::host::SignalGraph::PreparedTopologyEdit::set_sample_kernel_config ( SampleRegionId id,
NodeId member,
SampleKernelConfig config )

◆ unregister_custom_node_type()

bool pulp::host::SignalGraph::PreparedTopologyEdit::unregister_custom_node_type ( std::string_view type_id,
int version )

◆ register_builtin_sample_region_types

bool register_builtin_sample_region_types ( SignalGraph::PreparedTopologyEdit & edit)
friend

◆ SignalGraph

friend class SignalGraph
friend

The documentation for this class was generated from the following file: