MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
Sinks.hpp File Reference
+ Include dependency graph for Sinks.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  MayaFlux::Nexus::AudioSink
 Holds the plumbing for one audio output registered from a Nexus object. More...
 
struct  MayaFlux::Nexus::RenderSink
 Holds the plumbing for one graphics output registered from a Nexus object. More...
 

Namespaces

namespace  MayaFlux
 Main namespace for the Maya Flux audio engine.
 
namespace  MayaFlux::Buffers
 
namespace  MayaFlux::Core
 
namespace  MayaFlux::Nexus
 
namespace  MayaFlux::Portal
 
namespace  MayaFlux::Portal::Graphics
 

Typedefs

using MayaFlux::Nexus::RenderFn = std::function< void(const InfluenceContext &)>
 

Functions

void MayaFlux::Nexus::add_audio_sink (std::vector< AudioSink > &sinks, Buffers::BufferManager &mgr, uint32_t channel, std::function< Kakshya::DataVariant(const InfluenceContext &)> fn={}, std::string fn_name={})
 Create and register an audio sink on channel.
 
void MayaFlux::Nexus::add_render_sink (std::vector< RenderSink > &sinks, Buffers::BufferManager &mgr, const Portal::Graphics::RenderConfig &config, RenderFn fn={}, std::string fn_name={}, const std::optional< glm::vec3 > &initial_position={})
 Create and register a render sink targeting window.
 
void MayaFlux::Nexus::dispatch_audio_sinks (std::vector< AudioSink > &sinks, const InfluenceContext &ctx)
 For each sink that has a producer fn, call it and push the result.
 
void MayaFlux::Nexus::dispatch_render_sinks (std::vector< RenderSink > &sinks, const InfluenceContext &ctx)
 For each sink that has a producer fn, call it and push the result.
 
void MayaFlux::Nexus::push_audio_data (std::vector< AudioSink > &sinks, std::span< const double > samples)
 Push samples to every audio sink in sinks.
 
void MayaFlux::Nexus::push_vertices (std::vector< RenderSink > &sinks, const void *data, size_t byte_count, const Kakshya::VertexLayout &layout)
 Push pre-resolved vertex bytes to every render sink.
 
void MayaFlux::Nexus::remove_audio_sink (std::vector< AudioSink > &sinks, Buffers::BufferManager &mgr, uint32_t channel)
 Unregister and destroy the audio sink on channel.
 
void MayaFlux::Nexus::remove_render_sink (std::vector< RenderSink > &sinks, Buffers::BufferManager &mgr, const std::shared_ptr< Core::Window > &window)
 Unregister and destroy the render sink targeting window.