diff data/model/FFTModel.h @ 1837:1b688ab5f1b3

Unify various vectors to our base floatvec_t type; store columns in fft model cache at their desired height so we can return a reference (speeding up the peak-frequency spectrogram in particular)
author Chris Cannam
date Thu, 09 Apr 2020 11:22:55 +0100
parents 21c792334c2e
children
line wrap: on
line diff
--- a/data/model/FFTModel.h	Mon Apr 06 13:55:44 2020 +0100
+++ b/data/model/FFTModel.h	Thu Apr 09 11:22:55 2020 +0100
@@ -193,28 +193,26 @@
         return { startFrame, endFrame };
     }
 
-    typedef std::vector<float, breakfastquay::StlAllocator<float>> fvec;
-    typedef std::vector<std::complex<float>,
-                        breakfastquay::StlAllocator<std::complex<float>>> cvec;
-
-    cvec getFFTColumn(int column) const;
-    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;
+    const complexvec_t &getFFTColumn(int column) const;
+    floatvec_t getSourceSamples(int column) const;
+    floatvec_t getSourceData(std::pair<sv_frame_t, sv_frame_t>) const;
+    floatvec_t getSourceDataUncached(std::pair<sv_frame_t, sv_frame_t>) const;
 
     struct SavedSourceData {
         std::pair<sv_frame_t, sv_frame_t> range;
-        fvec data;
+        floatvec_t data;
     };
     mutable SavedSourceData m_savedData;
 
     struct SavedColumn {
         int n;
-        cvec col;
+        complexvec_t col;
     };
     mutable std::vector<SavedColumn> m_cached;
     mutable size_t m_cacheWriteIndex;
     size_t m_cacheSize;
+
+    void clearCaches();
 };
 
 #endif