18 using SampleRange = std::pair<units::sample_t, units::sample_t>;
19 using RunOnMainThread = std::function<void (std::function<
void ()>)>;
23 units::sample_rate_t sample_rate_;
24 units::sample_t block_length_;
25 unsigned int num_threads_ =
26 std::max (5u, std::thread::hardware_concurrency ()) - 4;
43 RunOnMainThread run_on_main_thread,
45 const dsp::TempoMap &tempo_map);
56 QPromise<juce::AudioSampleBuffer> &promise,
59 RunOnMainThread run_on_main_thread,
61 const dsp::TempoMap &tempo_map);
static QFuture< juce::AudioSampleBuffer > render_async(RenderOptions options, graph::GraphNodeCollection &&nodes, RunOnMainThread run_on_main_thread, SampleRange range, const dsp::TempoMap &tempo_map)
Executes render() asynchronously and returns a QFuture to control the task.