MayaFlux 0.4.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 703 of file BufferPipeline.cpp.

704{
705 if (!m_scheduler)
706 return nullptr;
707
708 if (!m_coordinator) {
709 m_coordinator = std::make_unique<CycleCoordinator>(*m_scheduler);
710 }
711
712 branch.pipeline->m_active_self = branch.pipeline;
713
714 auto branch_routine = branch.pipeline->execute_internal(1, branch.samples_per_operation);
715
716 auto task = std::make_shared<Vruta::SoundRoutine>(std::move(branch_routine));
717 m_scheduler->add_task(task);
718
719 m_branch_tasks.push_back(task);
720
721 return task;
722}
std::shared_ptr< CycleCoordinator > m_coordinator
std::vector< std::shared_ptr< Vruta::SoundRoutine > > m_branch_tasks
Vruta::TaskScheduler * m_scheduler
void add_task(const 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:23

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: