/* ------------------------------------------------------------------ This file is part of the Open Ephys GUI Copyright (C) 2013 Open Ephys ------------------------------------------------------------------ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <stdio.h> #include "ReferenceNode.h" #include "Editors/ReferenceNodeEditor.h" ReferenceNode::ReferenceNode() : GenericProcessor("Digital Ref"), referenceChannel(-1), referenceBuffer(1,10000) { } ReferenceNode::~ReferenceNode() { } AudioProcessorEditor* ReferenceNode::createEditor() { editor = new ReferenceNodeEditor(this, true); std::cout << "Creating editor." << std::endl; return editor; } void ReferenceNode::updateSettings() { } void ReferenceNode::setParameter(int parameterIndex, float newValue) { referenceChannel = (int) newValue; std::cout << "Reference set to " << referenceChannel << std::endl; } void ReferenceNode::process(AudioSampleBuffer& buffer, MidiBuffer& midiMessages, int& nSamples) { if (referenceChannel > -1) { referenceBuffer.clear(0, 0, nSamples); referenceBuffer.addFrom(0, // destChannel 0, // destStartSample buffer, // source referenceChannel, // sourceChannel 0, // sourceStartSample nSamples, // numSamples -1.0f // gain to apply to source ); for (int i = 0; i < buffer.getNumChannels(); i++) { buffer.addFrom(i, // destChannel 0, // destStartSample referenceBuffer, // source 0, // sourceChannel 0, // sourceStartSample nSamples, // numSamples 1.0f // gain to apply to source ); } } }