MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ create_custom_domain()

Domain MayaFlux::create_custom_domain ( Nodes::ProcessingToken  node_token,
Buffers::ProcessingToken  buffer_token,
Vruta::ProcessingToken  task_token 
)

Creates a custom domain from individual tokens with validation.

Parameters
node_tokenToken for node processing
buffer_tokenToken for buffer processing
task_tokenToken for task scheduling
Returns
Validated unified Domain enum value
Exceptions
std::invalid_argumentif tokens are incompatible

Definition at line 19 of file Domain.cpp.

22{
23 if (node_token == Nodes::ProcessingToken::AUDIO_RATE && (buffer_token & Buffers::ProcessingToken::FRAME_RATE)) {
24 error<std::invalid_argument>(Journal::Component::API, Journal::Context::Configuration, std::source_location::current(),
25 "AUDIO_RATE nodes incompatible with FRAME_RATE buffers");
26 }
27
28 if (node_token == Nodes::ProcessingToken::VISUAL_RATE && (buffer_token & Buffers::ProcessingToken::SAMPLE_RATE)) {
29 error<std::invalid_argument>(Journal::Component::API, Journal::Context::Configuration, std::source_location::current(),
30 "VISUAL_RATE nodes incompatible with SAMPLE_RATE buffers");
31 }
32
33 return compose_domain(node_token, buffer_token, task_token);
34}
Domain compose_domain(Nodes::ProcessingToken node_token, Buffers::ProcessingToken buffer_token, Vruta::ProcessingToken task_token)
Composes individual ProcessingTokens into a unified Domain.
Definition Domain.hpp:149

References MayaFlux::Journal::API, MayaFlux::Nodes::AUDIO_RATE, compose_domain(), MayaFlux::Journal::Configuration, MayaFlux::Buffers::FRAME_RATE, MayaFlux::Buffers::SAMPLE_RATE, and MayaFlux::Nodes::VISUAL_RATE.

+ Here is the call graph for this function: