22 throw std::invalid_argument(
"AUDIO_RATE nodes incompatible with FRAME_RATE buffers");
26 throw std::invalid_argument(
"VISUAL_RATE nodes incompatible with SAMPLE_RATE buffers");
40 }
catch (
const std::exception&) {
51 return "AUDIO_PARALLEL";
55 return "GRAPHICS_ADAPTIVE";
57 return "CUSTOM_ON_DEMAND";
59 return "CUSTOM_FLEXIBLE";
61 return "AUDIO_VISUAL_SYNC";
69 return "CUSTOM_DOMAIN(Node:" + std::to_string(
static_cast<int>(tokens.Node)) +
",Buffer:" + std::to_string(
static_cast<int>(tokens.Buffer)) +
",Task:" + std::to_string(
static_cast<int>(tokens.Task)) +
")";
static const auto node_token
Unified processing architecture for multimodal subsystem coordination.
ProcessingToken
Bitfield enum defining processing characteristics and backend requirements for buffer operations.
@ SAMPLE_RATE
Processes data at audio sample rate with buffer-sized chunks.
@ FRAME_RATE
Processes data at video frame rate.
void validate_token(ProcessingToken token)
Validates that a processing token has a valid, non-conflicting configuration.
ProcessingToken
Enumerates the different processing domains for nodes.
@ AUDIO_RATE
Nodes that process at the audio sample rate.
@ VISUAL_RATE
Nodes that process at the visual frame rate.
std::string domain_to_string(Domain domain)
Gets a human-readable string representation of a domain.
Domain compose_domain(Nodes::ProcessingToken node_token, Buffers::ProcessingToken buffer_token, Vruta::ProcessingToken task_token)
Composes individual ProcessingTokens into a unified 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.
@ 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.
@ 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.
Main namespace for the Maya Flux audio engine.
MayaFlux::Buffers::ProcessingToken Buffer
Processing token for buffer operations.
Processing token configuration for subsystem operation.