iPlug2 - C++ Audio Plug-in Framework
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | List of all members
ISpectrumSender< MAXNC, QUEUE_SIZE, MAX_FFT_SIZE > Class Template Reference

ISpectrumSender is designed for sending Spectral Data from the plug-in to the UI. More...

#include <ISender.h>

Inheritance diagram for ISpectrumSender< MAXNC, QUEUE_SIZE, MAX_FFT_SIZE >:
[legend]

Public Types

enum class  EWindowType {
  Hann = 0 , BlackmanHarris , Hamming , Flattop ,
  Rectangular
}
 
enum class  EOutputType { Complex = 0 , MagPhase }
 
using TDataPacket = std::array< float, MAX_FFT_SIZE >
 
using TBufferSender = IBufferSender< MAXNC, QUEUE_SIZE, MAX_FFT_SIZE >
 
- Public Types inherited from IBufferSender< MAXNC, QUEUE_SIZE, MAXBUF >
using TDataPacket = std::array< float, MAXBUF >
 
using TSender = ISender< MAXNC, QUEUE_SIZE, TDataPacket >
 

Public Member Functions

 ISpectrumSender (int fftSize=1024, int overlap=2, EWindowType window=EWindowType::Hann, EOutputType outputType=EOutputType::MagPhase, double minThresholdDb=-100.0)
 
void SetFFTSize (int fftSize)
 
void SetFFTSizeAndOverlap (int fftSize, int overlap)
 
void SetWindowType (EWindowType windowType)
 
void SetOutputType (EOutputType outputType)
 
void PrepareDataForUI (ISenderData< MAXNC, TDataPacket > &d) override
 
int GetFFTSize () const
 
int GetOverlap () const
 
- Public Member Functions inherited from IBufferSender< MAXNC, QUEUE_SIZE, MAXBUF >
 IBufferSender (double minThresholdDb=-90., int bufferSize=MAXBUF)
 
void ProcessBlock (sample **inputs, int nFrames, int ctrlTag=kNoTag, int nChans=MAXNC, int chanOffset=0)
 Queue sample buffers into the sender, checking the data is over the required threshold. More...
 
void SetBufferSize (int bufferSize)
 
int GetBufferSize () const
 
- Public Member Functions inherited from ISender< MAXNC, QUEUE_SIZE, T >
void PushData (const ISenderData< MAXNC, T > &d)
 Pushes a data element onto the queue. More...
 
virtual void PrepareDataForUI (ISenderData< MAXNC, T > &d)
 This is called on the main thread and can be used to transform the data, e.g. More...
 
void TransmitData (IEditorDelegate &dlg)
 Pops elements off the queue and sends messages to controls. More...
 
void TransmitDataToControlsWithTags (IEditorDelegate &dlg, const std::initializer_list< int > &ctrlTags)
 This variation can be used if you need to supply multiple controls with the same ISenderData, overriding the tags in the data packet. More...
 

Additional Inherited Members

- Public Attributes inherited from IBufferSender< MAXNC, QUEUE_SIZE, MAXBUF >
const double kNoThresholdDb = -100
 
- Static Public Attributes inherited from ISender< MAXNC, QUEUE_SIZE, T >
static constexpr int kUpdateMessage = 0
 

Detailed Description

template<int MAXNC = 1, int QUEUE_SIZE = 64, int MAX_FFT_SIZE = 4096>
class ISpectrumSender< MAXNC, QUEUE_SIZE, MAX_FFT_SIZE >

ISpectrumSender is designed for sending Spectral Data from the plug-in to the UI.

Definition at line 509 of file ISender.h.

Member Typedef Documentation

◆ TBufferSender

template<int MAXNC = 1, int QUEUE_SIZE = 64, int MAX_FFT_SIZE = 4096>
using ISpectrumSender< MAXNC, QUEUE_SIZE, MAX_FFT_SIZE >::TBufferSender = IBufferSender<MAXNC, QUEUE_SIZE, MAX_FFT_SIZE>

