// // Created by versustune on 12.06.20. // #include #include "VenoBuffer.h" VenoBuffer::VenoBuffer () { } VenoBuffer::~VenoBuffer () { buffer.clear (); right.clear (); left.clear (); } void VenoBuffer::reset (int size) { if (size != buffer.size ()) { buffer.resize (size); right.resize (size); left.resize (size); } // reset to 0 dc :D for (int i = 0; i < size; ++i) { buffer[i] = 0; left[i] = 0; right[i] = 0; } leftPeak = 0; rightPeak = 0; monoPeak = 0; } void VenoBuffer::addMonoSample (float value, int index) { buffer[index] = value; } void VenoBuffer::addLeftSample (float value, int index) { left[index] = value; } void VenoBuffer::addRightSample (float value, int index) { right[index] = value; } void VenoBuffer::calcPeak () { for (int i = 0; i < buffer.size (); ++i) { auto l = std::abs (left[i]); auto r = std::abs (right[i]); auto m = std::abs (buffer[i]); if (m > monoPeak) { monoPeak = m; } if (l > leftPeak) { leftPeak = l; } if (r > rightPeak) { rightPeak = r; } } } const std::vector& VenoBuffer::getBuffer () const { return buffer; } const std::vector& VenoBuffer::getRight () const { return right; } const std::vector& VenoBuffer::getLeft () const { return left; }