53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
|
|
#ifndef FRAMELIB_TIMESTDDEV_H
|
|
#define FRAMELIB_TIMESTDDEV_H
|
|
|
|
#include "FrameLib_TimeBuffer_Template.h"
|
|
|
|
class FrameLib_TimeStdDev final : public FrameLib_TimeBuffer<FrameLib_TimeStdDev>
|
|
{
|
|
|
|
public:
|
|
|
|
// Constructor
|
|
|
|
FrameLib_TimeStdDev(FrameLib_Context context, FrameLib_Parameters::Serial *serialisedParameters, FrameLib_Proxy *proxy);
|
|
|
|
~FrameLib_TimeStdDev()
|
|
{
|
|
dealloc(mSum);
|
|
dealloc(mCompensate);
|
|
dealloc(mSqSum);
|
|
dealloc(mSqCompensate);
|
|
}
|
|
|
|
// Info
|
|
|
|
std::string objectInfo(bool verbose) override;
|
|
std::string inputInfo(unsigned long idx, bool verbose) override;
|
|
std::string outputInfo(unsigned long idx, bool verbose) override;
|
|
|
|
// Smooth
|
|
|
|
void resetSize(unsigned long maxFrames, unsigned long size) override;
|
|
|
|
void add(const double *newFrame, unsigned long size) override;
|
|
void remove(const double *oldFrame, unsigned long size) override;
|
|
void result(double *output, unsigned long size) override;
|
|
|
|
private:
|
|
|
|
// Object Reset
|
|
|
|
void objectReset() override { smoothReset(); }
|
|
|
|
// Data
|
|
|
|
double *mSum;
|
|
double *mCompensate;
|
|
double *mSqSum;
|
|
double *mSqCompensate;
|
|
};
|
|
|
|
#endif
|