radioInterface{Multi,Resamp}: Fix successful writeSamples() masking underrun from readSamples()

The only who should be setting class instance value "underrun" to false
is isUnderrun().
Similar fixes were already applied lately to radioInterface.cpp.

Change-Id: I3239b1df4536c080365106b3e4daa523b57f5dff
This commit is contained in:
Pau Espin 2019-09-13 18:23:47 +02:00
parent e2ac20a96e
commit 25383a3610
2 changed files with 6 additions and 2 deletions

View File

@ -309,6 +309,7 @@ int RadioInterfaceMulti::pullBuffer()
/* Send a timestamped chunk to the device */
bool RadioInterfaceMulti::pushBuffer()
{
bool local_underrun;
if (sendBuffer[0]->getAvailSegments() <= 0)
return false;
@ -341,12 +342,13 @@ bool RadioInterfaceMulti::pushBuffer()
size_t num = mDevice->writeSamples(convertSendBuffer,
outerSendBuffer->size(),
&underrun,
&local_underrun,
writeTimestamp);
if (num != outerSendBuffer->size()) {
LOG(ALERT) << "Transmit error " << num;
}
underrun |= local_underrun;
writeTimestamp += num;
return true;

View File

@ -204,6 +204,7 @@ int RadioInterfaceResamp::pullBuffer()
/* Send a timestamped chunk to the device */
bool RadioInterfaceResamp::pushBuffer()
{
bool local_underrun;
int rc;
size_t numSent;
@ -225,12 +226,13 @@ bool RadioInterfaceResamp::pushBuffer()
numSent = mDevice->writeSamples(convertSendBuffer,
resamp_outchunk,
&underrun,
&local_underrun,
writeTimestamp);
if (numSent != resamp_outchunk) {
LOG(ALERT) << "Transmit error " << numSent;
}
underrun |= local_underrun;
writeTimestamp += resamp_outchunk;
return true;