MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Buffers::BufferSupplyMixing Class Reference

External buffer supply, mixing, and interleaved data I/O. More...

#include <BufferSupplyMixing.hpp>

+ Collaboration diagram for MayaFlux::Buffers::BufferSupplyMixing:

Public Member Functions

 BufferSupplyMixing (TokenUnitManager &unit_manager, BufferAccessControl &access_control)
 Creates a new supply/mixing control handler.
 
 ~BufferSupplyMixing ()=default
 
bool supply_audio_buffer_to (const std::shared_ptr< AudioBuffer > &buffer, ProcessingToken token, uint32_t channel, double mix=1.0)
 Supplies an external audio buffer to a specific token and channel.
 
bool remove_supplied_audio_buffer (const std::shared_ptr< AudioBuffer > &buffer, ProcessingToken token, uint32_t channel)
 Removes a previously supplied buffer from a token and channel.
 
void fill_audio_from_interleaved (const double *interleaved_data, uint32_t num_frames, ProcessingToken token, uint32_t num_channels)
 Fills audio token channels from interleaved source data.
 
void fill_audio_interleaved (double *interleaved_data, uint32_t num_frames, ProcessingToken token, uint32_t num_channels) const
 Fills interleaved buffer from audio token channels.
 
std::vector< std::shared_ptr< AudioBuffer > > clone_audio_buffer_for_channels (const std::shared_ptr< AudioBuffer > &buffer, const std::vector< uint32_t > &channels, ProcessingToken token)
 Clones an audio buffer for each channel in the specified list.
 

Private Attributes

TokenUnitManagerm_unit_manager
 Reference to the token/unit manager.
 
BufferAccessControlm_access_control
 Reference to the buffer access control.
 

Detailed Description

External buffer supply, mixing, and interleaved data I/O.

Manages operations for supplying external buffers to channels, mixing buffers, and converting between interleaved and channel-separated formats. This enables advanced routing patterns where the same buffer feeds multiple channels, or data is imported/exported in different formats.

Design Principles:

  • Token-aware: Routes operations to appropriate tokens
  • Format-agnostic: Handles both channel-separated and interleaved data
  • Mixing coordination: Uses MixProcessor for proper signal combining
  • Single responsibility: Only handles supply/mixing/format operations

This class encapsulates all buffer supply and data I/O logic.

Definition at line 28 of file BufferSupplyMixing.hpp.


The documentation for this class was generated from the following files: