Mercurial > hg > svcore
diff data/model/FFTModel.h @ 1527:710e6250a401 zoom
Merge from default branch
author | Chris Cannam |
---|---|
date | Mon, 17 Sep 2018 13:51:14 +0100 |
parents | fad8f533ca13 |
children | 0f62bce0f0be |
line wrap: on
line diff
--- a/data/model/FFTModel.h Mon Dec 12 15:18:52 2016 +0000 +++ b/data/model/FFTModel.h Mon Sep 17 13:51:14 2018 +0100 @@ -22,11 +22,11 @@ #include "base/Window.h" #include <bqfft/FFT.h> +#include <bqvec/Allocators.h> #include <set> #include <vector> #include <complex> -#include <deque> /** * An implementation of DenseThreeDimensionalModel that makes FFT data @@ -167,22 +167,27 @@ return { startFrame, endFrame }; } - std::vector<std::complex<float> > getFFTColumn(int column) const; - std::vector<float> getSourceSamples(int column) const; - std::vector<float> getSourceData(std::pair<sv_frame_t, sv_frame_t>) const; - std::vector<float> getSourceDataUncached(std::pair<sv_frame_t, sv_frame_t>) const; + typedef std::vector<float, breakfastquay::StlAllocator<float>> fvec; + typedef std::vector<std::complex<float>, + breakfastquay::StlAllocator<std::complex<float>>> cvec; + + const cvec &getFFTColumn(int column) const; // returns ref for immediate use only + fvec getSourceSamples(int column) const; + fvec getSourceData(std::pair<sv_frame_t, sv_frame_t>) const; + fvec getSourceDataUncached(std::pair<sv_frame_t, sv_frame_t>) const; struct SavedSourceData { std::pair<sv_frame_t, sv_frame_t> range; - std::vector<float> data; + fvec data; }; mutable SavedSourceData m_savedData; - + struct SavedColumn { int n; - std::vector<std::complex<float> > col; + cvec col; }; - mutable std::deque<SavedColumn> m_cached; + mutable std::vector<SavedColumn> m_cached; + mutable size_t m_cacheWriteIndex; size_t m_cacheSize; };