From cde648d377910acc3f5506131eb8659649ab6088 Mon Sep 17 00:00:00 2001 From: Jakob Voigts <jvoigts@jvoigts-x300.(none)> Date: Sat, 18 May 2013 12:34:55 -0400 Subject: [PATCH] added channel height selection used the term 'spread' as in the neuralynx software for now --- .../Visualization/LfpDisplayCanvas.cpp | 42 +++++++++++++++++++ .../Visualization/LfpDisplayCanvas.h | 4 ++ 2 files changed, 46 insertions(+) diff --git a/Source/Processors/Visualization/LfpDisplayCanvas.cpp b/Source/Processors/Visualization/LfpDisplayCanvas.cpp index 7bbfe9dc2..dce90aaf1 100755 --- a/Source/Processors/Visualization/LfpDisplayCanvas.cpp +++ b/Source/Processors/Visualization/LfpDisplayCanvas.cpp @@ -69,6 +69,15 @@ LfpDisplayCanvas::LfpDisplayCanvas(LfpDisplayNode* processor_) : timebases.add("5.0"); timebases.add("10.0"); + + spreads.add("10"); + spreads.add("20"); + spreads.add("30"); + spreads.add("40"); + spreads.add("50"); + spreads.add("60"); + + rangeSelection = new ComboBox("Voltage range"); rangeSelection->addItemList(voltageRanges, 1); rangeSelection->setSelectedId(4,false); @@ -81,6 +90,14 @@ LfpDisplayCanvas::LfpDisplayCanvas(LfpDisplayNode* processor_) : timebaseSelection->addListener(this); addAndMakeVisible(timebaseSelection); + + spreadSelection = new ComboBox("Spread"); + spreadSelection->addItemList(spreads, 1); + spreadSelection->setSelectedId(5,false); + spreadSelection->addListener(this); + addAndMakeVisible(spreadSelection); + + lfpDisplay->setNumChannels(nChans); lfpDisplay->setRange(1000.0f); @@ -102,6 +119,7 @@ void LfpDisplayCanvas::resized() rangeSelection->setBounds(5,getHeight()-30,100,25); timebaseSelection->setBounds(175,getHeight()-30,100,25); + spreadSelection->setBounds(345,getHeight()-30,100,25); } @@ -152,6 +170,13 @@ void LfpDisplayCanvas::comboBoxChanged(ComboBox* cb) lfpDisplay->setRange(voltageRanges[cb->getSelectedId()-1].getFloatValue()); //std::cout << "Setting range to " << voltageRanges[cb->getSelectedId()-1].getFloatValue() << std::endl; } + else if (cb == spreadSelection) + { + //spread = spreads[cb->getSelectedId()-1].getFloatValue(); + lfpDisplay->setChannelHeight(spreads[cb->getSelectedId()-1].getFloatValue()); + lfpDisplay->resized(); + std::cout << "Setting spread to " << spreads[cb->getSelectedId()-1].getFloatValue() << std::endl; + } timescale->setTimebase(timebase); } @@ -333,6 +358,7 @@ void LfpDisplayCanvas::paint(Graphics& g) g.drawText("Voltage range (uV)",5,getHeight()-55,300,20,Justification::left, false); g.drawText("Timebase (s)",175,getHeight()-55,300,20,Justification::left, false); + g.drawText("Spread (px)",345,getHeight()-55,300,20,Justification::left, false); } @@ -351,8 +377,10 @@ void LfpDisplayCanvas::saveVisualizerParameters(XmlElement* xml) XmlElement* xmlNode = xml->createNewChildElement("LFPDISPLAY"); + xmlNode->setAttribute("Range",rangeSelection->getSelectedId()); xmlNode->setAttribute("Timebase",timebaseSelection->getSelectedId()); + xmlNode->setAttribute("Spread",spreadSelection->getSelectedId()); xmlNode->setAttribute("ScrollX",viewport->getViewPositionX()); xmlNode->setAttribute("ScrollY",viewport->getViewPositionY()); @@ -367,6 +395,8 @@ void LfpDisplayCanvas::loadVisualizerParameters(XmlElement* xml) { rangeSelection->setSelectedId(xmlNode->getIntAttribute("Range")); timebaseSelection->setSelectedId(xmlNode->getIntAttribute("Timebase")); + spreadSelection->setSelectedId(xmlNode->getIntAttribute("Spread")); + viewport->setViewPosition(xmlNode->getIntAttribute("ScrollX"), xmlNode->getIntAttribute("ScrollY")); } @@ -559,6 +589,18 @@ void LfpDisplay::setRange(float r) } +void LfpDisplay::setChannelHeight(float r) +{ + + for (int i = 0; i < numChans; i++) + { + + channels[i]->setChannelHeight(r); + + } + +} + void LfpDisplay::mouseDown(const MouseEvent& event) { //int x = event.getMouseDownX(); diff --git a/Source/Processors/Visualization/LfpDisplayCanvas.h b/Source/Processors/Visualization/LfpDisplayCanvas.h index 6c30c3b98..89cca530a 100755 --- a/Source/Processors/Visualization/LfpDisplayCanvas.h +++ b/Source/Processors/Visualization/LfpDisplayCanvas.h @@ -85,6 +85,7 @@ private: float timebase; float displayGain; float timeOffset; + float spread ; // vertical spacing between channels static const int MAX_N_CHAN = 256; // maximum number of channels static const int MAX_N_SAMP = 5000; // maximum display size in pixels @@ -101,9 +102,11 @@ private: ScopedPointer<ComboBox> timebaseSelection; ScopedPointer<ComboBox> rangeSelection; + ScopedPointer<ComboBox> spreadSelection; StringArray voltageRanges; StringArray timebases; + StringArray spreads; // option for vertical spacing between channels void refreshScreenBuffer(); void updateScreenBuffer(); @@ -162,6 +165,7 @@ public: void mouseDown(const MouseEvent& event); void setRange(float range); + void setChannelHeight(float r); private: int numChans; -- GitLab