Skip to content
Snippets Groups Projects
Commit ff2dbd28 authored by jsiegle's avatar jsiegle
Browse files

Fix issues with loading SpikeDetector parameters

parent ddb0bfbf
No related branches found
No related tags found
No related merge requests found
...@@ -302,7 +302,7 @@ Array<int> ChannelSelector::getActiveChannels() ...@@ -302,7 +302,7 @@ Array<int> ChannelSelector::getActiveChannels()
void ChannelSelector::setActiveChannels(Array<int> a) 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++) for (int i = 0; i < parameterButtons.size(); i++)
{ {
......
...@@ -337,19 +337,23 @@ void SpikeDetectorEditor::buttonEvent(Button* button) ...@@ -337,19 +337,23 @@ void SpikeDetectorEditor::buttonEvent(Button* button)
void SpikeDetectorEditor::channelChanged(int chan) 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); if (electrodeButtons[i]->getToggleState())
electrodeButtons[i]->repaint(); {
electrodeButtons[i]->setChannelNum(chan);
electrodeButtons[i]->repaint();
SpikeDetector* processor = (SpikeDetector*) getProcessor(); SpikeDetector* processor = (SpikeDetector*) getProcessor();
processor->setChannel(electrodeList->getSelectedItemIndex(), processor->setChannel(electrodeList->getSelectedItemIndex(),
i, i,
chan-1); chan-1);
}
} }
} }
...@@ -548,7 +552,7 @@ ThresholdSlider::ThresholdSlider(Font f) : Slider("name"), font(f) ...@@ -548,7 +552,7 @@ ThresholdSlider::ThresholdSlider(Font f) : Slider("name"), font(f)
setSliderStyle(Slider::Rotary); setSliderStyle(Slider::Rotary);
setRange(25.0f,400.0f,25.0f); setRange(25.0f,400.0f,25.0f);
setValue(75.0f); // setValue(75.0f);
setTextBoxStyle(Slider::NoTextBox, false, 40, 20); setTextBoxStyle(Slider::NoTextBox, false, 40, 20);
} }
......
...@@ -94,15 +94,15 @@ public: ...@@ -94,15 +94,15 @@ public:
void channelChanged(int chan); void channelChanged(int chan);
bool addElectrode(int nChans); bool addElectrode(int nChans);
void removeElectrode(int index);
void checkSettings(); void checkSettings();
void refreshElectrodeList();
private: private:
void drawElectrodeButtons(int); void drawElectrodeButtons(int);
void refreshElectrodeList();
ComboBox* electrodeTypes; ComboBox* electrodeTypes;
ComboBox* electrodeList; ComboBox* electrodeList;
Label* numElectrodes; Label* numElectrodes;
...@@ -115,9 +115,7 @@ private: ...@@ -115,9 +115,7 @@ private:
OwnedArray<ElectrodeButton> electrodeButtons; OwnedArray<ElectrodeButton> electrodeButtons;
Array<ElectrodeEditorButton*> electrodeEditorButtons; Array<ElectrodeEditorButton*> electrodeEditorButtons;
void removeElectrode(int index);
void editElectrode(int index, int chan, int newChan); void editElectrode(int index, int chan, int newChan);
int lastId; int lastId;
......
...@@ -684,11 +684,12 @@ void GenericProcessor::loadFromXml() ...@@ -684,11 +684,12 @@ void GenericProcessor::loadFromXml()
update(); // make sure settings are updated update(); // make sure settings are updated
std::cout << "Loading parameters for " << name << std::endl;
if (!paramsWereLoaded) if (!paramsWereLoaded)
{ {
std::cout << "Loading parameters for " << name << std::endl;
if (parametersAsXml != nullptr) if (parametersAsXml != nullptr)
{ {
// use parametersAsXml to restore state // use parametersAsXml to restore state
......
...@@ -229,7 +229,7 @@ void SpikeDetector::setChannelActive(int electrodeIndex, int subChannel, bool ac ...@@ -229,7 +229,7 @@ void SpikeDetector::setChannelActive(int electrodeIndex, int subChannel, bool ac
currentElectrode = electrodeIndex; currentElectrode = electrodeIndex;
currentChannelIndex = subChannel; currentChannelIndex = subChannel;
std::cout << "Setting parameter 98 to " << active << std::endl; std::cout << "Setting channel active to " << active << std::endl;
if (active) if (active)
setParameter(98, 1); setParameter(98, 1);
...@@ -248,6 +248,7 @@ void SpikeDetector::setChannelThreshold(int electrodeNum, int channelNum, float ...@@ -248,6 +248,7 @@ void SpikeDetector::setChannelThreshold(int electrodeNum, int channelNum, float
{ {
currentElectrode = electrodeNum; currentElectrode = electrodeNum;
currentChannelIndex = channelNum; currentChannelIndex = channelNum;
std::cout << "Setting electrode " << electrodeNum << " channel threshold " << channelNum << " to " << thresh << std::endl;
setParameter(99, thresh); setParameter(99, thresh);
} }
...@@ -624,10 +625,13 @@ void SpikeDetector::saveCustomParametersToXml(XmlElement* parentElement) ...@@ -624,10 +625,13 @@ void SpikeDetector::saveCustomParametersToXml(XmlElement* parentElement)
void SpikeDetector::loadCustomParametersFromXml() void SpikeDetector::loadCustomParametersFromXml()
{ {
if (parametersAsXml != nullptr)
if (parametersAsXml != nullptr) // prevent double-loading
{ {
// use parametersAsXml to restore state // use parametersAsXml to restore state
SpikeDetectorEditor* sde = (SpikeDetectorEditor*) getEditor();
int electrodeIndex = -1; int electrodeIndex = -1;
forEachXmlChildElement(*parametersAsXml, xmlNode) forEachXmlChildElement(*parametersAsXml, xmlNode)
...@@ -637,12 +641,14 @@ void SpikeDetector::loadCustomParametersFromXml() ...@@ -637,12 +641,14 @@ void SpikeDetector::loadCustomParametersFromXml()
electrodeIndex++; electrodeIndex++;
std::cout << "ELECTRODE>>>" << std::endl;
int channelsPerElectrode = xmlNode->getIntAttribute("numChannels"); int channelsPerElectrode = xmlNode->getIntAttribute("numChannels");
SpikeDetectorEditor* sde = (SpikeDetectorEditor*) getEditor();
sde->addElectrode(channelsPerElectrode); sde->addElectrode(channelsPerElectrode);
setElectrodeName(electrodeIndex+1, xmlNode->getStringAttribute("name")); setElectrodeName(electrodeIndex+1, xmlNode->getStringAttribute("name"));
sde->refreshElectrodeList();
int channelIndex = -1; int channelIndex = -1;
...@@ -663,9 +669,8 @@ void SpikeDetector::loadCustomParametersFromXml() ...@@ -663,9 +669,8 @@ void SpikeDetector::loadCustomParametersFromXml()
} }
} }
}
SpikeDetectorEditor* ed = (SpikeDetectorEditor*) getEditor(); sde->checkSettings();
ed->checkSettings(); }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment