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

#include <TransferProcessor.hpp>

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

Public Member Functions

 TransferProcessor ()
 
 TransferProcessor (const std::shared_ptr< AudioBuffer > &source, const std::shared_ptr< VKBuffer > &target)
 Create transfer from audio to GPU.
 
 TransferProcessor (const std::shared_ptr< AudioBuffer > &audio_buffer, const std::shared_ptr< VKBuffer > &gpu_buffer, TransferDirection direction)
 Create transfer with explicit direction.
 
 ~TransferProcessor () override=default
 
void connect_audio_to_gpu (const std::shared_ptr< AudioBuffer > &source, const std::shared_ptr< VKBuffer > &target)
 Configure audio→GPU transfer.
 
void connect_gpu_to_audio (const std::shared_ptr< VKBuffer > &source, const std::shared_ptr< AudioBuffer > &target)
 Configure GPU→audio transfer.
 
void setup_staging (const std::shared_ptr< VKBuffer > &target, std::shared_ptr< VKBuffer > staging_buffer)
 Set up staging buffer for device-local GPU buffer.
 
TransferDirection get_direction () const
 Get current transfer direction.
 
void set_direction (TransferDirection direction)
 Set transfer direction.
 
void on_attach (std::shared_ptr< Buffer > buffer) override
 Called when this processor is attached to a buffer.
 
void on_detach (std::shared_ptr< Buffer > buffer) override
 Called when this processor is detached from a buffer.
 
void processing_function (std::shared_ptr< Buffer > buffer) override
 The core processing function that must be implemented by derived classes.
 
- Public Member Functions inherited from MayaFlux::Buffers::BufferProcessor
virtual ~BufferProcessor ()=default
 Virtual destructor for proper cleanup of derived classes.
 
void process (std::shared_ptr< Buffer > buffer)
 Applies a computational transformation to the data in the provided buffer.
 
virtual void set_processing_token (ProcessingToken token)
 Gets the preferred processing backend for this processor.
 
virtual ProcessingToken get_processing_token () const
 Gets the current processing token for this buffer.
 
virtual bool is_compatible_with (std::shared_ptr< Buffer >) const
 Checks if this processor can handle the specified buffer type.
 

Private Member Functions

bool validate_audio_to_gpu (const std::shared_ptr< VKBuffer > &target) const
 
bool validate_gpu_to_audio (const std::shared_ptr< AudioBuffer > &target) const
 
void process_audio_to_gpu (const std::shared_ptr< Buffer > &gpu_buffer)
 
void process_gpu_to_audio (const std::shared_ptr< Buffer > &audio_buffer)
 

Private Attributes

std::unordered_map< std::shared_ptr< AudioBuffer >, std::shared_ptr< VKBuffer > > m_audio_to_gpu_map
 
std::unordered_map< std::shared_ptr< VKBuffer >, std::shared_ptr< AudioBuffer > > m_gpu_to_audio_map
 
std::unordered_map< std::shared_ptr< VKBuffer >, std::shared_ptr< VKBuffer > > m_staging_map
 
TransferDirection m_direction = TransferDirection::AUDIO_TO_GPU
 

Additional Inherited Members

- Protected Member Functions inherited from MayaFlux::Buffers::VKBufferProcessor
void initialize_buffer_service ()
 
void initialize_compute_service ()
 
- Protected Attributes inherited from MayaFlux::Buffers::VKBufferProcessor
Registry::Service::BufferServicem_buffer_service = nullptr
 
Registry::Service::ComputeServicem_compute_service = nullptr
 
- Protected Attributes inherited from MayaFlux::Buffers::BufferProcessor
ProcessingToken m_processing_token { ProcessingToken::AUDIO_BACKEND }
 

Detailed Description

Definition at line 19 of file TransferProcessor.hpp.


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