2525#define SPIKESORTERCANVAS_H_
2626
2727#include < VisualizerWindowHeaders.h>
28- #include < SpikeLib.h>
29-
3028#include " SpikeSorter.h"
3129
3230#include < vector>
@@ -102,21 +100,22 @@ class SpikeSorterCanvas : public Visualizer, public Button::Listener
102100
103101 SpikeSorter* processor;
104102
103+ // added editAllThresholds
105104 ScopedPointer<UtilityButton> addPolygonUnitButton,
106- addUnitButton, delUnitButton, addBoxButton, delBoxButton, rePCAButton,nextElectrode,prevElectrode,newIDbuttons,deleteAllUnits;
105+ addUnitButton, delUnitButton, addBoxButton, delBoxButton, rePCAButton,nextElectrode,prevElectrode,newIDbuttons,deleteAllUnits,editAllThresholds ;
107106
108107private:
109108 void removeUnitOrBox ();
110109 ScopedPointer<SpikeThresholdDisplay> spikeDisplay;
111110 ScopedPointer<Viewport> viewport;
112111
112+
113113 bool inDrawingPolygonMode;
114114 bool newSpike;
115- SpikeObject spike;
115+ // SpikeObject spike;
116116 Electrode* electrode;
117117 int scrollBarThickness;
118-
119- JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (SpikeSorterCanvas);
118+ JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (SpikeSorterCanvas);
120119
121120};
122121
@@ -138,7 +137,7 @@ class SpikeThresholdDisplay : public Component
138137 void setPolygonMode (bool on);
139138 void mouseDown (const juce::MouseEvent& event);
140139
141- void plotSpike (const SpikeObject& spike, int electrodeNum);
140+ void plotSpike (SorterSpikePtr spike, int electrodeNum);
142141
143142 int getTotalHeight ()
144143 {
@@ -148,7 +147,7 @@ class SpikeThresholdDisplay : public Component
148147private:
149148 int numColumns;
150149 int totalHeight;
151-
150+
152151 SpikeSorter* processor;
153152 SpikeSorterCanvas* canvas;
154153 Viewport* viewport;
@@ -175,7 +174,7 @@ class GenericDrawAxes : public Component
175174
176175 virtual ~GenericDrawAxes ();
177176
178- virtual bool updateSpikeData (const SpikeObject& s);
177+ virtual bool updateSpikeData (SorterSpikePtr s);
179178
180179 void setXLims (double xmin, double xmax);
181180 void getXLims (double * xmin, double * xmax);
@@ -194,7 +193,7 @@ class GenericDrawAxes : public Component
194193 double xlims[2 ];
195194 double ylims[2 ];
196195
197- SpikeObject s;
196+ SorterSpikePtr s;
198197
199198 bool gotFirstSpike;
200199
@@ -213,14 +212,14 @@ class WaveformAxes : public GenericDrawAxes
213212 ~WaveformAxes () {}
214213
215214
216- bool updateSpikeData (const SpikeObject& s);
217- bool checkThreshold (const SpikeObject& spike);
215+ bool updateSpikeData (SorterSpikePtr s);
216+ bool checkThreshold (SorterSpikePtr spike);
218217
219218 void setSignalFlip (bool state);
220219 void paint (Graphics& g);
221220 void isOverUnitBox (float x, float y, int & UnitID, int & BoxID, String& where) ;
222221
223- void plotSpike (const SpikeObject& s, Graphics& g);
222+ void plotSpike (SorterSpikePtr s, Graphics& g);
224223 void drawBoxes (Graphics& g);
225224
226225 void clear ();
@@ -248,6 +247,9 @@ class WaveformAxes : public GenericDrawAxes
248247
249248private:
250249 int electrodeID;
250+ // new
251+ bool editAll = false ;
252+ //
251253 bool signalFlipped;
252254 bool bDragging ;
253255 Colour waveColour;
@@ -268,7 +270,7 @@ class WaveformAxes : public GenericDrawAxes
268270 Font font;
269271 float mouseDownX, mouseDownY;
270272 float mouseOffsetX,mouseOffsetY;
271- Array<SpikeObject> spikeBuffer;
273+ SorterSpikeArray spikeBuffer;
272274
273275 int spikeIndex;
274276 int bufferSize;
@@ -296,7 +298,7 @@ class PCAProjectionAxes : public GenericDrawAxes, Button::Listener
296298 ~PCAProjectionAxes () {}
297299
298300 void setPCARange (float p1min, float p2min, float p1max, float p2max);
299- bool updateSpikeData (const SpikeObject& s);
301+ bool updateSpikeData (SorterSpikePtr s);
300302 void resized ();
301303 void paint (Graphics& g);
302304 void setPolygonDrawingMode (bool on);
@@ -320,19 +322,19 @@ class PCAProjectionAxes : public GenericDrawAxes, Button::Listener
320322private:
321323 float prevx,prevy;
322324 bool inPolygonDrawingMode;
323- void drawProjectedSpike (SpikeObject s);
325+ void drawProjectedSpike (SorterSpikePtr s);
324326
325327 bool rangeSet;
326328 SpikeSorter* processor;
327329 void updateProjectionImage (uint16_t , uint16_t , uint16_t , const uint8_t * col);
328- void updateRange (const SpikeObject& s);
330+ void updateRange (SorterSpikePtr s);
329331 ScopedPointer<UtilityButton> rangeDownButton, rangeUpButton;
330332
331- Array<SpikeObject> spikeBuffer;
333+ SorterSpikeArray spikeBuffer;
332334 int bufferSize;
333335 int spikeIndex;
334336 bool updateProcessor;
335- void calcWaveformPeakIdx (const SpikeObject& , int , int , int *, int *);
337+ void calcWaveformPeakIdx (SorterSpikePtr , int , int , int *, int *);
336338
337339 Image projectionImage;
338340
@@ -374,7 +376,7 @@ class SpikeHistogramPlot : public Component, Button::Listener
374376 void setPCARange (float p1min, float p2min, float p1max, float p2max);
375377 void modifyRange (int index,bool up);
376378 void updateUnitsFromProcessor ();
377- void processSpikeObject (const SpikeObject& s);
379+ void processSpikeObject (SorterSpikePtr s);
378380
379381 SpikeSorterCanvas* canvas;
380382
0 commit comments