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

A processing chain that reads audio data from a sound file container and writes it to a dynamic sound stream. More...

#include <FileBridgeBuffer.hpp>

+ Inheritance diagram for MayaFlux::Buffers::FileToStreamChain:
+ Collaboration diagram for MayaFlux::Buffers::FileToStreamChain:

Public Member Functions

 FileToStreamChain (std::shared_ptr< Kakshya::SoundFileContainer > file_container, std::shared_ptr< Kakshya::DynamicSoundStream > capture_stream, uint32_t source_channel=0)
 
std::shared_ptr< Kakshya::DynamicSoundStreamget_capture_stream () const
 
void attach_to_buffer (std::shared_ptr< Buffer > buffer)
 
- Public Member Functions inherited from MayaFlux::Buffers::BufferProcessingChain
bool add_processor (const std::shared_ptr< BufferProcessor > &processor, const std::shared_ptr< Buffer > &buffer, std::string *rejection_reason=nullptr)
 Adds a processor to the transformation pipeline for a specific buffer.
 
void remove_processor (const std::shared_ptr< BufferProcessor > &processor, const std::shared_ptr< Buffer > &buffer)
 Removes a processor from the pipeline for a specific buffer.
 
void process (const std::shared_ptr< Buffer > &buffer)
 Applies the transformation pipeline to a buffer with intelligent execution.
 
void add_final_processor (const std::shared_ptr< BufferProcessor > &processor, const std::shared_ptr< Buffer > &buffer)
 Sets a special processor to be applied after the main pipeline.
 
bool has_processors (const std::shared_ptr< Buffer > &buffer) const
 Checks if a buffer has any processors in its pipeline.
 
const std::vector< std::shared_ptr< BufferProcessor > > & get_processors (const std::shared_ptr< Buffer > &buffer) const
 Gets all processors in a buffer's transformation pipeline.
 
std::unordered_map< std::shared_ptr< Buffer >, std::vector< std::shared_ptr< BufferProcessor > > > get_chain () const
 Gets the entire transformation pipeline structure.
 
void merge_chain (const std::shared_ptr< BufferProcessingChain > &other)
 Combines another processing pipeline into this one with optimization.
 
void process_final (const std::shared_ptr< Buffer > &buffer)
 Applies the final processor to a buffer with guaranteed execution.
 
void set_preferred_token (ProcessingToken token)
 Sets the preferred processing token for this chain.
 
ProcessingToken get_preferred_token () const
 Gets the preferred processing token for this chain.
 
void set_enforcement_strategy (TokenEnforcementStrategy strategy)
 Sets the token enforcement strategy for this chain.
 
TokenEnforcementStrategy get_enforcement_strategy () const
 Gets the current token enforcement strategy for this chain.
 
void optimize_for_tokens (const std::shared_ptr< Buffer > &buffer)
 Optimizes the processing pipeline for improved performance.
 
std::vector< TokenCompatibilityReportanalyze_token_compatibility () const
 Analyzes token compatibility across all processors in the chain.
 
bool validate_all_processors (std::vector< std::string > *incompatibility_reasons=nullptr) const
 Validates all processors in the chain against the preferred processing token.
 
void enforce_chain_token_on_processors ()
 Enforces the chain's preferred processing token on all processors.
 
bool has_pending_operations () const
 
template<typename T >
std::shared_ptr< T > get_processor (const std::shared_ptr< Buffer > &buffer) const
 Gets a processor of a specific type from the buffer's processing pipeline.
 

Private Member Functions

void setup_processors ()
 

Private Attributes

std::shared_ptr< Kakshya::SoundFileContainerm_file_container
 
std::shared_ptr< Kakshya::DynamicSoundStreamm_capture_stream
 
std::shared_ptr< ContainerToBufferAdapterm_container_adapter
 
std::shared_ptr< StreamWriteProcessorm_stream_writer
 
uint32_t m_source_channel
 

Additional Inherited Members

- Protected Member Functions inherited from MayaFlux::Buffers::BufferProcessingChain
bool add_processor_direct (const std::shared_ptr< BufferProcessor > &processor, const std::shared_ptr< Buffer > &buffer, std::string *rejection_reason=nullptr)
 
void remove_processor_direct (const std::shared_ptr< BufferProcessor > &processor, const std::shared_ptr< Buffer > &buffer)
 

Detailed Description

A processing chain that reads audio data from a sound file container and writes it to a dynamic sound stream.

This chain is used to bridge a sound file container to a dynamic sound stream, allowing the audio data from the file to be processed and played back in real-time.

Definition at line 22 of file FileBridgeBuffer.hpp.


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