49 const std::function<std::atomic<float>*(
NodeId)>& gain_for,
53 parameter_events_for = {});
55 bool prepared() const noexcept {
return prepared_; }
58 std::uint64_t
buffered_frames() const noexcept {
return ring_.available_frames(); }
79 bool render_one_block();
82 std::vector<PluginBindingContext> plugin_ctx_;
91 std::vector<std::vector<float>> prod_in_;
92 std::vector<std::vector<float>> prod_out_;
93 std::vector<const float*> prod_in_ptrs_;
94 std::vector<float*> prod_out_ptrs_;
96 double sample_rate_ = 0.0;
97 int block_frames_ = 0;
98 std::size_t out_channels_ = 0;
99 bool prepared_ =
false;
Non-owning view over multi-channel audio sample data.
Definition buffer.hpp:30
Definition planar_audio_ring_buffer.hpp:22
bool prepare(const AnticipationSubgraph &sub, const std::function< std::atomic< float > *(NodeId)> &gain_for, const std::function< PluginSlot *(NodeId)> &plugin_for, double sample_rate, int block_frames, int lead_blocks, const std::function< ParameterEventInjectionBinding(NodeId)> ¶meter_events_for={})
int render_ahead(int max_blocks)
std::uint64_t lead_capacity_frames() const noexcept
Definition anticipation_lane.hpp:59
AnticipationLane()=default
bool prepared() const noexcept
Definition anticipation_lane.hpp:55
AnticipationLane & operator=(const AnticipationLane &)=delete
std::size_t output_channels() const noexcept
Definition anticipation_lane.hpp:56
std::uint64_t buffered_frames() const noexcept
Definition anticipation_lane.hpp:58
int block_frames() const noexcept
Definition anticipation_lane.hpp:57
bool consume(pulp::audio::BufferView< float > &out) noexcept
AnticipationLane(const AnticipationLane &)=delete
Definition plugin_slot.hpp:94
std::uint32_t NodeId
Definition graph_types.hpp:7
Bounded event contracts shared by host ingress and graph-authored nodes.
Definition anticipation_eligibility.hpp:9
Definition anticipation_subgraph.hpp:28
Definition signal_graph_executor_routing.hpp:74
Definition signal_graph_executor_routing.hpp:38