git-svn-id: svn://elaine/murooma/trunk@260 d8a302eb-03bc-478d-80e4-98257eca68ef
This commit is contained in:
(no author) 2014-09-15 06:03:06 +00:00
parent 52d0949327
commit 9b14d861f3
3 changed files with 22 additions and 1 deletions

View file

@ -97,6 +97,7 @@ void Controller::worker()
Player player(stream);
player.start();
DoubleBuffer<long> timeBuffer(100);
while (active_)
{
usleep(1000000);//1000000);
@ -114,6 +115,8 @@ void Controller::worker()
timeMsg.deserialize(*reply->response, reply->buffer);
long latency = (timeMsg.received.sec - timeMsg.sent.sec) * 1000000 + (timeMsg.received.usec - timeMsg.sent.usec);
cout << "C2S: " << timeMsg.latency << ", S2C: " << latency << ", diff: " << (timeMsg.latency - latency) / 2 << endl;
timeBuffer.add((timeMsg.latency - latency) / 2);
cout << timeBuffer.median() << "\n";
}
}
}

View file

@ -54,6 +54,24 @@ struct tv
int32_t sec;
int32_t usec;
tv operator-(const tv& other)
{
tv result(*this);
result.sec -= other.sec;
result.usec -= other.usec;
if (result.usec < 0)
{
result.usec += 1000000;
result.sec -= 1;
}
else if (result.usec >= 1000000)
{
result.usec -= 1000000;
result.sec += 1;
}
return result;
}
};

View file

@ -25,7 +25,7 @@ public:
return sizeof(int32_t);
}
uint32_t latency;
int32_t latency;
protected:
virtual void doserialize(std::ostream& stream)