32MAYAFLUX_API std::shared_ptr<Vruta::TaskScheduler>
get_scheduler();
60MAYAFLUX_API
void schedule_metro(
double interval_seconds, std::function<
void()> callback, std::string name =
"");
82MAYAFLUX_API
void schedule_sequence(std::vector<std::pair<
double, std::function<
void()>>> sequence, std::string name =
"");
119MAYAFLUX_API
void schedule_pattern(std::function<std::any(uint64_t)> pattern_func, std::function<
void(std::any)> callback,
double interval_seconds, std::string name =
"");
147MAYAFLUX_API
bool cancel_task(
const std::string& name);
167template <
typename... Args>
193 const std::shared_ptr<Core::Window>& window,
195 std::function<
void()> callback,
196 std::string name =
"");
213 const std::shared_ptr<Core::Window>& window,
215 std::function<
void()> callback,
216 std::string name =
"");
232 const std::shared_ptr<Core::Window>& window,
233 std::function<
void(
IO::Keys)> callback,
234 std::string name =
"");
251 const std::shared_ptr<Core::Window>& window,
253 std::function<
void(
double,
double)> callback,
254 std::string name =
"");
271 const std::shared_ptr<Core::Window>& window,
273 std::function<
void(
double,
double)> callback,
274 std::string name =
"");
290 const std::shared_ptr<Core::Window>& window,
291 std::function<
void(
double,
double)> callback,
292 std::string name =
"");
308 const std::shared_ptr<Core::Window>& window,
309 std::function<
void(
double,
double)> callback,
310 std::string name =
"");
Platform-agnostic window wrapper.
Coroutine-based execution engine for composable, multi-strategy buffer processing.
Base interface for all computational processing nodes.
A C++20 coroutine-based audio processing task with sample-accurate timing.
Token-based multimodal task scheduling system for unified coroutine processing.
MouseButtons
Enumeration for mouse buttons.
bool cancel_event_handler(const std::string &name)
Cancel an event handler by name.
void on_mouse_move(const std::shared_ptr< Core::Window > &window, std::function< void(double, double)> callback, std::string name)
Schedule a mouse movement handler.
bool update_task_params(const std::string &name, Args... args)
Updates parameters of a scheduled task.
void on_scroll(const std::shared_ptr< Core::Window > &window, std::function< void(double, double)> callback, std::string name)
Schedule a mouse scroll handler.
void schedule_metro(double interval_seconds, std::function< void()> callback, std::string name)
Creates a metronome task and addes it to the default scheduler list for evaluation.
std::shared_ptr< Vruta::EventManager > get_event_manager()
Gets the event manager from the default engine.
bool restart_task(const std::string &name)
Restarts a scheduled task.
Vruta::SoundRoutine create_pattern(std::function< std::any(uint64_t)> pattern_func, std::function< void(std::any)> callback, double interval_seconds)
Schedules a pattern generator that produces values based on a pattern function.
void schedule_sequence(std::vector< std::pair< double, std::function< void()> > > seq, std::string name)
Creates a sequence task that calls functions at specified times and addes it to the default scheduler...
uint64_t seconds_to_samples(double seconds)
Converts a time duration in seconds to the equivalent number of audio samples.
void on_mouse_pressed(const std::shared_ptr< Core::Window > &window, IO::MouseButtons button, std::function< void(double, double)> callback, std::string name)
Schedule a mouse button press handler.
Vruta::SoundRoutine create_line(float start_value, float end_value, float duration_seconds, uint32_t step_duration, bool loop)
Creates a line generator that interpolates between values over time.
void schedule_task(const std::string &name, Vruta::SoundRoutine &&task, bool initialize)
Schedules a new sound routine task.
void schedule_pattern(std::function< std::any(uint64_t)> pattern_func, std::function< void(std::any)> callback, double interval_seconds, std::string name)
Schedules a pattern generator that produces values based on a pattern function and addes it to the de...
float * get_line_value(const std::string &name)
Gets a pointer to a task's current value.
Vruta::SoundRoutine create_metro(double interval_seconds, std::function< void()> callback)
Creates a simple task that calls a function at a specified interval.
uint64_t seconds_to_blocks(double seconds)
Converts a time duration in seconds to the equivalent number of processing blocks.
void on_key_released(const std::shared_ptr< Core::Window > &window, IO::Keys key, std::function< void()> callback, std::string name)
Schedule a key release handler.
std::shared_ptr< Kriya::BufferPipeline > create_buffer_pipeline()
Creates a new buffer pipeline instance.
bool cancel_task(const std::string &name)
Cancels a scheduled task.
void on_mouse_released(const std::shared_ptr< Core::Window > &window, IO::MouseButtons button, std::function< void(double, double)> callback, std::string name)
Schedule a mouse button release handler.
Vruta::SoundRoutine create_sequence(std::vector< std::pair< double, std::function< void()> > > seq)
Creates a sequence task that calls functions at specified times.
uint64_t samples_to_blocks(uint64_t samples)
Converts samples to blocks based on current block size.
std::shared_ptr< Vruta::TaskScheduler > get_scheduler()
Gets the task scheduler from the default engine.
void on_any_key(const std::shared_ptr< Core::Window > &window, std::function< void(IO::Keys)> callback, std::string name)
Schedule a handler for any key press.
void on_key_pressed(const std::shared_ptr< Core::Window > &window, IO::Keys key, std::function< void()> callback, std::string name)
Schedule a key press handler.
Main namespace for the Maya Flux audio engine.