Definition at line 513 of file ISender.h.

◆ TDataPacket

template<int MAXNC = 1, int QUEUE_SIZE = 64, int MAX_FFT_SIZE = 4096>
using ISpectrumSender< MAXNC, QUEUE_SIZE, MAX_FFT_SIZE >::TDataPacket = std::array<float, MAX_FFT_SIZE>

Definition at line 512 of file ISender.h.

Member Enumeration Documentation

◆ EOutputType

template<int MAXNC = 1, int QUEUE_SIZE = 64, int MAX_FFT_SIZE = 4096>
enum class ISpectrumSender::EOutputType
strong

Definition at line 523 of file ISender.h.

◆ EWindowType

template<int MAXNC = 1, int QUEUE_SIZE = 64, int MAX_FFT_SIZE = 4096>
enum class ISpectrumSender::EWindowType
strong

Definition at line 515 of file ISender.h.

Constructor & Destructor Documentation

◆ ISpectrumSender()

template<int MAXNC = 1, int QUEUE_SIZE = 64, int MAX_FFT_SIZE = 4096>
ISpectrumSender< MAXNC, QUEUE_SIZE, MAX_FFT_SIZE >::ISpectrumSender ( int  fftSize = 1024,
int  overlap = 2,
EWindowType  window = EWindowType::Hann,
EOutputType  outputType = EOutputType::MagPhase,
double  minThresholdDb = -100.0 
)
inline

Definition at line 528 of file ISender.h.

Member Function Documentation

◆ GetFFTSize()

template<int MAXNC = 1, int QUEUE_SIZE = 64, int MAX_FFT_SIZE = 4096>
int ISpectrumSender< MAXNC, QUEUE_SIZE, MAX_FFT_SIZE >::GetFFTSize ( ) const
inline

Definition at line 598 of file ISender.h.

◆ GetOverlap()

template<int MAXNC = 1, int QUEUE_SIZE = 64, int MAX_FFT_SIZE = 4096>
int ISpectrumSender< MAXNC, QUEUE_SIZE, MAX_FFT_SIZE >::GetOverlap ( ) const
inline

Definition at line 603 of file ISender.h.

◆ PrepareDataForUI()

template<int MAXNC = 1, int QUEUE_SIZE = 64, int MAX_FFT_SIZE = 4096>
void ISpectrumSender< MAXNC, QUEUE_SIZE, MAX_FFT_SIZE >::PrepareDataForUI ( ISenderData< MAXNC, TDataPacket > &  d)
inlineoverride

Definition at line 565 of file ISender.h.

◆ SetFFTSize()

template<int MAXNC = 1, int QUEUE_SIZE = 64, int MAX_FFT_SIZE = 4096>
void ISpectrumSender< MAXNC, QUEUE_SIZE, MAX_FFT_SIZE >::SetFFTSize ( int  fftSize)
inline

Definition at line 537 of file ISender.h.

◆ SetFFTSizeAndOverlap()

template<int MAXNC = 1, int QUEUE_SIZE = 64, int MAX_FFT_SIZE = 4096>
void ISpectrumSender< MAXNC, QUEUE_SIZE, MAX_FFT_SIZE >::SetFFTSizeAndOverlap ( int  fftSize,
int  overlap 
)
inline

Definition at line 545 of file ISender.h.

◆ SetOutputType()

template<int MAXNC = 1, int QUEUE_SIZE = 64, int MAX_FFT_SIZE = 4096>
void ISpectrumSender< MAXNC, QUEUE_SIZE, MAX_FFT_SIZE >::SetOutputType ( EOutputType  outputType)
inline

Definition at line 560 of file ISender.h.

◆ SetWindowType()

template<int MAXNC = 1, int QUEUE_SIZE = 64, int MAX_FFT_SIZE = 4096>
void ISpectrumSender< MAXNC, QUEUE_SIZE, MAX_FFT_SIZE >::SetWindowType ( EWindowType  windowType)
inline

Definition at line 554 of file ISender.h.


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