43 void on_attach(std::shared_ptr<SignalSourceContainer> container)
override;
50 void on_detach(std::shared_ptr<SignalSourceContainer> container)
override;
56 [[nodiscard]]
bool is_processing()
const override {
return m_is_processing.load(); }
64 m_max_cache_size = max_cached_elements;
73 m_auto_caching = enabled;
82 return m_current_position;
91 m_current_position = position;
97 std::atomic<bool> m_is_processing {
false };
101 size_t m_current_region_index = 0;
106 size_t m_max_cache_size {
static_cast<size_t>(1024 * 1024) };
107 bool m_auto_caching =
true;
124 virtual void cache_region_if_needed(
const RegionSegment& segment,
125 const std::shared_ptr<SignalSourceContainer>& container);
145 virtual void ensure_output_dimensioning(std::vector<DataVariant>& output_data,
146 const std::vector<uint64_t>& required_shape);
Interface for processing data within SignalSourceContainer objects.
std::unique_ptr< RegionCacheManager > m_cache_manager
const std::vector< uint64_t > & get_current_position() const
Get the current processing position (N-dimensional coordinates).
virtual void organize_container_data(std::shared_ptr< SignalSourceContainer > container)=0
Organize container data into structured regions.
virtual ~RegionProcessorBase()=default
ContainerDataStructure m_structure
bool is_processing() const override
Query if the processor is currently performing processing.
void set_cache_limit(size_t max_cached_elements)
Set the maximum cache size for regions (in elements).
void set_current_position(const std::vector< uint64_t > &position)
Set the current processing position (N-dimensional coordinates).
std::vector< OrganizedRegion > m_organized_regions
std::vector< uint64_t > m_current_position
void set_auto_caching(bool enabled)
Enable or disable automatic region caching.
std::weak_ptr< SignalSourceContainer > m_container_weak
Base class for N-dimensional region processors.
std::vector< uint64_t > advance_position(const std::vector< uint64_t > ¤t_positions, uint64_t frames_to_advance, const ContainerDataStructure &structure, bool looping_enabled, const Region &loop_region)
Advance current positions by a number of frames, with optional looping.
Container structure for consistent dimension ordering.
A structured audio region with metadata and transition information.
Represents a discrete segment of audio data with caching capabilities.