1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-01 21:54:55 -04:00

Send number of samples to write in the writeData signal. Ask for half the buffer size when more than half of it is consumed

This commit is contained in:
f4exb
2016-12-21 02:24:49 +01:00
parent b3a470efff
commit 441c2c1817
4 changed files with 17 additions and 17 deletions
+8 -8
View File
@@ -52,7 +52,7 @@ void SampleSourceFifo::init()
void SampleSourceFifo::readAdvance(SampleVector::iterator& readUntil, unsigned int nbSamples)
{
QMutexLocker mutexLocker(&m_mutex);
// QMutexLocker mutexLocker(&m_mutex);
assert(nbSamples < m_samplesChunkSize/2);
m_ir = (m_ir + nbSamples) % m_size;
@@ -63,21 +63,21 @@ void SampleSourceFifo::readAdvance(SampleVector::iterator& readUntil, unsigned i
if (m_init)
{
emit dataWrite();
emit dataWrite(m_size);
m_init = false;
}
else if (i_delta > 0)
{
if (i_delta <= m_samplesChunkSize)
if (i_delta <= m_size/2) // m_samplesChunkSize)
{
emit dataWrite();
emit dataWrite(m_size/2);
}
}
else
{
if (i_delta + m_size <= m_samplesChunkSize)
if (i_delta + m_size <= m_size/2) //m_samplesChunkSize)
{
emit dataWrite();
emit dataWrite(m_size/2);
}
}
}
@@ -88,7 +88,7 @@ void SampleSourceFifo::write(const Sample& sample)
m_data[m_iw+m_size] = sample;
{
QMutexLocker mutexLocker(&m_mutex);
// QMutexLocker mutexLocker(&m_mutex);
m_iw = (m_iw+1) % m_size;
}
}
@@ -108,7 +108,7 @@ void SampleSourceFifo::bumpIndex(SampleVector::iterator& writeAt)
m_data[m_iw+m_size] = m_data[m_iw];
{
QMutexLocker mutexLocker(&m_mutex);
// QMutexLocker mutexLocker(&m_mutex);
m_iw = (m_iw+1) % m_size;
}