MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ dispatch_branch_async()

std::shared_ptr< Vruta::SoundRoutine > MayaFlux::Kriya::BufferPipeline::dispatch_branch_async ( BranchInfo branch,
uint64_t  cycle 
)
private

Definition at line 645 of file BufferPipeline.cpp.

646{
647 if (!m_scheduler)
648 return nullptr;
649
650 if (!m_coordinator) {
651 m_coordinator = std::make_unique<CycleCoordinator>(*m_scheduler);
652 }
653
654 branch.pipeline->m_active_self = branch.pipeline;
655
656 auto branch_routine = branch.pipeline->execute_internal(1, branch.samples_per_operation);
657
658 auto task = std::make_shared<Vruta::SoundRoutine>(std::move(branch_routine));
659 m_scheduler->add_task(task);
660
661 m_branch_tasks.push_back(task);
662
663 return task;
664}
std::shared_ptr< CycleCoordinator > m_coordinator
std::vector< std::shared_ptr< Vruta::SoundRoutine > > m_branch_tasks
Vruta::TaskScheduler * m_scheduler
void add_task(std::shared_ptr< Routine > routine, const std::string &name="", bool initialize=false)
Add a routine to the scheduler based on its processing token.
Definition Scheduler.cpp:17

References MayaFlux::Vruta::TaskScheduler::add_task(), m_branch_tasks, m_coordinator, m_scheduler, MayaFlux::Kriya::BufferPipeline::BranchInfo::pipeline, and MayaFlux::Kriya::BufferPipeline::BranchInfo::samples_per_operation.

Referenced by execute_phased(), and execute_streaming().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: