diff data/fft/FFTDataServer.h @ 408:115f60df1e4d

* Speed up spectrogram painting by releasing mutex in FFTDataServer while calculating data prior to writing it, and by adding whole-column value query methods to FFT objects * Add paint cache to Thumbwheel -- repaints of this widget were slowing down the whole spectrogram repaint * More uses of MutexLocker (named and with debug) and more profile points * Make startup much quicker some of the time, with OSC server in place
author Chris Cannam
date Thu, 08 May 2008 14:46:22 +0000
parents 824ee993ca8d
children 3cc4b7cd2aa5
line wrap: on
line diff
--- a/data/fft/FFTDataServer.h	Tue Apr 29 15:34:17 2008 +0000
+++ b/data/fft/FFTDataServer.h	Thu May 08 14:46:22 2008 +0000
@@ -81,6 +81,10 @@
     void       getValuesAt(size_t x, size_t y, float &real, float &imaginary);
     bool       isColumnReady(size_t x);
 
+    bool       getMagnitudesAt(size_t x, float *values, size_t minbin = 0, size_t count = 0, size_t step = 1);
+    bool       getNormalizedMagnitudesAt(size_t x, float *values, size_t minbin = 0, size_t count = 0, size_t step = 1);
+    bool       getPhasesAt(size_t x, float *values, size_t minbin = 0, size_t count = 0, size_t step = 1);
+
     void       suspend();
     void       suspendWrites();
     void       resume(); // also happens automatically if new data needed
@@ -194,7 +198,7 @@
     FillThread *m_fillThread;
 
     void deleteProcessingData();
-    void fillColumn(size_t x);
+    void fillColumn(size_t x, bool lockHeld);
 
     QString generateFileBasename() const;
     static QString generateFileBasename(const DenseTimeValueModel *model,