comparison layer/SpectrogramLayer.h @ 1212:a1ee3108d1d3 3.0-integration

Make the colour 3d plot renderer able to support more than one level of peak cache; introduce a second "peak" cache for the spectrogram layer that actually has a 1-1 column relationship with the underlying FFT model, and use it in addition to the existing peak cache if memory is plentiful. Makes spectrograms appear much faster in many common situations.
author Chris Cannam
date Thu, 05 Jan 2017 14:02:54 +0000
parents 7a19738b9762
children de1792daae07
comparison
equal deleted inserted replaced
1211:7a19738b9762 1212:a1ee3108d1d3
302 int getFFTOversampling() const; 302 int getFFTOversampling() const;
303 int getFFTSize() const; // m_windowSize * getFFTOversampling() 303 int getFFTSize() const; // m_windowSize * getFFTOversampling()
304 304
305 FFTModel *m_fftModel; 305 FFTModel *m_fftModel;
306 FFTModel *getFFTModel() const { return m_fftModel; } 306 FFTModel *getFFTModel() const { return m_fftModel; }
307 Dense3DModelPeakCache *m_wholeCache;
307 Dense3DModelPeakCache *m_peakCache; 308 Dense3DModelPeakCache *m_peakCache;
308 Dense3DModelPeakCache *getPeakCache() const { return m_peakCache; } 309 Dense3DModelPeakCache *getPeakCache() const { return m_peakCache; }
309 const int m_peakCacheDivisor; 310 const int m_peakCacheDivisor;
311 bool canStoreWholeCache() const;
310 void recreateFFTModel(); 312 void recreateFFTModel();
311 313
312 typedef std::map<int, MagnitudeRange> ViewMagMap; // key is view id 314 typedef std::map<int, MagnitudeRange> ViewMagMap; // key is view id
313 mutable ViewMagMap m_viewMags; 315 mutable ViewMagMap m_viewMags;
314 mutable ViewMagMap m_lastRenderedMags; // when in normalizeVisibleArea mode 316 mutable ViewMagMap m_lastRenderedMags; // when in normalizeVisibleArea mode