diff --git a/Source/Processors/ChannelMappingNode.cpp b/Source/Processors/ChannelMappingNode.cpp index 05e691e6522f18f673b43dd9b453aa680644bd6b..419d4c0c5a03a7c47a4ab6bce131729fa80f654d 100644 --- a/Source/Processors/ChannelMappingNode.cpp +++ b/Source/Processors/ChannelMappingNode.cpp @@ -52,7 +52,8 @@ AudioProcessorEditor* ChannelMappingNode::createEditor() void ChannelMappingNode::updateSettings() { - channelBuffer.setSize(getNumInputs(), 10000); + if (getNumInputs() > 0) + channelBuffer.setSize(getNumInputs(), 10000); } @@ -90,7 +91,7 @@ void ChannelMappingNode::process(AudioSampleBuffer& buffer, channelArray[i], // sourceChannel 0, // sourceStartSample nSamples, // numSamples - 1.0f // gain to apply to source (positive) + 1.0f // gain to apply to source (positive for original signal) ); } diff --git a/Source/Processors/Editors/ChannelMappingEditor.cpp b/Source/Processors/Editors/ChannelMappingEditor.cpp index 6a2d946419be5598b784db0bebae227f11327720..4f7faf24396ee598c6d1427456c8e56e1c8f1e5d 100644 --- a/Source/Processors/Editors/ChannelMappingEditor.cpp +++ b/Source/Processors/Editors/ChannelMappingEditor.cpp @@ -34,18 +34,17 @@ ChannelMappingEditor::ChannelMappingEditor(GenericProcessor* parentNode, bool us { desiredWidth = 340; - ElectrodeEditorButton* e1 = new ElectrodeEditorButton("MAPPING",Font("Small Text",14,Font::plain)); - e1->addListener(this); - addAndMakeVisible(e1); - e1->setBounds(15,110,80,10); - e1->setToggleState(true, false); - electrodeEditorButtons.add(e1); - - ElectrodeEditorButton* e2 = new ElectrodeEditorButton("REF",Font("Small Text",14,Font::plain)); - e2->addListener(this); - addAndMakeVisible(e2); - e2->setBounds(100,110,50,10); - electrodeEditorButtons.add(e2); + mappingButton = new ElectrodeEditorButton("MAPPING",Font("Small Text",14,Font::plain)); + mappingButton->addListener(this); + addAndMakeVisible(mappingButton); + mappingButton->setBounds(15,110,80,10); + mappingButton->setToggleState(true, false); + + referenceButton = new ElectrodeEditorButton("REF",Font("Small Text",14,Font::plain)); + referenceButton->addListener(this); + addAndMakeVisible(referenceButton); + referenceButton->setBounds(100,110,50,10); + referenceButton->setToggleState(false, false); channelSelector->setRadioStatus(true); @@ -104,7 +103,7 @@ void ChannelMappingEditor::createElectrodeButtons(int numNeeded) channelArray.add(i+1); - if (column%16 == 0) + if (column % 16 == 0) { column = 0; row++; @@ -119,28 +118,34 @@ void ChannelMappingEditor::createElectrodeButtons(int numNeeded) void ChannelMappingEditor::buttonEvent(Button* button) { - if (button == electrodeEditorButtons[0]) // mapping + if (button == mappingButton) // mapping { + std::cout << "Mapping button clicked." << std::endl; - electrodeEditorButtons[1]->setToggleState(false, false); + referenceButton->setToggleState(false, false); + mappingButton->setToggleState(true, false); for (int i = 0; i < electrodeButtons.size(); i++) { electrodeButtons[i]->setRadioGroupId(999); electrodeButtons[i]->setChannelNum(channelArray[i]); - electrodeButtons[i]->repaint(); + electrodeButtons[i]->repaint(); } } - else if (button == electrodeEditorButtons[1]) // reference + else if (button == referenceButton) // reference { - electrodeEditorButtons[0]->setToggleState(false, false); + + std::cout << "Reference button clicked." << std::endl; + + mappingButton->setToggleState(false, false); + referenceButton->setToggleState(true, false); for (int i = 0; i < electrodeButtons.size(); i++) { electrodeButtons[i]->setRadioGroupId(0); electrodeButtons[i]->setChannelNum(referenceArray[i]); - electrodeButtons[i]->repaint(); + electrodeButtons[i]->repaint(); } @@ -161,6 +166,9 @@ void ChannelMappingEditor::buttonEvent(Button* button) } + std::cout << "Reference button state: " << referenceButton->getToggleState() << std::endl; + std::cout << "Mapping button state: " << mappingButton->getToggleState() << std::endl; + } void ChannelMappingEditor::channelChanged(int chan) @@ -174,7 +182,7 @@ void ChannelMappingEditor::channelChanged(int chan) getProcessor()->setCurrentChannel(i); - if (electrodeEditorButtons[1]->getToggleState()) // reference + if (referenceButton->getToggleState()) // reference { referenceArray.set(i,chan); diff --git a/Source/Processors/Editors/ChannelMappingEditor.h b/Source/Processors/Editors/ChannelMappingEditor.h index 0ddde7119fa9aea18d4446c3db8ae0f5964f6b0a..46b7a499d8f9e453cccf8f63cafbab403e3c538a 100644 --- a/Source/Processors/Editors/ChannelMappingEditor.h +++ b/Source/Processors/Editors/ChannelMappingEditor.h @@ -60,7 +60,8 @@ public: private: OwnedArray<ElectrodeButton> electrodeButtons; - OwnedArray<ElectrodeEditorButton> electrodeEditorButtons; + ScopedPointer<ElectrodeEditorButton> referenceButton; + ScopedPointer<ElectrodeEditorButton> mappingButton; Array<int> channelArray; Array<int> referenceArray;