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

◆ register_network()

MAYAFLUX_API void MayaFlux::register_network ( const std::shared_ptr< Nodes::Network::NodeNetwork > &  network,
const CreationContext ctx 
)

Definition at line 43 of file Creator.cpp.

44{
45 auto token = get_node_token(ctx.domain.value());
46
47 if (token == Nodes::ProcessingToken::AUDIO_RATE) {
48 if (
49 network->get_output_mode() != Nodes::Network::OutputMode::AUDIO_SINK
50 && network->get_output_mode() != Nodes::Network::OutputMode::AUDIO_COMPUTE) {
51 MF_WARN(Journal::Component::API,
52 Journal::Context::Init,
53 "Registering audio network in AUDIO_RATE domain without AUDIO_SINK or AUDIO_COMPUTE mode. Forcing AUDIO_SINK mode.");
54 network->set_output_mode(Nodes::Network::OutputMode::AUDIO_SINK);
55 }
56 if (ctx.channel.has_value()) {
57 network->add_channel_usage(ctx.channel.value());
58 } else if (ctx.channels.has_value()) {
59 for (uint32_t ch : ctx.channels.value()) {
60 network->add_channel_usage(ch);
61 }
62 }
63 } else if (token == Nodes::ProcessingToken::VISUAL_RATE && network->get_output_mode() != Nodes::Network::OutputMode::GRAPHICS_BIND) {
64 MF_WARN(Journal::Component::API,
65 Journal::Context::Init,
66 "Registering visual network in VISUAL_RATE domain without GRAPHICS_BIND output mode. Forcing GRAPHICS_BIND mode.");
67 network->set_output_mode(Nodes::Network::OutputMode::GRAPHICS_BIND);
68 }
69
70 register_node_network(network, token);
71}
#define MF_WARN(comp, ctx,...)
MAYAFLUX_API Nodes::ProcessingToken get_node_token(Domain domain)
Extracts node processing token from domain.
Definition Domain.hpp:174
void register_node_network(const std::shared_ptr< Nodes::Network::NodeNetwork > &network, const Nodes::ProcessingToken &token)
Registers a node network with the default engine's node graph manager.
Definition Graph.cpp:193
std::optional< uint32_t > channel
Definition Creator.hpp:22
std::optional< std::vector< uint32_t > > channels
Definition Creator.hpp:23
std::optional< Domain > domain
Definition Creator.hpp:21

References MayaFlux::Journal::API, MayaFlux::Nodes::Network::AUDIO_COMPUTE, MayaFlux::Nodes::AUDIO_RATE, MayaFlux::Nodes::Network::AUDIO_SINK, MayaFlux::CreationContext::channel, MayaFlux::CreationContext::channels, MayaFlux::CreationContext::domain, get_node_token(), MayaFlux::Nodes::Network::GRAPHICS_BIND, MayaFlux::Journal::Init, MF_WARN, register_node_network(), and MayaFlux::Nodes::VISUAL_RATE.

Referenced by operator|().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: