diff --git a/Source/Processors/Editors/ChannelSelector.cpp b/Source/Processors/Editors/ChannelSelector.cpp index 1433cd15e6349e742a3c6c805bb0d9bc52d65871..569018be79650e65207ab7065ddecd63cdd3aa6f 100755 --- a/Source/Processors/Editors/ChannelSelector.cpp +++ b/Source/Processors/Editors/ChannelSelector.cpp @@ -302,7 +302,7 @@ Array<int> ChannelSelector::getActiveChannels() void ChannelSelector::setActiveChannels(Array<int> a) { - std::cout << "Setting active channels!" << std::endl; + //std::cout << "Setting active channels!" << std::endl; for (int i = 0; i < parameterButtons.size(); i++) { diff --git a/Source/Processors/Editors/SpikeDetectorEditor.cpp b/Source/Processors/Editors/SpikeDetectorEditor.cpp index 9b6ad49ede0cb049f1a62fd377dad26b9d54d2eb..47e23390a4c13911232c974e161c13db6253b16c 100755 --- a/Source/Processors/Editors/SpikeDetectorEditor.cpp +++ b/Source/Processors/Editors/SpikeDetectorEditor.cpp @@ -337,19 +337,23 @@ void SpikeDetectorEditor::buttonEvent(Button* button) void SpikeDetectorEditor::channelChanged(int chan) { - //std::cout << "New channel: " << chan << std::endl; - for (int i = 0; i < electrodeButtons.size(); i++) + if (electrodeEditorButtons[0]->getToggleState()) // editing is active { - if (electrodeButtons[i]->getToggleState()) + std::cout << "New channel: " << chan << std::endl; + + for (int i = 0; i < electrodeButtons.size(); i++) { - electrodeButtons[i]->setChannelNum(chan); - electrodeButtons[i]->repaint(); + if (electrodeButtons[i]->getToggleState()) + { + electrodeButtons[i]->setChannelNum(chan); + electrodeButtons[i]->repaint(); - SpikeDetector* processor = (SpikeDetector*) getProcessor(); - processor->setChannel(electrodeList->getSelectedItemIndex(), - i, - chan-1); + SpikeDetector* processor = (SpikeDetector*) getProcessor(); + processor->setChannel(electrodeList->getSelectedItemIndex(), + i, + chan-1); + } } } @@ -548,7 +552,7 @@ ThresholdSlider::ThresholdSlider(Font f) : Slider("name"), font(f) setSliderStyle(Slider::Rotary); setRange(25.0f,400.0f,25.0f); - setValue(75.0f); + // setValue(75.0f); setTextBoxStyle(Slider::NoTextBox, false, 40, 20); } diff --git a/Source/Processors/Editors/SpikeDetectorEditor.h b/Source/Processors/Editors/SpikeDetectorEditor.h index 5e955937c2bde346200c51b24beeb7d41567375d..36363951b957f395d2e86f10c59d2299a052fad7 100755 --- a/Source/Processors/Editors/SpikeDetectorEditor.h +++ b/Source/Processors/Editors/SpikeDetectorEditor.h @@ -94,15 +94,15 @@ public: void channelChanged(int chan); bool addElectrode(int nChans); + void removeElectrode(int index); void checkSettings(); + void refreshElectrodeList(); private: void drawElectrodeButtons(int); - void refreshElectrodeList(); - ComboBox* electrodeTypes; ComboBox* electrodeList; Label* numElectrodes; @@ -115,9 +115,7 @@ private: OwnedArray<ElectrodeButton> electrodeButtons; Array<ElectrodeEditorButton*> electrodeEditorButtons; - - - void removeElectrode(int index); + void editElectrode(int index, int chan, int newChan); int lastId; diff --git a/Source/Processors/GenericProcessor.cpp b/Source/Processors/GenericProcessor.cpp index ef13adae827d755952ce585bb32e6fd9d36ded7f..16ca2df00f350c5f894fe1e163042bd1fffdb305 100755 --- a/Source/Processors/GenericProcessor.cpp +++ b/Source/Processors/GenericProcessor.cpp @@ -684,11 +684,12 @@ void GenericProcessor::loadFromXml() update(); // make sure settings are updated - std::cout << "Loading parameters for " << name << std::endl; - + if (!paramsWereLoaded) { + std::cout << "Loading parameters for " << name << std::endl; + if (parametersAsXml != nullptr) { // use parametersAsXml to restore state diff --git a/Source/Processors/SpikeDetector.cpp b/Source/Processors/SpikeDetector.cpp index 7c7d0045049683e642ea171832af83280dd56bc8..61d2ae8e901b01d4c90fe8191945663a26c1cfd2 100755 --- a/Source/Processors/SpikeDetector.cpp +++ b/Source/Processors/SpikeDetector.cpp @@ -229,7 +229,7 @@ void SpikeDetector::setChannelActive(int electrodeIndex, int subChannel, bool ac currentElectrode = electrodeIndex; currentChannelIndex = subChannel; - std::cout << "Setting parameter 98 to " << active << std::endl; + std::cout << "Setting channel active to " << active << std::endl; if (active) setParameter(98, 1); @@ -248,6 +248,7 @@ void SpikeDetector::setChannelThreshold(int electrodeNum, int channelNum, float { currentElectrode = electrodeNum; currentChannelIndex = channelNum; + std::cout << "Setting electrode " << electrodeNum << " channel threshold " << channelNum << " to " << thresh << std::endl; setParameter(99, thresh); } @@ -624,10 +625,13 @@ void SpikeDetector::saveCustomParametersToXml(XmlElement* parentElement) void SpikeDetector::loadCustomParametersFromXml() { - if (parametersAsXml != nullptr) + + if (parametersAsXml != nullptr) // prevent double-loading { // use parametersAsXml to restore state + SpikeDetectorEditor* sde = (SpikeDetectorEditor*) getEditor(); + int electrodeIndex = -1; forEachXmlChildElement(*parametersAsXml, xmlNode) @@ -637,12 +641,14 @@ void SpikeDetector::loadCustomParametersFromXml() electrodeIndex++; + std::cout << "ELECTRODE>>>" << std::endl; + int channelsPerElectrode = xmlNode->getIntAttribute("numChannels"); - SpikeDetectorEditor* sde = (SpikeDetectorEditor*) getEditor(); sde->addElectrode(channelsPerElectrode); setElectrodeName(electrodeIndex+1, xmlNode->getStringAttribute("name")); + sde->refreshElectrodeList(); int channelIndex = -1; @@ -663,9 +669,8 @@ void SpikeDetector::loadCustomParametersFromXml() } } - } - SpikeDetectorEditor* ed = (SpikeDetectorEditor*) getEditor(); - ed->checkSettings(); + sde->checkSettings(); + } }