mirror of
https://github.com/badaix/snapcast.git
synced 2025-05-22 21:46:15 +02:00
git-svn-id: svn://elaine/murooma/trunk@284 d8a302eb-03bc-478d-80e4-98257eca68ef
This commit is contained in:
parent
7467141a14
commit
e33ffbd4e6
4 changed files with 11 additions and 5 deletions
|
@ -118,13 +118,13 @@ void Controller::worker()
|
||||||
{
|
{
|
||||||
while (active_)
|
while (active_)
|
||||||
{
|
{
|
||||||
usleep(1000000);
|
usleep(500*1000);
|
||||||
shared_ptr<TimeMsg> reply = clientConnection->sendReq<TimeMsg>(&timeReq, 1000);
|
shared_ptr<TimeMsg> reply = clientConnection->sendReq<TimeMsg>(&timeReq, 1000);
|
||||||
if (reply)
|
if (reply)
|
||||||
{
|
{
|
||||||
double latency = (reply->received.sec - reply->sent.sec) + (reply->received.usec - reply->sent.usec) / 1000000.;
|
double latency = (reply->received.sec - reply->sent.sec) + (reply->received.usec - reply->sent.usec) / 1000000.;
|
||||||
TimeProvider::getInstance().setDiffToServer((reply->latency - latency) * 1000 / 2);
|
TimeProvider::getInstance().setDiffToServer((reply->latency - latency) * 1000 / 2);
|
||||||
cout << TimeProvider::getInstance().getDiffToServer() << "\n";
|
cout << "Median: " << TimeProvider::getInstance().getDiffToServer() << "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,13 +38,13 @@ public:
|
||||||
return mean;
|
return mean;
|
||||||
}
|
}
|
||||||
|
|
||||||
T percentil(unsigned int percentil) const
|
T percentile(unsigned int percentile) const
|
||||||
{
|
{
|
||||||
if (buffer.empty())
|
if (buffer.empty())
|
||||||
return 0;
|
return 0;
|
||||||
std::deque<T> tmpBuffer(buffer.begin(), buffer.end());
|
std::deque<T> tmpBuffer(buffer.begin(), buffer.end());
|
||||||
std::sort(tmpBuffer.begin(), tmpBuffer.end());
|
std::sort(tmpBuffer.begin(), tmpBuffer.end());
|
||||||
return tmpBuffer[(size_t)(tmpBuffer.size() * ((float)percentil / (float)100))];
|
return tmpBuffer[(size_t)(tmpBuffer.size() * ((float)percentile / (float)100))];
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool full() const
|
inline bool full() const
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
TimeProvider::TimeProvider() : diffToServer(0)
|
TimeProvider::TimeProvider() : diffToServer(0)
|
||||||
{
|
{
|
||||||
diffBuffer.setSize(60);
|
diffBuffer.setSize(120);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,4 +26,9 @@ long TimeProvider::getDiffToServerMs()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
long TimeProvider::getPercentileDiffToServer(size_t percentile)
|
||||||
|
{
|
||||||
|
return diffBuffer.percentile(percentile);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ public:
|
||||||
|
|
||||||
void setDiffToServer(double ms);
|
void setDiffToServer(double ms);
|
||||||
long getDiffToServer();
|
long getDiffToServer();
|
||||||
|
long getPercentileDiffToServer(size_t percentile);
|
||||||
long getDiffToServerMs();
|
long getDiffToServerMs();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue