8 struct SubsystemTokens;
153 return static_cast<Domain>(
154 (
static_cast<uint64_t
>(
node_token) << 32) | (
static_cast<uint64_t
>(buffer_token) << 16) | (
static_cast<uint64_t
>(task_token)));
static const auto node_token
ProcessingToken
Bitfield enum defining processing characteristics and backend requirements for buffer operations.
@ SAMPLE_RATE
Processes data at audio sample rate with buffer-sized chunks.
@ CPU_PROCESS
Executes processing operations on CPU threads.
@ AUDIO_BACKEND
Standard audio processing backend configuration.
@ PARALLEL
Processes operations in parallel when possible.
@ SEQUENTIAL
Processes operations sequentially, one after another.
@ GRAPHICS_BACKEND
Standard graphics processing backend configuration.
@ FRAME_RATE
Processes data at video frame rate.
@ WINDOW_EVENTS
Window event stream processing.
@ GPU_PPOCESS
Executes processing operations on GPU hardware.
@ AUDIO_PARALLEL
High-performance audio processing with GPU acceleration.
@ Core
Core engine, backend, subsystems.
ProcessingToken
Enumerates the different processing domains for nodes.
@ AUDIO_RATE
Nodes that process at the audio sample rate.
@ CUSTOM_RATE
Nodes that process at a custom-defined rate.
@ VISUAL_RATE
Nodes that process at the visual frame rate.
@ MULTI_RATE
Coroutine can handle multiple sample rates. Picks the frame-accurate processing token by default.
@ EVENT_DRIVEN
Event-driven execution - process when events arrive.
@ FRAME_ACCURATE
Coroutine is frame-accurate.
@ SAMPLE_ACCURATE
Coroutine is sample-accurate.
@ ON_DEMAND
Coroutine is executed on demand, not scheduled.
std::string domain_to_string(Domain domain)
Gets a human-readable string representation of a domain.
MAYAFLUX_API Vruta::ProcessingToken get_task_token(Domain domain)
Extracts task processing token from domain.
Domain compose_domain(Nodes::ProcessingToken node_token, Buffers::ProcessingToken buffer_token, Vruta::ProcessingToken task_token)
Composes individual ProcessingTokens into a unified Domain.
MAYAFLUX_API Nodes::ProcessingToken get_node_token(Domain domain)
Extracts node processing token from domain.
bool is_domain_valid(Domain domain)
Checks if a domain is valid (all constituent tokens are compatible)
Domain
Unified domain enum combining all three ProcessingToken subsystems.
@ AUDIO_PARALLEL
High-performance parallel audio processing domain.
@ CUSTOM_FLEXIBLE
Custom processing domain with flexible scheduling.
@ AUDIO
Standard real-time audio processing domain.
@ AUDIO_VISUAL_SYNC
Audio-visual synchronization domain.
@ INPUT_EVENTS
Input event processing domain.
@ CUSTOM_ON_DEMAND
Custom processing domain with on-demand scheduling.
@ GRAPHICS
Standard real-time graphics processing domain.
@ GRAPHICS_ADAPTIVE
Multi-rate graphics processing for adaptive frame rates.
@ WINDOWING
Pure windowing domain (no rendering)
@ AUDIO_GPU
GPU-accelerated audio processing domain.
Domain create_custom_domain(Nodes::ProcessingToken node_token, Buffers::ProcessingToken buffer_token, Vruta::ProcessingToken task_token)
Creates a custom domain from individual tokens with validation.
Core::SubsystemTokens decompose_domain(Domain domain)
Decomposes a Domain enum into its constituent ProcessingTokens.
MAYAFLUX_API Buffers::ProcessingToken get_buffer_token(Domain domain)
Extracts buffer processing token from domain.
Main namespace for the Maya Flux audio engine.