#include "DashedLineEffect.h" DashedLineEffect::DashedLineEffect() {} DashedLineEffect::~DashedLineEffect() {} OsciPoint DashedLineEffect::apply(int index, OsciPoint vector, const std::vector>& values, double sampleRate) { // dash length in seconds double dashLength = values[0] / 400; int dashLengthSamples = (int)(dashLength * sampleRate); dashLengthSamples = juce::jmin(dashLengthSamples, MAX_BUFFER); if (dashIndex >= dashLengthSamples) { dashIndex = 0; bufferIndex = 0; } buffer[bufferIndex] = vector; bufferIndex++; vector = buffer[dashIndex]; if (index % 2 == 0) { dashIndex++; } return vector; }