# HG changeset patch # User Chris Cannam # Date 1154619611 0 # Node ID ae9be6b6b52268e0658542371daceb2ebc649f9b # Parent 6ec58bb8f7297e4e70616bd202efab3690c72e5d * Add Thumbwheel widget for all our zooming needs * Use QSettings to save/restore window size and position -- precursor to switching our preferences to QSettings as well -- wish I'd noticed it sooner * Only suspend writes (not reads from the underlying cache objects) from the fft caches when repainting the spectrogram -- performance should now be significantly better diff -r 6ec58bb8f729 -r ae9be6b6b522 data/fft/FFTDataServer.cpp --- a/data/fft/FFTDataServer.cpp Thu Aug 03 12:42:15 2006 +0000 +++ b/data/fft/FFTDataServer.cpp Thu Aug 03 15:40:11 2006 +0000 @@ -369,6 +369,7 @@ std::cerr << "FFTDataServer(" << this << ")::~FFTDataServer()" << std::endl; #endif + m_suspended = false; m_exiting = true; m_condition.wakeAll(); if (m_fillThread) { @@ -411,6 +412,15 @@ } void +FFTDataServer::suspendWrites() +{ +#ifdef DEBUG_FFT_SERVER + std::cerr << "FFTDataServer(" << this << "): suspendWrites" << std::endl; +#endif + m_suspended = true; +} + +void FFTDataServer::resume() { #ifdef DEBUG_FFT_SERVER diff -r 6ec58bb8f729 -r ae9be6b6b522 data/fft/FFTDataServer.h --- a/data/fft/FFTDataServer.h Thu Aug 03 12:42:15 2006 +0000 +++ b/data/fft/FFTDataServer.h Thu Aug 03 15:40:11 2006 +0000 @@ -74,6 +74,7 @@ bool isColumnReady(size_t x); void suspend(); + void suspendWrites(); void resume(); // also happens automatically if new data needed // Convenience functions: diff -r 6ec58bb8f729 -r ae9be6b6b522 data/model/FFTModel.h --- a/data/model/FFTModel.h Thu Aug 03 12:42:15 2006 +0000 +++ b/data/model/FFTModel.h Thu Aug 03 15:40:11 2006 +0000 @@ -101,6 +101,7 @@ virtual Model *clone() const; virtual void suspend() { m_server->suspend(); } + virtual void suspendWrites() { m_server->suspendWrites(); } virtual void resume() { m_server->resume(); } private: