mirror of
https://github.com/badaix/snapcast.git
synced 2025-06-04 03:41:43 +02:00
improved time sync
This commit is contained in:
parent
48ac9d2209
commit
c92588344e
5 changed files with 44 additions and 17 deletions
|
@ -20,7 +20,7 @@
|
|||
#include "common/log.h"
|
||||
|
||||
|
||||
TimeProvider::TimeProvider() : diffToServer_(0), lastTimeSync_(0)
|
||||
TimeProvider::TimeProvider() : diffToServer_(0)
|
||||
{
|
||||
diffBuffer_.setSize(200);
|
||||
}
|
||||
|
@ -28,18 +28,19 @@ TimeProvider::TimeProvider() : diffToServer_(0), lastTimeSync_(0)
|
|||
|
||||
void TimeProvider::setDiffToServer(double ms)
|
||||
{
|
||||
static long lastTimeSync = 0;
|
||||
long now = chronos::getTickCount();
|
||||
/// clear diffBuffer if last update is older than a minute
|
||||
if (!diffBuffer_.empty() && (now > lastTimeSync_ + 60*1000))
|
||||
if (!diffBuffer_.empty() && (now > lastTimeSync + 60*1000))
|
||||
{
|
||||
logO << "Last time sync older than a minute. Clearing time buffer\n";
|
||||
diffToServer_ = ms*1000;
|
||||
diffBuffer_.clear();
|
||||
}
|
||||
lastTimeSync_ = now;
|
||||
lastTimeSync = now;
|
||||
|
||||
diffBuffer_.add(ms*1000);
|
||||
diffToServer_ = diffBuffer_.median();
|
||||
diffToServer_ = diffBuffer_.median(3);
|
||||
// logO << "setDiffToServer: " << ms << ", diff: " << diffToServer_ / 1000.f << "\n";
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue