diff --git a/AirLib/include/api/RpcLibClientBase.hpp b/AirLib/include/api/RpcLibClientBase.hpp index fd90824524..79433751a5 100644 --- a/AirLib/include/api/RpcLibClientBase.hpp +++ b/AirLib/include/api/RpcLibClientBase.hpp @@ -49,6 +49,7 @@ namespace airlib int getMinRequiredClientVersion() const; bool simIsPaused() const; + float getSimClockRate() const; void simPause(bool is_paused); void simContinueForTime(double seconds); void simContinueForFrames(uint32_t frames); diff --git a/AirLib/src/api/RpcLibClientBase.cpp b/AirLib/src/api/RpcLibClientBase.cpp index 891c5155d6..23933d45ae 100644 --- a/AirLib/src/api/RpcLibClientBase.cpp +++ b/AirLib/src/api/RpcLibClientBase.cpp @@ -453,6 +453,11 @@ __pragma(warning(disable : 4239)) return pimpl_->client.call("simIsPaused").as(); } + float RpcLibClientBase::getSimClockRate() const + { + return pimpl_->client.call("getSimClockRate").as(); + } + void RpcLibClientBase::simPause(bool is_paused) { pimpl_->client.call("simPause", is_paused); diff --git a/AirLib/src/api/RpcLibServerBase.cpp b/AirLib/src/api/RpcLibServerBase.cpp index 0710bd8d5a..afc5098d2e 100644 --- a/AirLib/src/api/RpcLibServerBase.cpp +++ b/AirLib/src/api/RpcLibServerBase.cpp @@ -108,6 +108,10 @@ namespace airlib return getWorldSimApi()->isPaused(); }); + pimpl_->server.bind("getSimClockRate", [&]() -> float { + return ClockFactory::get()->getTrueScaleWrtWallClock(); + }); + pimpl_->server.bind("simContinueForTime", [&](double seconds) -> void { getWorldSimApi()->continueForTime(seconds); });