diff framework/MainWindowBase.h @ 113:0c1ea5ff6518

* 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 2dd30a7cd21a
children 74dd55646f52
line wrap: on
line diff
--- a/framework/MainWindowBase.h	Wed Apr 30 16:58:19 2008 +0000
+++ b/framework/MainWindowBase.h	Thu May 08 14:46:22 2008 +0000
@@ -21,6 +21,7 @@
 #include <QUrl>
 #include <QMainWindow>
 #include <QPointer>
+#include <QThread>
 
 #include "base/Command.h"
 #include "view/ViewManager.h"
@@ -31,6 +32,7 @@
 #include "SVFileReader.h"
 #include "widgets/FileFinder.h"
 #include "data/fileio/FileSource.h"
+#include "data/osc/OSCQueue.h"
 #include <map>
 
 class Document;
@@ -52,7 +54,6 @@
 class PreferencesDialog;
 class QTreeView;
 class QPushButton;
-class OSCQueue;
 class OSCMessage;
 class KeyReference;
 class Labeller;
@@ -238,6 +239,7 @@
     virtual void paneDropAccepted(Pane *, QString) = 0;
     virtual void paneDeleteButtonClicked(Pane *);
 
+    virtual void oscReady();
     virtual void pollOSC();
     virtual void handleOSCMessage(const OSCMessage &) = 0;
 
@@ -260,7 +262,20 @@
     AudioCallbackPlaySource *m_playSource;
     AudioCallbackPlayTarget *m_playTarget;
 
+    class OSCQueueStarter : public QThread
+    {
+    public:
+        OSCQueueStarter(MainWindowBase *mwb) : QThread(mwb), m_mwb(mwb) { }
+        virtual void run() {
+            OSCQueue *queue = new OSCQueue(); // can take a long time
+            m_mwb->m_oscQueue = queue;
+        }
+    private:
+        MainWindowBase *m_mwb;
+    };
+
     OSCQueue                *m_oscQueue;
+    OSCQueueStarter         *m_oscQueueStarter;
 
     RecentFiles              m_recentFiles;
     RecentFiles              m_recentTransforms;