1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-07-26 03:54:30 -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
+5 -5
View File
@@ -168,10 +168,10 @@ QString DSPDeviceSinkEngine::sinkDeviceDescription()
return cmd.getDeviceDescription();
}
void DSPDeviceSinkEngine::work()
void DSPDeviceSinkEngine::work(int nbWriteSamples)
{
SampleSourceFifo* sampleFifo = m_deviceSampleSink->getSampleFifo();
unsigned int nbWriteSamples = sampleFifo->getChunkSize();
//unsigned int nbWriteSamples = sampleFifo->getChunkSize();
SampleVector::iterator writeBegin;
sampleFifo->getWriteIterator(writeBegin);
SampleVector::iterator writeAt = writeBegin;
@@ -407,7 +407,7 @@ void DSPDeviceSinkEngine::handleSetSink(DeviceSampleSink* sink)
if(m_deviceSampleSink != 0)
{
qDebug("DSPDeviceSinkEngine::handleSetSink: set %s", qPrintable(sink->getDeviceDescription()));
connect(m_deviceSampleSink->getSampleFifo(), SIGNAL(dataWrite()), this, SLOT(handleData()), Qt::QueuedConnection);
connect(m_deviceSampleSink->getSampleFifo(), SIGNAL(dataWrite(int)), this, SLOT(handleData(int)), Qt::QueuedConnection);
}
else
{
@@ -415,11 +415,11 @@ void DSPDeviceSinkEngine::handleSetSink(DeviceSampleSink* sink)
}
}
void DSPDeviceSinkEngine::handleData()
void DSPDeviceSinkEngine::handleData(int nbSamples)
{
if(m_state == StRunning)
{
work();
work(nbSamples);
}
}