-
jsiegle authored
To run this in the future, install astyle (sudo apt-get install astyle), then enter the following from the top-level project directory: astyle --options=astyle.options --recursive "./Source/*.cpp" "./Source/*.h" This will convert tabs to 4 spaces and ensure that brackets are on their own lines.
jsiegle authoredTo run this in the future, install astyle (sudo apt-get install astyle), then enter the following from the top-level project directory: astyle --options=astyle.options --recursive "./Source/*.cpp" "./Source/*.h" This will convert tabs to 4 spaces and ensure that brackets are on their own lines.
EventNode.cpp 2.56 KiB
/*
------------------------------------------------------------------
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 "EventNode.h"
#include "Channel.h"
EventNode::EventNode()
: GenericProcessor("Event Generator"), accumulator(0), Hz(1)
{
Array<var> hzValues;
hzValues.add(0.25f);
hzValues.add(0.5f);
hzValues.add(1.0f);
hzValues.add(2.0f);
parameters.add(Parameter("Frequency",hzValues, 0, 0));
}
EventNode::~EventNode()
{
}
AudioProcessorEditor* EventNode::createEditor()
{
editor = new EventNodeEditor(this, true);
return editor;
}
void EventNode::updateSettings()
{
// add event channels
Channel* ch = new Channel(this, 1);
ch->name = "Trigger";
eventChannels.add(ch);
}
// void EventNode::setParameter (int parameterIndex, float newValue)
// {
// std::cout << "Setting frequency to " << newValue << " Hz." << std::endl;
// Hz = newValue;
// }
void EventNode::process(AudioSampleBuffer& buffer,
MidiBuffer& events,
int& nSamples)
{
events.clear();
//std::cout << "Adding message." << std::endl;
Parameter& p1 = parameters.getReference(0);
//std::cout << (float) p1[0] << std::endl;
for (int i = 0; i < buffer.getNumSamples(); i++)
{
accumulator += 1.0f;
if (accumulator > getSampleRate() / (float) p1[0])
{
std::cout << "Adding message." << std::endl;
addEvent(events, // MidiBuffer
TTL, // eventType
i, // sampleNum
1, // eventID
1 // eventChannel
);
accumulator = 0;
}
}
}