diff --git a/Source/Processors/Visualization/LfpDisplayCanvas.cpp b/Source/Processors/Visualization/LfpDisplayCanvas.cpp index 7917cd2f799add28105cb823f77e3c4f63eb8ad1..b106e07e8580cea8c67a5a2f58e89da763bd1eb5 100755 --- a/Source/Processors/Visualization/LfpDisplayCanvas.cpp +++ b/Source/Processors/Visualization/LfpDisplayCanvas.cpp @@ -82,14 +82,14 @@ void LfpDisplayCanvas::beginAnimation() screenBufferIndex = 0; - startTimer(500); + startCallbacks(); } void LfpDisplayCanvas::endAnimation() { std::cout << "Ending animation." << std::endl; - stopTimer(); + stopCallbacks(); } void LfpDisplayCanvas::update() @@ -254,19 +254,22 @@ void LfpDisplayCanvas::paint(Graphics& g) { //std::cout << "Painting" << std::endl; - - updateScreenBuffer(); - g.setColour(Colours::grey); g.fillRect(0, 0, getWidth(), getHeight()); - g.setColour(Colours::yellow); + // g.setColour(Colours::yellow); - g.drawLine(screenBufferIndex, 0, screenBufferIndex, getHeight()); + // g.drawLine(screenBufferIndex, 0, screenBufferIndex, getHeight()); } +void LfpDisplayCanvas::refresh() +{ + updateScreenBuffer(); + +} + // ------------------------------------------------------------- LfpTimescale::LfpTimescale(LfpDisplayCanvas* c) : canvas(c) diff --git a/Source/Processors/Visualization/LfpDisplayCanvas.h b/Source/Processors/Visualization/LfpDisplayCanvas.h index 8c0ce15eb6d927287dd96ea694a8b3ccb86e07e6..039ed1d0dd2b794573ac710376505605067f505c 100755 --- a/Source/Processors/Visualization/LfpDisplayCanvas.h +++ b/Source/Processors/Visualization/LfpDisplayCanvas.h @@ -60,6 +60,8 @@ public: void paint(Graphics& g); + void refresh(); + void resized(); float getXCoord(int chan, int samp); diff --git a/Source/Processors/Visualization/Visualizer.h b/Source/Processors/Visualization/Visualizer.h index 96250ba1095b4a5424c84b0d2494770919fc0a2e..fe0f15c72f45af1bd312ac2993049665d9368355 100755 --- a/Source/Processors/Visualization/Visualizer.h +++ b/Source/Processors/Visualization/Visualizer.h @@ -48,6 +48,9 @@ public: /** Called when parameters of underlying data processor are changed.*/ virtual void update() = 0; + /** Called instead of "repaint" to avoid redrawing underlying components if not necessary.*/ + virtual void refresh() = 0; + /** Called when data acquisition is active.*/ virtual void beginAnimation() = 0; @@ -67,7 +70,7 @@ public: void stopCallbacks() { stopTimer(); } /** Called whenever the timer is triggered. */ - void timerCallback() { repaint(); } + void timerCallback() { refresh(); } /** Refresh rate in Hz. */ float refreshRate;