|
MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
|
Token-aware buffer and unit access patterns. More...
#include <BufferAccessControl.hpp>
Collaboration diagram for MayaFlux::Buffers::BufferAccessControl:Public Member Functions | |
| BufferAccessControl (TokenUnitManager &unit_manager) | |
| Creates a new access control handler. | |
| ~BufferAccessControl ()=default | |
| std::vector< double > & | get_audio_buffer_data (ProcessingToken token, uint32_t channel) |
| Gets mutable reference to audio buffer data for a channel. | |
| const std::vector< double > & | get_audio_buffer_data (ProcessingToken token, uint32_t channel) const |
| Gets const reference to audio buffer data for a channel. | |
| uint32_t | get_num_audio_out_channels (ProcessingToken token) const |
| Gets the number of channels for an audio token. | |
| uint32_t | get_audio_buffer_size (ProcessingToken token) const |
| Gets the buffer size for an audio token. | |
| void | resize_audio_buffers (ProcessingToken token, uint32_t buffer_size) |
| Resizes all audio buffers for a token to the specified size. | |
| void | ensure_audio_channels (ProcessingToken token, uint32_t channel_count) |
| Ensures minimum number of audio channels exist for a token. | |
| std::shared_ptr< RootAudioBuffer > | get_root_audio_buffer (ProcessingToken token, uint32_t channel) |
| Gets the root audio buffer for a specific token and channel. | |
| std::shared_ptr< const RootAudioBuffer > | get_root_audio_buffer (ProcessingToken token, uint32_t channel) const |
| Gets the root audio buffer for a specific token and channel (const) | |
| std::shared_ptr< RootGraphicsBuffer > | get_root_graphics_buffer (ProcessingToken token) |
| Gets the root graphics buffer for a specific token. | |
| std::shared_ptr< const RootGraphicsBuffer > | get_root_graphics_buffer (ProcessingToken token) const |
| Gets the root graphics buffer for a specific token (const) | |
| void | add_buffer (const std::shared_ptr< Buffer > &buffer, ProcessingToken token, uint32_t channel=0) |
| Adds a buffer to a token (dispatches based on token type) | |
| void | add_audio_buffer (const std::shared_ptr< AudioBuffer > &buffer, ProcessingToken token, uint32_t channel) |
| Adds an audio buffer to a token and channel. | |
| void | remove_buffer (const std::shared_ptr< Buffer > &buffer, ProcessingToken token, uint32_t channel=0) |
| Removes a buffer from a token (dispatches based on token type) | |
| void | remove_audio_buffer (const std::shared_ptr< AudioBuffer > &buffer, ProcessingToken token, uint32_t channel) |
| Removes an audio buffer from a token and channel. | |
| const std::vector< std::shared_ptr< AudioBuffer > > & | get_audio_buffers (ProcessingToken token, uint32_t channel) const |
| Gets all audio buffers for a token and channel. | |
| void | add_graphics_buffer (const std::shared_ptr< Buffer > &buffer, ProcessingToken token) |
| Adds a graphics buffer to a token. | |
| void | remove_graphics_buffer (const std::shared_ptr< Buffer > &buffer, ProcessingToken token) |
| Removes a graphics buffer from a token. | |
| const std::vector< std::shared_ptr< VKBuffer > > & | get_graphics_buffers (ProcessingToken token) const |
| Gets all graphics buffers for a token. | |
| std::vector< std::shared_ptr< VKBuffer > > | get_graphics_buffers_by_usage (VKBuffer::Usage usage, ProcessingToken token) const |
| Gets graphics buffers filtered by usage type. | |
| std::shared_ptr< BufferProcessingChain > | get_audio_processing_chain (ProcessingToken token, uint32_t channel) |
| Gets the processing chain for an audio token and channel. | |
| std::shared_ptr< BufferProcessingChain > | get_graphics_processing_chain (ProcessingToken token) |
| Gets the processing chain for a graphics token. | |
| void | initialize_buffer_service () |
| Initializes the buffer service for Vulkan operations. | |
| void | terminate_active_buffers () |
| Terminates all active Audio and VK buffers. | |
Private Attributes | |
| TokenUnitManager & | m_unit_manager |
| Reference to the token/unit manager for storage operations. | |
| Registry::Service::BufferService * | m_buffer_service = nullptr |
| Vulkan buffer processing context. | |
Token-aware buffer and unit access patterns.
Manages all operations related to accessing and querying buffer data, units, and processing chains. Works directly with a TokenUnitManager that it holds as a member, providing a cohesive interface for buffer access operations.
Design Principles:
This class is a facade over the unit manager's storage, providing convenient methods for the common buffer access patterns BufferManager needs.
Definition at line 33 of file BufferAccessControl.hpp.