MayaFlux 0.3.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Vruta Namespace Reference

Classes

struct  audio_promise
 Coroutine promise type for audio processing tasks with sample-accurate timing. More...
 
struct  complex_promise
 Coroutine promise type for complex processing tasks with multi-rate scheduling. More...
 
class  ComplexRoutine
 Multi-domain coroutine that can handle multiple processing rates. More...
 
class  CustomClock
 Configurable timing system for custom processing domains. More...
 
class  Event
 Coroutine type for event-driven suspension. More...
 
struct  event_promise
 
struct  EventFilter
 Filter criteria for window events. More...
 
class  EventManager
 
class  EventSource
 Awaitable event stream for window events. More...
 
class  FrameClock
 Frame-accurate timing system for visual processing domain. More...
 
struct  graphics_promise
 Coroutine promise type for graphics processing tasks with frame-accurate timing. More...
 
class  GraphicsRoutine
 A C++20 coroutine-based graphics processing task with frame-accurate timing. More...
 
class  IClock
 Abstract base interface for all clock types in the multimodal scheduling system. More...
 
class  Routine
 Base class for all coroutine types in the MayaFlux engine. More...
 
struct  routine_promise
 Base coroutine promise type for audio processing tasks. More...
 
class  SampleClock
 Sample-accurate timing system for audio processing domain. More...
 
class  SoundRoutine
 A C++20 coroutine-based audio processing task with sample-accurate timing. More...
 
struct  TaskEntry
 
class  TaskScheduler
 Token-based multimodal task scheduling system for unified coroutine processing. More...
 

Typedefs

using token_processing_func_t = std::function< void(const std::vector< std::shared_ptr< Routine > > &, uint64_t)>
 Function type for processing tasks in a specific token domain.
 

Enumerations

enum class  ProcessingToken {
  SAMPLE_ACCURATE , FRAME_ACCURATE , EVENT_DRIVEN , MULTI_RATE ,
  ON_DEMAND , CUSTOM
}
 
enum class  DelayContext : uint8_t {
  NONE , SAMPLE_BASED , BUFFER_BASED , FRAME_BASED ,
  EVENT_BASED , AWAIT
}
 Discriminator for different temporal delay mechanisms. More...
 

Functions

uint64_t frames_to_seconds (uint64_t frames, uint32_t frame_rate)
 Convert frames to seconds at a given frame rate.
 
std::chrono::milliseconds frame_duration_ms (uint32_t frame_rate)
 Get duration of a single frame at given frame rate.
 
std::chrono::microseconds frame_duration_us (uint32_t frame_rate)
 Get duration of a single frame at given frame rate (high precision)
 
std::chrono::milliseconds frames_duration_ms (uint64_t num_frames, uint32_t frame_rate)
 Get duration for N frames at given frame rate.
 
std::chrono::microseconds frames_duration_us (uint64_t num_frames, uint32_t frame_rate)
 Get duration for N frames at given frame rate (high precision)
 
uint64_t samples_to_seconds (uint64_t samples, uint32_t sample_rate)
 Convert samples to seconds at a given sample rate.
 
uint64_t frames_to_samples (uint64_t frames, uint32_t sample_rate, uint32_t frame_rate)
 Convert frames to samples at a given sample rate and frame rate.
 
uint64_t samples_to_frames (uint64_t samples, uint32_t sample_rate, uint32_t frame_rate)
 Convert samples to frames at a given sample rate and frame rate.
 
uint64_t seconds_to_samples (double seconds, uint32_t sample_rate)
 Convert seconds to samples at a given sample rate.
 
uint64_t seconds_to_frames (double seconds, uint32_t frame_rate)
 Convert seconds to frames at a given frame rate.
 
uint64_t seconds_to_units (double seconds, uint32_t rate)
 Convert seconds to processing units for any rate.
 
double units_to_seconds (uint64_t units, uint32_t rate)
 Convert processing units to seconds for any rate.
 
uint64_t seconds_to_blocks (double seconds, uint32_t sample_rate, uint32_t block_size)
 Convert seconds to number of processing blocks.
 
uint64_t samples_to_blocks (uint64_t samples, uint32_t block_size)
 Convert samples to number of processing blocks.
 
uint64_t blocks_to_samples (uint64_t blocks, uint32_t block_size)
 Convert blocks to samples.
 
double blocks_to_seconds (uint64_t blocks, uint32_t sample_rate, uint32_t block_size)
 Convert blocks to seconds.