JPL Spatial
Sound spatialization and propagation library
Loading...
Searching...
No Matches
JPL::DelayLine< MaxWindow > Class Template Reference

Forward declaration. More...

#include <JPLSpatial/Auralization/DelayLine.h>

Public Member Functions

 DelayLine (uint32_t minSize)
 
 DelayLine ()
 
void Resize (uint32_t newSize)
 
uint32_t GetSize () const
 
uint32_t GetWriteIndex () const
 
const floatraw () const
 
void Clear ()
 
void Push (float sample)
 
template<uint32_t WindowLength>
requires (WindowLength > 1 && WindowLength <= WindowSize)
std::span< const float, WindowLengthGetReadWindow (uint32_t intDelay) const
 
template<uint32_t WindowLength>
requires (WindowLength <= 1)
float GetReadWindow (uint32_t intDelay) const
 

Static Public Member Functions

template<class TapType >
requires (TapType::InterpolatorType::InputLength <= WindowSize)
static TapType CreateTap (float initialDelay=0.0f)
 
template<class Interpolator >
requires (Interpolator::InputLength <= WindowSize)
static DelayTap< Interpolator > CreateTap (float initialDelay=0.0f)
 

Static Public Attributes

static constexpr uint32_t WindowSize = MaxWindow
 

Detailed Description

template<uint32_t MaxWindow = 2>
class JPL::DelayLine< MaxWindow >

Forward declaration.

DelayLine is a ring buffer suitable for multi-tap delays.

Template parameter MaxWindow defines the maximum InputLength of the Interpolator this DelayLine can serve

Constructor & Destructor Documentation

◆ DelayLine() [1/2]

template<uint32_t MaxWindow = 2>
JPL::DelayLine< MaxWindow >::DelayLine ( uint32_t  minSize)
inlineexplicit

◆ DelayLine() [2/2]

template<uint32_t MaxWindow = 2>
JPL::DelayLine< MaxWindow >::DelayLine ( )
inline

Member Function Documentation

◆ Clear()

template<uint32_t MaxWindow = 2>
void JPL::DelayLine< MaxWindow >::Clear ( )
inline

◆ CreateTap() [1/2]

template<uint32_t MaxWindow = 2>
template<class TapType >
requires (TapType::InterpolatorType::InputLength <= WindowSize)
static TapType JPL::DelayLine< MaxWindow >::CreateTap ( float  initialDelay = 0.0f)
inlinestatic

◆ CreateTap() [2/2]

template<uint32_t MaxWindow = 2>
template<class Interpolator >
requires (Interpolator::InputLength <= WindowSize)
static DelayTap< Interpolator > JPL::DelayLine< MaxWindow >::CreateTap ( float  initialDelay = 0.0f)
inlinestatic

◆ GetReadWindow() [1/2]

template<uint32_t MaxWindow = 2>
template<uint32_t WindowLength>
requires (WindowLength > 1 && WindowLength <= WindowSize)
std::span< const float, WindowLength > JPL::DelayLine< MaxWindow >::GetReadWindow ( uint32_t  intDelay) const
inline

◆ GetReadWindow() [2/2]

template<uint32_t MaxWindow = 2>
template<uint32_t WindowLength>
requires (WindowLength <= 1)
float JPL::DelayLine< MaxWindow >::GetReadWindow ( uint32_t  intDelay) const
inline

◆ GetSize()

template<uint32_t MaxWindow = 2>
uint32_t JPL::DelayLine< MaxWindow >::GetSize ( ) const
inline

◆ GetWriteIndex()

template<uint32_t MaxWindow = 2>
uint32_t JPL::DelayLine< MaxWindow >::GetWriteIndex ( ) const
inline

◆ Push()

template<uint32_t MaxWindow = 2>
void JPL::DelayLine< MaxWindow >::Push ( float  sample)
inline

◆ raw()

template<uint32_t MaxWindow = 2>
const float * JPL::DelayLine< MaxWindow >::raw ( ) const
inline

◆ Resize()

template<uint32_t MaxWindow = 2>
void JPL::DelayLine< MaxWindow >::Resize ( uint32_t  newSize)
inline

Member Data Documentation

◆ WindowSize

template<uint32_t MaxWindow = 2>
constexpr uint32_t JPL::DelayLine< MaxWindow >::WindowSize = MaxWindow
staticconstexpr

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