mirror of
https://github.com/badaix/snapcast.git
synced 2025-06-01 02:11:47 +02:00
discard old server sync time
This commit is contained in:
parent
d2873b6f0d
commit
a961878707
2 changed files with 15 additions and 2 deletions
|
@ -17,9 +17,10 @@
|
||||||
***/
|
***/
|
||||||
|
|
||||||
#include "timeProvider.h"
|
#include "timeProvider.h"
|
||||||
|
#include "common/log.h"
|
||||||
|
|
||||||
|
|
||||||
TimeProvider::TimeProvider() : diffToServer_(0)
|
TimeProvider::TimeProvider() : diffToServer_(0), lastTimeSync_(0)
|
||||||
{
|
{
|
||||||
diffBuffer_.setSize(200);
|
diffBuffer_.setSize(200);
|
||||||
}
|
}
|
||||||
|
@ -27,8 +28,19 @@ TimeProvider::TimeProvider() : diffToServer_(0)
|
||||||
|
|
||||||
void TimeProvider::setDiffToServer(double ms)
|
void TimeProvider::setDiffToServer(double ms)
|
||||||
{
|
{
|
||||||
diffBuffer_.add(ms * 1000);
|
long now = chronos::getTickCount();
|
||||||
|
/// clear diffBuffer if last update is older than a minute
|
||||||
|
if (now > lastTimeSync_ + 60*1000)
|
||||||
|
{
|
||||||
|
logO << "Last time sync older than a minute. Clearing time buffer\n";
|
||||||
|
diffToServer_ = ms*1000;
|
||||||
|
diffBuffer_.clear();
|
||||||
|
}
|
||||||
|
lastTimeSync_ = now;
|
||||||
|
|
||||||
|
diffBuffer_.add(ms*1000);
|
||||||
diffToServer_ = diffBuffer_.median();
|
diffToServer_ = diffBuffer_.median();
|
||||||
|
// logO << "setDiffToServer: " << ms << ", diff: " << diffToServer_ / 1000.f << "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -82,6 +82,7 @@ private:
|
||||||
|
|
||||||
DoubleBuffer<chronos::usec::rep> diffBuffer_;
|
DoubleBuffer<chronos::usec::rep> diffBuffer_;
|
||||||
std::atomic<chronos::usec::rep> diffToServer_;
|
std::atomic<chronos::usec::rep> diffToServer_;
|
||||||
|
long lastTimeSync_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue