summaryrefslogtreecommitdiff
path: root/dbus
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2015-05-30 19:59:13 -0700
committerRichard Hughes <richard@hughsie.com>2015-07-29 13:38:13 +0100
commitc108a8e8a4126a0e0c13fd3022e71fca8e3bdd31 (patch)
tree14c221d93d0d3ff53ff839d0083adb43e28bc9e1 /dbus
parentda7517137e7a67ccfcf60093b2eab466aeaf71ad (diff)
downloadupower-c108a8e8a4126a0e0c13fd3022e71fca8e3bdd31.tar.gz
Share generated code between daemon and library
Since we use the same GDBus code in libupower-glib and the daemon, auto-generate a private library that can be used by both.
Diffstat (limited to 'dbus')
-rw-r--r--dbus/Makefile.am64
-rw-r--r--dbus/org.freedesktop.UPower.Device.xml717
-rw-r--r--dbus/org.freedesktop.UPower.KbdBacklight.xml101
-rw-r--r--dbus/org.freedesktop.UPower.Wakeups.xml131
-rw-r--r--dbus/org.freedesktop.UPower.xml204
5 files changed, 1217 insertions, 0 deletions
diff --git a/dbus/Makefile.am b/dbus/Makefile.am
new file mode 100644
index 0000000..017c7eb
--- /dev/null
+++ b/dbus/Makefile.am
@@ -0,0 +1,64 @@
+noinst_LTLIBRARIES=libupower-dbus.la
+
+AM_CPPFLAGS = \
+ $(GIO_CFLAGS) \
+ $(GIO_UNIX_CFLAGS) \
+ $(GLIB_CFLAGS)
+
+libupower_dbus_la_LIBADD = \
+ $(GIO_LIBS) \
+ $(GIO_UNIX_LIBS) \
+ $(GLIB_LIBS)
+
+BUILT_SOURCES = \
+ up-daemon-generated.h \
+ up-daemon-generated.c \
+ up-device-generated.h \
+ up-device-generated.c \
+ up-kbd-backlight-generated.h \
+ up-kbd-backlight-generated.c \
+ up-wakeups-generated.h \
+ up-wakeups-generated.c
+
+libupower_dbus_la_SOURCES = $(BUILT_SOURCES)
+
+up-daemon-generated.h: org.freedesktop.UPower.xml Makefile.am
+ $(AM_V_GEN) gdbus-codegen --interface-prefix org.freedesktop.UPower. \
+ --generate-c-code up-daemon-generated \
+ --c-namespace Up \
+ --annotate "org.freedesktop.UPower" "org.gtk.GDBus.C.Name" ExportedDaemon \
+ $(srcdir)/org.freedesktop.UPower.xml
+up-daemon-generated.c: up-daemon-generated.h
+
+up-device-generated.h: org.freedesktop.UPower.Device.xml Makefile.am
+ $(AM_V_GEN) gdbus-codegen --interface-prefix org.freedesktop.UPower.Device. \
+ --generate-c-code up-device-generated \
+ --c-namespace Up \
+ --annotate "org.freedesktop.UPower.Device" "org.gtk.GDBus.C.Name" ExportedDevice \
+ $(srcdir)/org.freedesktop.UPower.Device.xml
+up-device-generated.c: up-device-generated.h
+
+up-kbd-backlight-generated.h: org.freedesktop.UPower.KbdBacklight.xml Makefile.am
+ $(AM_V_GEN) gdbus-codegen --interface-prefix org.freedesktop.UPower.KbdBacklight. \
+ --generate-c-code up-kbd-backlight-generated \
+ --c-namespace Up \
+ --annotate "org.freedesktop.UPower.KbdBacklight" "org.gtk.GDBus.C.Name" ExportedKbdBacklight \
+ $(srcdir)/org.freedesktop.UPower.KbdBacklight.xml
+up-kbd-backlight-generated.c: up-kbd-backlight-generated.h
+
+up-wakeups-generated.h: org.freedesktop.UPower.Wakeups.xml Makefile.am
+ $(AM_V_GEN) gdbus-codegen --interface-prefix org.freedesktop.UPower.Wakeups. \
+ --generate-c-code up-wakeups-generated \
+ --c-namespace Up \
+ --annotate "org.freedesktop.UPower.Wakeups" "org.gtk.GDBus.C.Name" ExportedWakeups \
+ $(srcdir)/org.freedesktop.UPower.Wakeups.xml
+up-wakeups-generated.c: up-wakeups-generated.h
+
+dbusifdir = $(datadir)/dbus-1/interfaces
+dist_dbusif_DATA = \
+ org.freedesktop.UPower.xml \
+ org.freedesktop.UPower.Device.xml \
+ org.freedesktop.UPower.KbdBacklight.xml \
+ org.freedesktop.UPower.Wakeups.xml
+
+-include $(top_srcdir)/git.mk
diff --git a/dbus/org.freedesktop.UPower.Device.xml b/dbus/org.freedesktop.UPower.Device.xml
new file mode 100644
index 0000000..8ce9c15
--- /dev/null
+++ b/dbus/org.freedesktop.UPower.Device.xml
@@ -0,0 +1,717 @@
+<!DOCTYPE node PUBLIC
+"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd" [
+ <!ENTITY ERROR_GENERAL "org.freedesktop.UPower.Device.GeneralError">
+]>
+<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+ <interface name="org.freedesktop.UPower.Device">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Objects implementing this interface are usually discovered through
+ the <doc:tt>org.freedesktop.UPower</doc:tt> interface on
+ the <doc:tt>/org/freedesktop/UPower</doc:tt> object on
+ the D-Bus system bus service with the well-known
+ name <doc:tt>org.freedesktop.UPower</doc:tt> using
+ the
+ <doc:ref type="method" to="Power.EnumerateDevices">EnumerateDevices</doc:ref>
+ method.
+ </doc:para>
+ <doc:para>
+ <doc:example language="shell" title="simple example">
+ <doc:code>
+$ dbus-send --print-reply \
+ --system \
+ --dest=org.freedesktop.UPower \
+ /org/freedesktop/UPower/devices/battery_BAT0 \
+ org.freedesktop.DBus.Properties.GetAll \
+ string:org.freedesktop.UPower.Device
+
+method return sender=:1.386 -> dest=:1.477 reply_serial=2
+ array [
+ dict entry(
+ string "native-path"
+ variant string "/sys/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:01/PNP0C09:00/PNP0C0A:00/power_supply/BAT0"
+ )
+ dict entry(
+ string "vendor"
+ variant string "SONY"
+ )
+ dict entry(
+ string "model"
+ variant string "42T4568"
+ )
+ dict entry(
+ string "serial"
+ variant string "4179"
+ )
+ dict entry(
+ string "update-time"
+ variant uint64 1226417875
+ )
+ dict entry(
+ string "type"
+ variant uint 2
+ )
+ dict entry(
+ string "power-supply"
+ variant boolean true
+ )
+ dict entry(
+ string "has-history"
+ variant boolean true
+ )
+ dict entry(
+ string "has-statistics"
+ variant boolean true
+ )
+ dict entry(
+ string "online"
+ variant boolean false
+ )
+ dict entry(
+ string "energy"
+ variant double 72.85
+ )
+ dict entry(
+ string "energy-empty"
+ variant double 0
+ )
+ dict entry(
+ string "energy-full"
+ variant double 74.55
+ )
+ dict entry(
+ string "energy-full-design"
+ variant double 74.88
+ )
+ dict entry(
+ string "energy-rate"
+ variant double 0
+ )
+ dict entry(
+ string "voltage"
+ variant double 16.415
+ )
+ dict entry(
+ string "time-to-empty"
+ variant int64 0
+ )
+ dict entry(
+ string "time-to-full"
+ variant int64 0
+ )
+ dict entry(
+ string "percentage"
+ variant double 97.7197
+ )
+ dict entry(
+ string "is-present"
+ variant boolean true
+ )
+ dict entry(
+ string "state"
+ variant uint 3
+ )
+ dict entry(
+ string "is-rechargeable"
+ variant boolean true
+ )
+ dict entry(
+ string "capacity"
+ variant double 100
+ )
+ dict entry(
+ string "technology"
+ variant uint 1
+ )
+ ]
+ </doc:code>
+ </doc:example>
+ </doc:para>
+ <doc:para>
+ Unless otherwise noted, an empty string or the value 0 in a
+ property on this interface means not set.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+
+
+ <!-- ************************************************************ -->
+ <method name="Refresh">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Refreshes the data collected from the power source.
+ </doc:para>
+ </doc:description>
+ <doc:permission>Callers need the org.freedesktop.upower.refresh-power-source authorization</doc:permission>
+ <doc:errors>
+ <doc:error name="&ERROR_GENERAL;">if an error occured while refreshing</doc:error>
+ </doc:errors>
+ </doc:doc>
+ </method>
+
+ <!-- ************************************************************ -->
+ <method name="GetHistory">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg name="type" direction="in" type="s">
+ <doc:doc><doc:summary>The type of history.
+ Valid types are <doc:tt>rate</doc:tt> or <doc:tt>charge</doc:tt>.</doc:summary></doc:doc>
+ </arg>
+ <arg name="timespan" direction="in" type="u">
+ <doc:doc><doc:summary>The amount of data to return in seconds, or 0 for all.</doc:summary></doc:doc>
+ </arg>
+ <arg name="resolution" direction="in" type="u">
+ <doc:doc>
+ <doc:summary>
+ The approximate number of points to return.
+ A higher resolution is more accurate, at the expense of plotting speed.
+ </doc:summary>
+ </doc:doc>
+ </arg>
+ <arg name="data" direction="out" type="a(udu)">
+ <doc:doc><doc:summary>
+ The history data for the power device, if the device supports history.
+ Data is ordered from the earliest in time, to the newest data point.
+ Each element contains the following members:
+ <doc:list>
+ <doc:item>
+ <doc:term>time</doc:term>
+ <doc:definition>
+ The time value in seconds from the <doc:tt>gettimeofday()</doc:tt> method.
+ </doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>value</doc:term>
+ <doc:definition>
+ The data value, for instance the rate in W or the charge in %.
+ </doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>state</doc:term>
+ <doc:definition>
+ The state of the device, for instance <doc:tt>charging</doc:tt> or
+ <doc:tt>discharging</doc:tt>.
+ </doc:definition>
+ </doc:item>
+ </doc:list>
+ </doc:summary></doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Gets history for the power device that is persistent across reboots.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <!-- ************************************************************ -->
+ <method name="GetStatistics">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg name="type" direction="in" type="s">
+ <doc:doc><doc:summary>The mode for the statistics.
+ Valid types are <doc:tt>charging</doc:tt> or <doc:tt>discharging</doc:tt>.</doc:summary></doc:doc>
+ </arg>
+ <arg name="data" direction="out" type="a(dd)">
+ <doc:doc><doc:summary>
+ The statistics data for the power device.
+ Each element contains the following members:
+ <doc:list>
+ <doc:item>
+ <doc:term>value</doc:term>
+ <doc:definition>
+ The value of the percentage point, usually in seconds
+ </doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>accuracy</doc:term>
+ <doc:definition>
+ The accuracy of the prediction in percent.
+ </doc:definition>
+ </doc:item>
+ </doc:list>
+ </doc:summary></doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Gets statistics for the power device that may be interesting
+ to show on a graph in the session.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <!-- ************************************************************ -->
+ <property name="NativePath" type="s" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ OS specific native path of the power source. On Linux this
+ is the sysfs path, for
+ example <doc:tt>/sys/devices/LNXSYSTM:00/device:00/PNP0C0A:00/power_supply/BAT0</doc:tt>. Is
+ blank if the device is being driven by a user space
+ driver.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="Vendor" type="s" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Name of the vendor of the battery.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="Model" type="s" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Name of the model of this battery.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="Serial" type="s" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Unique serial number of the battery.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="UpdateTime" type="t" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ The point in time (seconds since the Epoch Jan 1, 1970
+ 0:00 UTC) that data was read from the power source.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="Type" type="u" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Type of power source.
+ </doc:para>
+ <doc:list>
+ <doc:item>
+ <doc:term>0</doc:term><doc:definition>Unknown</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>1</doc:term><doc:definition>Line Power</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>2</doc:term><doc:definition>Battery</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>3</doc:term><doc:definition>Ups</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>4</doc:term><doc:definition>Monitor</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>5</doc:term><doc:definition>Mouse</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>6</doc:term><doc:definition>Keyboard</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>7</doc:term><doc:definition>Pda</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>8</doc:term><doc:definition>Phone</doc:definition>
+ </doc:item>
+ </doc:list>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="PowerSupply" type="b" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ If the power device is used to supply the system.
+ This would be set TRUE for laptop batteries and UPS devices,
+ but set FALSE for wireless mice or PDAs.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="HasHistory" type="b" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ If the power device has history.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="HasStatistics" type="b" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ If the power device has statistics.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="Online" type="b" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Whether power is currently being provided through line power.
+ This property is only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "line-power".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="Energy" type="d" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Amount of energy (measured in Wh) currently available in
+ the power source.
+ </doc:para><doc:para>
+ This property is only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "battery".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="EnergyEmpty" type="d" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Amount of energy (measured in Wh) in the power source when
+ it's considered to be empty.
+ </doc:para><doc:para>
+ This property is only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "battery".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="EnergyFull" type="d" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Amount of energy (measured in Wh) in the power source when
+ it's considered full.
+ </doc:para><doc:para>
+ This property is only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "battery".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="EnergyFullDesign" type="d" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Amount of energy (measured in Wh) the power source is
+ designed to hold when it's considered full.
+ </doc:para><doc:para>
+ This property is only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "battery".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="EnergyRate" type="d" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Amount of energy being drained from the source, measured
+ in W. If positive, the source is being discharged, if
+ negative it's being charged.
+ </doc:para><doc:para>
+ This property is only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "battery".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="Voltage" type="d" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Voltage in the Cell or being recorded by the meter.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="Luminosity" type="d" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Luminosity being recorded by the meter.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="TimeToEmpty" type="x" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Number of seconds until the power source is considered empty.
+ Is set to 0 if unknown.
+ </doc:para><doc:para>
+ This property is only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "battery".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="TimeToFull" type="x" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Number of seconds until the power source is considered full.
+ Is set to 0 if unknown.
+ </doc:para><doc:para>
+ This property is only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "battery".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="Percentage" type="d" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ The amount of energy left in the power source expressed as
+ a percentage between 0 and 100. Typically this is the same as
+ (<doc:ref type="property" to="Source:Energy">energy</doc:ref> -
+ <doc:ref type="property" to="Source:EnergyEmpty">energy-empty</doc:ref>) /
+ (<doc:ref type="property" to="Source:EnergyFull">energy-full</doc:ref> -
+ <doc:ref type="property" to="Source:EnergyEmpty">energy-empty</doc:ref>).
+ However, some primitive power sources are capable of only
+ reporting percentages and in this case the energy-*
+ properties will be unset while this property is set.
+ </doc:para><doc:para>
+ This property is only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "battery".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="Temperature" type="d" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ The temperature of the device in degrees Celsius. This property is
+ only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "battery".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="IsPresent" type="b" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ If the power source is present in the bay.
+ This field is required as some batteries are hot-removable, for example
+ expensive UPS and most laptop batteries.
+ </doc:para><doc:para>
+ This property is only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "battery".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="State" type="u" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ The battery power state.
+ </doc:para>
+ <doc:list>
+ <doc:item>
+ <doc:term>0</doc:term><doc:definition>Unknown</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>1</doc:term><doc:definition>Charging</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>2</doc:term><doc:definition>Discharging</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>3</doc:term><doc:definition>Empty</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>4</doc:term><doc:definition>Fully charged</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>5</doc:term><doc:definition>Pending charge</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>6</doc:term><doc:definition>Pending discharge</doc:definition>
+ </doc:item>
+ </doc:list>
+ <doc:para>
+ This property is only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "battery".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="IsRechargeable" type="b" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ If the power source is rechargeable.
+ </doc:para><doc:para>
+ This property is only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "battery".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="Capacity" type="d" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ The capacity of the power source expressed as a percentage between 0 and 100.
+ The capacity of the battery will reduce with age.
+ A capacity value less than 75% is usually a sign that you should renew your battery.
+ Typically this value is the same as
+ (<doc:ref type="property" to="Source:FullDesign">full-design</doc:ref> /
+ <doc:ref type="property" to="Source:Full">full</doc:ref>) * 100.
+ However, some primitive power sources are not capable reporting capacity
+ and in this case the capacity property will be unset.
+ </doc:para><doc:para>
+ This property is only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "battery".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="Technology" type="u" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Technology used in the battery:
+ </doc:para>
+ <doc:list>
+ <doc:item>
+ <doc:term>0</doc:term><doc:definition>Unknown</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>1</doc:term><doc:definition>Lithium ion</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>2</doc:term><doc:definition>Lithium polymer</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>3</doc:term><doc:definition>Lithium iron phosphate</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>4</doc:term><doc:definition>Lead acid</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>5</doc:term><doc:definition>Nickel cadmium</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>6</doc:term><doc:definition>Nickel metal hydride</doc:definition>
+ </doc:item>
+ </doc:list>
+ <doc:para>
+ This property is only valid if the property
+ <doc:ref type="property" to="Source:Type">type</doc:ref>
+ has the value "battery".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="WarningLevel" type="u" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Warning level of the battery:
+ </doc:para>
+ <doc:list>
+ <doc:item>
+ <doc:term>0</doc:term><doc:definition>Unknown</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>1</doc:term><doc:definition>None</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>2</doc:term><doc:definition>Discharging (only for UPSes)</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>3</doc:term><doc:definition>Low</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>4</doc:term><doc:definition>Critical</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>5</doc:term><doc:definition>Action</doc:definition>
+ </doc:item>
+ </doc:list>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="IconName" type="s" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ An icon name, following the <a href="http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">Icon Naming Specification</a>
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+ </interface>
+
+</node>
diff --git a/dbus/org.freedesktop.UPower.KbdBacklight.xml b/dbus/org.freedesktop.UPower.KbdBacklight.xml
new file mode 100644
index 0000000..994380f
--- /dev/null
+++ b/dbus/org.freedesktop.UPower.KbdBacklight.xml
@@ -0,0 +1,101 @@
+<!DOCTYPE node PUBLIC
+"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd" [
+ <!ENTITY ERROR_GENERAL "org.freedesktop.UPower.GeneralError">
+]>
+<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+ <interface name="org.freedesktop.UPower.KbdBacklight">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ org.freedesktop.UPower.KbdBacklight is a DBus interface implemented
+ by UPower.
+ It allows the keyboard backlight (if present) to be controlled.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+
+ <!-- ************************************************************ -->
+ <method name="GetMaxBrightness">
+ <arg name="value" direction="out" type="i">
+ <doc:doc>
+ <doc:summary>
+ The maximum value of the keyboard backlight brightness.
+ </doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Get the maximum brightness level for the keyboard backlight.
+ </doc:para>
+ </doc:description>
+ <doc:errors>
+ <doc:error name="&ERROR_GENERAL;">if an error occured while getting the maximum brightness</doc:error>
+ </doc:errors>
+ </doc:doc>
+ </method>
+
+ <!-- ************************************************************ -->
+ <method name="GetBrightness">
+ <arg name="value" direction="out" type="i">
+ <doc:doc>
+ <doc:summary>
+ The current value of the keyboard backlight brightness.
+ </doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Get the brightness level of the keyboard backlight.
+ </doc:para>
+ </doc:description>
+ <doc:errors>
+ <doc:error name="&ERROR_GENERAL;">if an error occured while getting the brightness</doc:error>
+ </doc:errors>
+ </doc:doc>
+ </method>
+
+ <!-- ************************************************************ -->
+ <method name="SetBrightness">
+ <arg name="value" direction="in" type="i">
+ <doc:doc>
+ <doc:summary>
+ The value to set the KbdBacklight brightness.
+ </doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Set the brightness level of the keyboard backlight.
+ </doc:para>
+ </doc:description>
+ <doc:errors>
+ <doc:error name="&ERROR_GENERAL;">if an error occured while setting the brightness</doc:error>
+ </doc:errors>
+ </doc:doc>
+ </method>
+
+ <!-- ************************************************************ -->
+ <signal name="BrightnessChanged">
+ <arg name="value" direction="out" type="i">
+ <doc:doc>
+ <doc:summary>
+ The new brightness value of the keyboard backlight.
+ </doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ The keyboard backlight brightness level has changed.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+
+ </interface>
+
+</node>
diff --git a/dbus/org.freedesktop.UPower.Wakeups.xml b/dbus/org.freedesktop.UPower.Wakeups.xml
new file mode 100644
index 0000000..7faa126
--- /dev/null
+++ b/dbus/org.freedesktop.UPower.Wakeups.xml
@@ -0,0 +1,131 @@
+<!DOCTYPE node PUBLIC
+"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd" [
+ <!ENTITY ERROR_GENERAL "org.freedesktop.UPower.GeneralError">
+]>
+<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+ <interface name="org.freedesktop.UPower.Wakeups">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ org.freedesktop.UPower.Wakeups is a DBus interface implemented
+ by UPower.
+ It allows applications to watch what applications and drivers are
+ causing the wakeups on the system.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+
+ <property name="HasCapability" type="b" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ If the system has the ability to profile wakeups.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <!-- ************************************************************ -->
+ <method name="GetTotal">
+ <arg name="value" direction="out" type="u">
+ <doc:doc>
+ <doc:summary>
+ The number of wakeups per second.
+ </doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Get the number of wakeups per second.
+ </doc:para>
+ </doc:description>
+ <doc:errors>
+ <doc:error name="&ERROR_GENERAL;">if an error occured while getting the latency</doc:error>
+ </doc:errors>
+ </doc:doc>
+ </method>
+
+ <!-- ************************************************************ -->
+ <signal name="TotalChanged">
+ <arg name="value" direction="out" type="u">
+ <doc:doc>
+ <doc:summary>
+ The number of wakeups per second.
+ </doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ The number of wakeups per second has changed.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+
+ <!-- ************************************************************ -->
+ <method name="GetData">
+ <arg name="data" direction="out" type="a(budss)">
+ <doc:doc>
+ <doc:summary>
+ The data of all the processes and drivers which contribute to the
+ wakeups on the system.
+ <doc:list>
+ <doc:item>
+ <doc:term>is_userspace</doc:term>
+ <doc:definition>
+ If the wakeup is from userspace.
+ </doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>id</doc:term>
+ <doc:definition>
+ The process ID of the application, or the IRQ for kernel drivers.
+ </doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>value</doc:term>
+ <doc:definition>
+ The number of wakeups per second.
+ </doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>cmdline</doc:term>
+ <doc:definition>
+ The command line for the application, or NULL for kernel drivers.
+ </doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>details</doc:term>
+ <doc:definition>
+ The details about the wakeup.
+ </doc:definition>
+ </doc:item>
+ </doc:list>
+ </doc:summary></doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Gets all the wakeups from drivers and applications.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <!-- ************************************************************ -->
+ <signal name="DataChanged">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ The wakeup data has changed.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+
+ </interface>
+
+</node>
diff --git a/dbus/org.freedesktop.UPower.xml b/dbus/org.freedesktop.UPower.xml
new file mode 100644
index 0000000..c376521
--- /dev/null
+++ b/dbus/org.freedesktop.UPower.xml
@@ -0,0 +1,204 @@
+<!DOCTYPE node PUBLIC
+"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+
+ <interface name="org.freedesktop.UPower">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ The UPower service is available via the system message
+ bus. To access the service, use
+ the <doc:tt>org.freedesktop.UPower</doc:tt> interface on
+ the <doc:tt>/org/freedesktop/UPower</doc:tt> object on
+ the D-Bus system bus service with the well-known
+ name <doc:tt>org.freedesktop.UPower</doc:tt>.
+ </doc:para>
+ <doc:para>
+ <doc:example language="shell" title="simple example">
+ <doc:code>
+$ dbus-send --print-reply \
+ --system \
+ --dest=org.freedesktop.UPower \
+ /org/freedesktop/UPower \
+ org.freedesktop.UPower.EnumerateDevices
+
+method return sender=:1.386 -> dest=:1.451 reply_serial=2
+ array [
+ object path "/org/freedesktop/UPower/devices/line_power_AC"
+ object path "/org/freedesktop/UPower/devices/battery_BAT0"
+ ]
+ </doc:code>
+ </doc:example>
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+
+ <!-- ************************************************************ -->
+
+ <method name="EnumerateDevices">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg name="devices" direction="out" type="ao">
+ <doc:doc><doc:summary>An array of object paths for devices.</doc:summary></doc:doc>
+ </arg>
+
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Enumerate all power objects on the system.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <method name="GetDisplayDevice">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg name="device" direction="out" type="o">
+ <doc:doc><doc:summary>An object path for the "display device.</doc:summary></doc:doc>
+ </arg>
+
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Get the object to the "display device", a composite device that represents the
+ status icon to show in desktop environments. You can also access the object directly
+ as its path is guaranteed to be /org/freedesktop/UPower/devices/DisplayDevice.
+ The following standard org.freedesktop.UPower.Device
+ properties will be defined (only <doc:ref type="property" to="Source:IsPresent">IsPresent</doc:ref> takes a special meaning):
+ <doc:list>
+ <doc:item>
+ <doc:term>Type</doc:term><doc:definition>the type of the display device, UPS or Battery. Note that this value can change, as opposed to real devices.</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>State</doc:term><doc:definition>the power state of the display device, such as Charging or Discharging.</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>Percentage</doc:term><doc:definition>the amount of energy left on the device.</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>Energy</doc:term><doc:definition>Amount of energy (measured in Wh) currently available in the power source.</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>EnergyFull</doc:term><doc:definition>Amount of energy (measured in Wh) in the power source when it's considered full.</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>EnergyRate</doc:term><doc:definition>Amount of energy being drained from the source, measured in W. If positive, the source is being discharged, if negative it's being charged.</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>TimeToEmpty</doc:term><doc:definition>Number of seconds until the power source is considered empty.</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>TimeToFull</doc:term><doc:definition>Number of seconds until the power source is considered full.</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>IsPresent</doc:term><doc:definition>Whether a status icon using this information should be presented.</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>IconName</doc:term><doc:definition>An icon name representing the device state.</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>WarningLevel</doc:term><doc:definition>The same as the overall <doc:ref type="property" to="Source:WarningLevel">WarningLevel</doc:ref></doc:definition>
+ </doc:item>
+ </doc:list>
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <method name="GetCriticalAction">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg name="action" direction="out" type="s">
+ <doc:doc><doc:summary>A string representing the critical action configured and available.</doc:summary></doc:doc>
+ </arg>
+
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ When the system's power supply is critical (critically low batteries or UPS),
+ the system will take this action. Possible values are:
+ <doc:list>
+ <doc:item>
+ <doc:term>HybridSleep</doc:term>
+ </doc:item>
+ <doc:item>
+ <doc:term>Hibernate</doc:term>
+ </doc:item>
+ <doc:item>
+ <doc:term>PowerOff</doc:term>
+ </doc:item>
+ </doc:list>
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <!-- ************************************************************ -->
+
+ <signal name="DeviceAdded">
+ <arg name="device" type="o">
+ <doc:doc><doc:summary>Object path of device that was added.</doc:summary></doc:doc>
+ </arg>
+
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Emitted when a device is added.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+
+ <!-- ************************************************************ -->
+
+ <signal name="DeviceRemoved">
+ <arg name="device" type="o">
+ <doc:doc><doc:summary>Object path of device that was removed.</doc:summary></doc:doc>
+ </arg>
+
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Emitted when a device is removed.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+
+ <!-- ************************************************************ -->
+
+ <property name="DaemonVersion" type="s" access="read">
+ <doc:doc><doc:description><doc:para>
+ Version of the running daemon, e.g. <doc:tt>002</doc:tt>.
+ </doc:para></doc:description></doc:doc>
+ </property>
+
+ <property name="OnBattery" type="b" access="read">
+ <doc:doc><doc:description><doc:para>
+ Indicates whether the system is running on battery power.
+ This property is provided for convenience.
+ </doc:para></doc:description></doc:doc>
+ </property>
+
+ <property name="LidIsClosed" type="b" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Indicates if the laptop lid is closed where the display cannot be seen.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ <property name="LidIsPresent" type="b" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ If the system has a lid device.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
+ </interface>
+
+</node>