From b11e18e560edc9f363c4a98ddb5f5da3d66a7881 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Mon, 24 Jun 2024 13:09:00 +0200 Subject: Implement TimeUSecRTC property --- src/timedate.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/timedate.cpp') diff --git a/src/timedate.cpp b/src/timedate.cpp index 59812ad..42bacf6 100644 --- a/src/timedate.cpp +++ b/src/timedate.cpp @@ -125,12 +125,16 @@ static void slack_get_property(Glib::VariantBase& result, const Glib::RefPtr::create(dlackware::timedate::ntp_synchronized()); } + else if (prop_name == "TimeUSecRTC") + { + result = Glib::Variant::create(dlackware::timedate::time_usec_rtc()); + } } namespace dlackware::timedate { - constexpr const std::int32_t usec_per_sec = 1000000ULL; - constexpr const std::int32_t nsec_per_usec = 1000ULL; + constexpr const std::uint64_t usec_per_sec = 1000000ULL; + constexpr const std::uint64_t nsec_per_usec = 1000ULL; timedate1::timedate1() : interface_vtable{ &slack_method_call, &slack_get_property } @@ -247,7 +251,7 @@ namespace dlackware::timedate } } - void set_time(gint64 seconds_since_epoch, bool relative, bool) + void set_time(std::int64_t seconds_since_epoch, bool relative, bool) { timespec ts; @@ -333,4 +337,10 @@ namespace dlackware::timedate } return ntp_result != TIME_ERROR && (buffer.status & STA_UNSYNC) == 0; } + + std::uint64_t time_usec_rtc() + { + return std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()).count(); + } } -- cgit v1.2.3