Mercurial > hg > svcore
comparison 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 |
comparison
equal
deleted
inserted
replaced
1324:d4a28d1479a8 | 1527:710e6250a401 |
---|---|
20 #include "DenseTimeValueModel.h" | 20 #include "DenseTimeValueModel.h" |
21 | 21 |
22 #include "base/Window.h" | 22 #include "base/Window.h" |
23 | 23 |
24 #include <bqfft/FFT.h> | 24 #include <bqfft/FFT.h> |
25 #include <bqvec/Allocators.h> | |
25 | 26 |
26 #include <set> | 27 #include <set> |
27 #include <vector> | 28 #include <vector> |
28 #include <complex> | 29 #include <complex> |
29 #include <deque> | |
30 | 30 |
31 /** | 31 /** |
32 * An implementation of DenseThreeDimensionalModel that makes FFT data | 32 * An implementation of DenseThreeDimensionalModel that makes FFT data |
33 * derived from a DenseTimeValueModel available as a generic data | 33 * derived from a DenseTimeValueModel available as a generic data |
34 * grid. | 34 * grid. |
165 startFrame -= m_windowSize / 2; | 165 startFrame -= m_windowSize / 2; |
166 endFrame -= m_windowSize / 2; | 166 endFrame -= m_windowSize / 2; |
167 return { startFrame, endFrame }; | 167 return { startFrame, endFrame }; |
168 } | 168 } |
169 | 169 |
170 std::vector<std::complex<float> > getFFTColumn(int column) const; | 170 typedef std::vector<float, breakfastquay::StlAllocator<float>> fvec; |
171 std::vector<float> getSourceSamples(int column) const; | 171 typedef std::vector<std::complex<float>, |
172 std::vector<float> getSourceData(std::pair<sv_frame_t, sv_frame_t>) const; | 172 breakfastquay::StlAllocator<std::complex<float>>> cvec; |
173 std::vector<float> getSourceDataUncached(std::pair<sv_frame_t, sv_frame_t>) const; | 173 |
174 const cvec &getFFTColumn(int column) const; // returns ref for immediate use only | |
175 fvec getSourceSamples(int column) const; | |
176 fvec getSourceData(std::pair<sv_frame_t, sv_frame_t>) const; | |
177 fvec getSourceDataUncached(std::pair<sv_frame_t, sv_frame_t>) const; | |
174 | 178 |
175 struct SavedSourceData { | 179 struct SavedSourceData { |
176 std::pair<sv_frame_t, sv_frame_t> range; | 180 std::pair<sv_frame_t, sv_frame_t> range; |
177 std::vector<float> data; | 181 fvec data; |
178 }; | 182 }; |
179 mutable SavedSourceData m_savedData; | 183 mutable SavedSourceData m_savedData; |
180 | 184 |
181 struct SavedColumn { | 185 struct SavedColumn { |
182 int n; | 186 int n; |
183 std::vector<std::complex<float> > col; | 187 cvec col; |
184 }; | 188 }; |
185 mutable std::deque<SavedColumn> m_cached; | 189 mutable std::vector<SavedColumn> m_cached; |
190 mutable size_t m_cacheWriteIndex; | |
186 size_t m_cacheSize; | 191 size_t m_cacheSize; |
187 }; | 192 }; |
188 | 193 |
189 #endif | 194 #endif |