Timedate Daemon

Timedate daemon to control org.freedesktop.timedate1 D-Bus interface

18 Commits   0 Branches   3 Tags
author: kx <kx@radix.pro> 2023-12-21 21:15:15 +0300 committer: kx <kx@radix.pro> 2023-12-21 21:15:15 +0300 commit: 938dce1e03ee7b5f16c6955dd055916dd2d515d0 parent: fcf296f311f6cc515afb16b8c08e4ddd3da807cb
Commit Summary:
Version 1.0.0
Diffstat:
2 files changed, 83 insertions, 0 deletions
diff --git a/dbus/meson.build b/dbus/meson.build
new file mode 100644
index 0000000..f9d5563
--- /dev/null
+++ b/dbus/meson.build
@@ -0,0 +1,36 @@
+
+timedated_dbus_interfaces = [
+    [ 'timedate', 'org.freedesktop.timedate1', 'Daemon' ],
+]
+
+timedated_dbus_headers = []
+timedated_dbus_sources = []
+foreach interface: timedated_dbus_interfaces
+    xml = interface[1] + '.xml'
+    t = gnome.gdbus_codegen('rcl-' + interface[0] + '-generated',
+        sources: xml,
+        autocleanup: 'all',
+        annotations:[ [ interface[1], 'org.gtk.GDBus.C.Name', 'Timedate' + interface[2] ] ],
+        namespace: 'Rcl',
+        object_manager: false,
+    )
+    timedated_dbus_sources += t[0]
+    timedated_dbus_headers += t[1]
+
+    install_data(xml,
+        install_dir: dbusdir / 'interfaces',
+    )
+endforeach
+
+
+timedated_dbus = static_library('libtimedate-dbus',
+    sources: timedated_dbus_sources + timedated_dbus_headers,
+    dependencies: [ gobject_dep, gio_dep, gio_unix_dep ],
+)
+
+timedated_dbus_dep = declare_dependency(
+    link_with: timedated_dbus,
+    include_directories: [ '.' ],
+    sources: timedated_dbus_headers,
+    dependencies: [ gio_unix_dep ]
+)
diff --git a/dbus/org.freedesktop.timedate1.xml b/dbus/org.freedesktop.timedate1.xml
new file mode 100644
index 0000000..c8190cf
--- /dev/null
+++ b/dbus/org.freedesktop.timedate1.xml
@@ -0,0 +1,58 @@
+<!DOCTYPE node PUBLIC
+ "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+ "https://www.freedesktop.org/standards/dbus/1.0/introspect.dtd" [
+  <!ENTITY ERROR_GENERAL "org.freedesktop.timedate1.GeneralError">
+]>
+<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+
+ <interface name="org.freedesktop.timedate1">
+  <property name="Timezone" type="s" access="read">
+  </property>
+  <property name="LocalRTC" type="b" access="read">
+  </property>
+  <property name="CanNTP" type="b" access="read">
+   <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
+  </property>
+  <property name="NTP" type="b" access="read">
+  </property>
+  <property name="NTPSynchronized" type="b" access="read">
+   <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
+  </property>
+  <property name="TimeUSec" type="t" access="read">
+   <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
+  </property>
+  <property name="RTCTimeUSec" type="t" access="read">
+   <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
+  </property>
+
+  <property name="DaemonVersion" type="s" access="read">
+    <doc:doc><doc:description><doc:para>
+      Version of the running daemon, e.g. <doc:tt>1.0.0</doc:tt>.
+    </doc:para></doc:description></doc:doc>
+  </property>
+
+  <method name="SetTime">
+   <arg type="x" name="usec_utc" direction="in"/>
+   <arg type="b" name="relative" direction="in"/>
+   <arg type="b" name="interactive" direction="in"/>
+  </method>
+  <method name="SetTimezone">
+   <arg type="s" name="timezone" direction="in"/>
+   <arg type="b" name="interactive" direction="in"/>
+  </method>
+  <method name="SetLocalRTC">
+   <arg type="b" name="local_rtc" direction="in"/>
+   <arg type="b" name="fix_system" direction="in"/>
+   <arg type="b" name="interactive" direction="in"/>
+  </method>
+  <method name="SetNTP">
+   <arg type="b" name="use_ntp" direction="in"/>
+   <arg type="b" name="interactive" direction="in"/>
+  </method>
+  <method name="ListTimezones">
+   <arg type="as" name="timezones" direction="out"/>
+  </method>
+
+
+ </interface>
+</node>