Remove packet timer and use the elapsed timer directly.

This commit is contained in:
Jonathan Naylor
2016-07-14 18:20:06 +01:00
parent 026a8a2e06
commit ad29c5c4b6
6 changed files with 21 additions and 56 deletions

View File

@@ -33,7 +33,6 @@ m_rfState(RS_RF_LISTENING),
m_netState(RS_NET_IDLE),
m_rfTimeoutTimer(1000U, timeout),
m_netTimeoutTimer(1000U, timeout),
m_packetTimer(1000U, 0U, 200U),
m_networkWatchdog(1000U, 0U, 1500U),
m_elapsed(),
m_rfFrames(0U),
@@ -353,7 +352,6 @@ void CYSFControl::writeEndNet()
m_netTimeoutTimer.stop();
m_networkWatchdog.stop();
m_packetTimer.stop();
m_netPayload.reset();
@@ -399,7 +397,6 @@ void CYSFControl::writeNetwork()
m_netTimeoutTimer.start();
m_netPayload.reset();
m_packetTimer.start();
m_elapsed.start();
m_netState = RS_NET_AUDIO;
m_netFrames = 0U;
@@ -516,7 +513,6 @@ void CYSFControl::writeNetwork()
if (send) {
writeQueueNet(data + 33U);
m_packetTimer.start();
m_netFrames++;
m_netN = n;
}
@@ -545,21 +541,15 @@ void CYSFControl::clock(unsigned int ms)
}
if (m_netState == RS_NET_AUDIO) {
m_packetTimer.clock(ms);
unsigned int elapsed = m_elapsed.elapsed();
unsigned int frames = elapsed / YSF_FRAME_TIME;
if (m_packetTimer.isRunning() && m_packetTimer.hasExpired()) {
unsigned int elapsed = m_elapsed.elapsed();
unsigned int frames = elapsed / YSF_FRAME_TIME;
if (frames > m_netFrames) {
unsigned int count = frames - m_netFrames;
if (count > 2U) {
LogDebug("YSF, lost audio for 200ms filling in, elapsed: %ums, expected: %u, received: %u", elapsed, frames, m_netFrames);
insertSilence(count - 1U);
}
if (frames > m_netFrames) {
unsigned int count = frames - m_netFrames;
if (count > 2U) {
LogDebug("YSF, lost audio for over 200ms filling in, elapsed: %ums, expected: %u, received: %u", elapsed, frames, m_netFrames);
insertSilence(count - 1U);
}
m_packetTimer.start();
}
}
}