AFV initial commit

This commit is contained in:
Roland Rossgotterer
2019-09-14 21:18:26 +02:00
committed by Mat Sutcliffe
parent 7030302e73
commit b5a2f2ad13
100 changed files with 6821 additions and 25 deletions

View File

@@ -0,0 +1,34 @@
#include "bufferedwaveprovider.h"
#include <QDebug>
BufferedWaveProvider::BufferedWaveProvider(const QAudioFormat &format, QObject *parent) :
ISampleProvider(parent)
{
// Set buffer size to 10 secs
m_maxBufferSize = format.bytesForDuration(10 * 1000 * 1000);
}
void BufferedWaveProvider::addSamples(const QVector<qint16> &samples)
{
int delta = m_audioBuffer.size() + samples.size() - m_maxBufferSize;
if(delta > 0)
{
m_audioBuffer.remove(0, delta);
}
m_audioBuffer.append(samples);
}
int BufferedWaveProvider::readSamples(QVector<qint16> &samples, qint64 count)
{
qint64 len = qMin(count, static_cast<qint64>(m_audioBuffer.size()));
samples = m_audioBuffer.mid(0, len);
// if (len != 0) qDebug() << "Reading" << count << "samples." << m_audioBuffer.size() << "currently in the buffer.";
m_audioBuffer.remove(0, len);
return len;
}
void BufferedWaveProvider::clearBuffer()
{
m_audioBuffer.clear();
}