summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devkit-power-gobject/dkp-wakeups-obj.h4
-rw-r--r--[l---------]devkit-power-gobject/up-wakeups-obj.h58
-rw-r--r--doc/upower-docs.xml4
-rw-r--r--libupower-glib/Makefile.am10
-rw-r--r--libupower-glib/up-history-item.c278
-rw-r--r--libupower-glib/up-history-item.h70
-rw-r--r--libupower-glib/up-qos-item.c617
-rw-r--r--libupower-glib/up-qos-item.h89
-rw-r--r--libupower-glib/up-stats-item.c222
-rw-r--r--libupower-glib/up-stats-item.h66
-rw-r--r--libupower-glib/up-types.c14
-rw-r--r--libupower-glib/up-types.h8
-rw-r--r--libupower-glib/up-wakeup-item.c455
-rw-r--r--libupower-glib/up-wakeup-item.h80
-rw-r--r--libupower-glib/upower.h4
15 files changed, 1963 insertions, 16 deletions
diff --git a/devkit-power-gobject/dkp-wakeups-obj.h b/devkit-power-gobject/dkp-wakeups-obj.h
index 0119950..14f90bf 100644
--- a/devkit-power-gobject/dkp-wakeups-obj.h
+++ b/devkit-power-gobject/dkp-wakeups-obj.h
@@ -41,8 +41,8 @@ typedef struct
} DkpWakeupsObj;
typedef DkpWakeupsObj UpWakeupsObj;
-#define up_wakeups_obj_free dkp_wakeups_obj_free
-#define up_wakeups_obj_new dkp_wakeups_obj_new
+#define up_wakeup_item_free dkp_wakeups_obj_free
+#define up_wakeup_item_new dkp_wakeups_obj_new
DkpWakeupsObj *dkp_wakeups_obj_new (void);
void dkp_wakeups_obj_free (DkpWakeupsObj *obj);
diff --git a/devkit-power-gobject/up-wakeups-obj.h b/devkit-power-gobject/up-wakeups-obj.h
index 82532de..0119950 120000..100644
--- a/devkit-power-gobject/up-wakeups-obj.h
+++ b/devkit-power-gobject/up-wakeups-obj.h
@@ -1 +1,57 @@
-dkp-wakeups-obj.h \ No newline at end of file
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard@hughsie.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#if !defined (__UPOWER_H_INSIDE__) && !defined (UP_COMPILATION)
+#error "Only <devicekit-power.h> can be included directly."
+#endif
+
+#ifndef __DKP_WAKEUPS_OBJ_H__
+#define __DKP_WAKEUPS_OBJ_H__
+
+#include <glib.h>
+#include <devkit-power-gobject/dkp-enum.h>
+
+G_BEGIN_DECLS
+
+typedef struct
+{
+ gboolean is_userspace;
+ guint id;
+ guint old;
+ gfloat value;
+ gchar *cmdline;
+ gchar *details;
+} DkpWakeupsObj;
+
+typedef DkpWakeupsObj UpWakeupsObj;
+#define up_wakeups_obj_free dkp_wakeups_obj_free
+#define up_wakeups_obj_new dkp_wakeups_obj_new
+
+DkpWakeupsObj *dkp_wakeups_obj_new (void);
+void dkp_wakeups_obj_free (DkpWakeupsObj *obj);
+DkpWakeupsObj *dkp_wakeups_obj_copy (const DkpWakeupsObj *cobj);
+gboolean dkp_wakeups_obj_print (const DkpWakeupsObj *obj);
+gboolean dkp_wakeups_obj_equal (const DkpWakeupsObj *obj1,
+ const DkpWakeupsObj *obj2);
+
+G_END_DECLS
+
+#endif /* __DKP_WAKEUPS_OBJ_H__ */
+
diff --git a/doc/upower-docs.xml b/doc/upower-docs.xml
index 9b01704..44962ee 100644
--- a/doc/upower-docs.xml
+++ b/doc/upower-docs.xml
@@ -78,6 +78,10 @@
</partintro>
<xi:include href="xml/up-client.xml"/>
<xi:include href="xml/up-device.xml"/>
+ <xi:include href="xml/up-history-item.xml"/>
+ <xi:include href="xml/up-qos-item.xml"/>
+ <xi:include href="xml/up-stats-item.xml"/>
+ <xi:include href="xml/up-wakeup-item.xml"/>
</reference>
<reference id="libupower-glib-helpers">
diff --git a/libupower-glib/Makefile.am b/libupower-glib/Makefile.am
index 25ea580..b1e0890 100644
--- a/libupower-glib/Makefile.am
+++ b/libupower-glib/Makefile.am
@@ -22,11 +22,19 @@ libupower_glib_include_HEADERS = \
up-version.h \
up-types.h \
up-device.h \
+ up-qos-item.h \
+ up-wakeup-item.h \
+ up-stats-item.h \
+ up-history-item.h \
up-client.h
libupower_glib_la_SOURCES = \
up-types.c \
up-client.c \
+ up-qos-item.c \
+ up-wakeup-item.c \
+ up-stats-item.c \
+ up-history-item.c \
up-device.c
libupower_glib_la_LIBADD = \
@@ -45,8 +53,6 @@ libupower_glib_la_CFLAGS = \
$(NULL)
EXTRA_DIST = \
- up-client.h \
- up-device.h \
up-version.h.in
CLEANFILES = $(BUILT_SOURCES)
diff --git a/libupower-glib/up-history-item.c b/libupower-glib/up-history-item.c
new file mode 100644
index 0000000..fb547c0
--- /dev/null
+++ b/libupower-glib/up-history-item.c
@@ -0,0 +1,278 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard@hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <glib.h>
+
+#include "up-history-item.h"
+
+static void up_history_item_class_init (UpHistoryItemClass *klass);
+static void up_history_item_init (UpHistoryItem *history_item);
+static void up_history_item_finalize (GObject *object);
+
+#define UP_HISTORY_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), UP_TYPE_HISTORY_ITEM, UpHistoryItemPrivate))
+
+struct UpHistoryItemPrivate
+{
+ gdouble value;
+ guint time;
+ UpDeviceState state;
+};
+
+enum {
+ PROP_0,
+ PROP_VALUE,
+ PROP_TIME,
+ PROP_STATE,
+ PROP_LAST
+};
+
+G_DEFINE_TYPE (UpHistoryItem, up_history_item, G_TYPE_OBJECT)
+
+/**
+ * up_history_item_set_value:
+ * @history_item: #UpHistoryItem
+ * @value: the new value
+ *
+ * Sets the item value.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_history_item_set_value (UpHistoryItem *history_item, gdouble value)
+{
+ g_return_if_fail (UP_IS_HISTORY_ITEM (history_item));
+ history_item->priv->value = value;
+ g_object_notify (G_OBJECT(history_item), "value");
+}
+
+/**
+ * up_history_item_get_value:
+ * @history_item: #UpHistoryItem
+ *
+ * Gets the item value.
+ *
+ * Since: 0.9.0
+ **/
+gdouble
+up_history_item_get_value (UpHistoryItem *history_item)
+{
+ g_return_val_if_fail (UP_IS_HISTORY_ITEM (history_item), G_MAXDOUBLE);
+ return history_item->priv->value;
+}
+
+/**
+ * up_history_item_set_time:
+ * @history_item: #UpHistoryItem
+ * @time: the new value
+ *
+ * Sets the item time.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_history_item_set_time (UpHistoryItem *history_item, guint time)
+{
+ g_return_if_fail (UP_IS_HISTORY_ITEM (history_item));
+ history_item->priv->time = time;
+ g_object_notify (G_OBJECT(history_item), "time");
+}
+
+/**
+ * up_history_item_get_time:
+ * @history_item: #UpHistoryItem
+ *
+ * Gets the item time.
+ *
+ * Since: 0.9.0
+ **/
+guint
+up_history_item_get_time (UpHistoryItem *history_item)
+{
+ g_return_val_if_fail (UP_IS_HISTORY_ITEM (history_item), G_MAXUINT);
+ return history_item->priv->time;
+}
+
+/**
+ * up_history_item_set_state:
+ * @history_item: #UpHistoryItem
+ * @state: the new value
+ *
+ * Sets the item state.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_history_item_set_state (UpHistoryItem *history_item, UpDeviceState state)
+{
+ g_return_if_fail (UP_IS_HISTORY_ITEM (history_item));
+ history_item->priv->state = state;
+ g_object_notify (G_OBJECT(history_item), "state");
+}
+
+/**
+ * up_history_item_get_state:
+ * @history_item: #UpHistoryItem
+ *
+ * Gets the item state.
+ *
+ * Since: 0.9.0
+ **/
+UpDeviceState
+up_history_item_get_state (UpHistoryItem *history_item)
+{
+ g_return_val_if_fail (UP_IS_HISTORY_ITEM (history_item), G_MAXUINT);
+ return history_item->priv->state;
+}
+
+/**
+ * up_history_item_set_property:
+ **/
+static void
+up_history_item_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+{
+ UpHistoryItem *history_item = UP_HISTORY_ITEM (object);
+
+ switch (prop_id) {
+ case PROP_VALUE:
+ history_item->priv->value = g_value_get_double (value);
+ break;
+ case PROP_TIME:
+ history_item->priv->time = g_value_get_uint (value);
+ break;
+ case PROP_STATE:
+ history_item->priv->state = g_value_get_uint (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/**
+ * up_history_item_get_property:
+ **/
+static void
+up_history_item_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+ UpHistoryItem *history_item = UP_HISTORY_ITEM (object);
+
+ switch (prop_id) {
+ case PROP_VALUE:
+ g_value_set_double (value, history_item->priv->value);
+ break;
+ case PROP_TIME:
+ g_value_set_uint (value, history_item->priv->time);
+ break;
+ case PROP_STATE:
+ g_value_set_uint (value, history_item->priv->state);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/**
+ * up_history_item_class_init:
+ **/
+static void
+up_history_item_class_init (UpHistoryItemClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ object_class->finalize = up_history_item_finalize;
+ object_class->set_property = up_history_item_set_property;
+ object_class->get_property = up_history_item_get_property;
+
+ /**
+ * UpHistoryItem:value:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_VALUE,
+ g_param_spec_double ("value", NULL, NULL,
+ 0.0, G_MAXDOUBLE, 0.0,
+ G_PARAM_READWRITE));
+ /**
+ * UpHistoryItem:time:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_TIME,
+ g_param_spec_uint ("time", NULL, NULL,
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE));
+
+ /**
+ * UpHistoryItem:state:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_STATE,
+ g_param_spec_uint ("state", NULL, NULL,
+ 0, G_MAXUINT,
+ UP_DEVICE_STATE_UNKNOWN,
+ G_PARAM_READWRITE));
+
+ g_type_class_add_private (klass, sizeof (UpHistoryItemPrivate));
+}
+
+/**
+ * up_history_item_init:
+ **/
+static void
+up_history_item_init (UpHistoryItem *history_item)
+{
+ history_item->priv = UP_HISTORY_ITEM_GET_PRIVATE (history_item);
+ history_item->priv->value = 0.0f;
+ history_item->priv->time = 0;
+ history_item->priv->state = UP_DEVICE_STATE_UNKNOWN;
+}
+
+/**
+ * up_history_item_finalize:
+ **/
+static void
+up_history_item_finalize (GObject *object)
+{
+ g_return_if_fail (UP_IS_HISTORY_ITEM (object));
+ G_OBJECT_CLASS (up_history_item_parent_class)->finalize (object);
+}
+
+/**
+ * up_history_item_new:
+ *
+ * Return value: a new UpHistoryItem object.
+ *
+ * Since: 0.9.0
+ **/
+UpHistoryItem *
+up_history_item_new (void)
+{
+ UpHistoryItem *history_item;
+ history_item = g_object_new (UP_TYPE_HISTORY_ITEM, NULL);
+ return UP_HISTORY_ITEM (history_item);
+}
+
diff --git a/libupower-glib/up-history-item.h b/libupower-glib/up-history-item.h
new file mode 100644
index 0000000..1028c73
--- /dev/null
+++ b/libupower-glib/up-history-item.h
@@ -0,0 +1,70 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard@hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__UPOWER_H_INSIDE__) && !defined (UP_COMPILATION)
+#error "Only <upower.h> can be included directly."
+#endif
+
+#ifndef __UP_HISTORY_ITEM_H
+#define __UP_HISTORY_ITEM_H
+
+#include <glib-object.h>
+#include <libupower-glib/up-types.h>
+
+G_BEGIN_DECLS
+
+#define UP_TYPE_HISTORY_ITEM (up_history_item_get_type ())
+#define UP_HISTORY_ITEM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), UP_TYPE_HISTORY_ITEM, UpHistoryItem))
+#define UP_HISTORY_ITEM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), UP_TYPE_HISTORY_ITEM, UpHistoryItemClass))
+#define UP_IS_HISTORY_ITEM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), UP_TYPE_HISTORY_ITEM))
+#define UP_IS_HISTORY_ITEM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), UP_TYPE_HISTORY_ITEM))
+#define UP_HISTORY_ITEM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), UP_TYPE_HISTORY_ITEM, UpHistoryItemClass))
+
+typedef struct UpHistoryItemPrivate UpHistoryItemPrivate;
+
+typedef struct
+{
+ GObject parent;
+ UpHistoryItemPrivate *priv;
+} UpHistoryItem;
+
+typedef struct
+{
+ GObjectClass parent_class;
+} UpHistoryItemClass;
+
+GType up_history_item_get_type (void);
+UpHistoryItem *up_history_item_new (void);
+
+gdouble up_history_item_get_value (UpHistoryItem *history_item);
+void up_history_item_set_value (UpHistoryItem *history_item,
+ gdouble value);
+guint up_history_item_get_time (UpHistoryItem *history_item);
+void up_history_item_set_time (UpHistoryItem *history_item,
+ guint time);
+UpDeviceState up_history_item_get_state (UpHistoryItem *history_item);
+void up_history_item_set_state (UpHistoryItem *history_item,
+ UpDeviceState state);
+
+G_END_DECLS
+
+#endif /* __UP_HISTORY_ITEM_H */
+
diff --git a/libupower-glib/up-qos-item.c b/libupower-glib/up-qos-item.c
new file mode 100644
index 0000000..5867f37
--- /dev/null
+++ b/libupower-glib/up-qos-item.c
@@ -0,0 +1,617 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008-2010 Richard Hughes <richard@hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <glib.h>
+
+#include "up-qos-item.h"
+
+static void up_qos_item_class_init (UpQosItemClass *klass);
+static void up_qos_item_init (UpQosItem *qos_item);
+static void up_qos_item_finalize (GObject *object);
+
+#define UP_QOS_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), UP_TYPE_QOS_ITEM, UpQosItemPrivate))
+
+struct UpQosItemPrivate
+{
+ guint uid;
+ guint pid;
+ gchar *sender;
+ gchar *cmdline;
+ guint cookie;
+ guint64 timespec;
+ gboolean persistent;
+ UpQosKind type;
+ gint value;
+};
+
+enum {
+ PROP_0,
+ PROP_UID,
+ PROP_PID,
+ PROP_SENDER,
+ PROP_CMDLINE,
+ PROP_COOKIE,
+ PROP_TIMESPEC,
+ PROP_PERSISTENT,
+ PROP_TYPE,
+ PROP_VALUE,
+ PROP_LAST
+};
+
+G_DEFINE_TYPE (UpQosItem, up_qos_item, G_TYPE_OBJECT)
+
+
+/**
+ * up_qos_item_get_uid:
+ * @qos_item: #UpQosItem
+ *
+ * Gets the item uid.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+guint
+up_qos_item_get_uid (UpQosItem *qos_item)
+{
+ g_return_val_if_fail (UP_IS_QOS_ITEM (qos_item), G_MAXUINT);
+ return qos_item->priv->uid;
+}
+
+/**
+ * up_qos_item_set_uid:
+ * @qos_item: #UpQosItem
+ * @uid: the new value
+ *
+ * Sets the item uid.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_qos_item_set_uid (UpQosItem *qos_item, guint uid)
+{
+ g_return_if_fail (UP_IS_QOS_ITEM (qos_item));
+ qos_item->priv->uid = uid;
+ g_object_notify (G_OBJECT(qos_item), "uid");
+}
+
+/**
+ * up_qos_item_get_pid:
+ * @qos_item: #UpQosItem
+ *
+ * Gets the item pid.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+guint
+up_qos_item_get_pid (UpQosItem *qos_item)
+{
+ g_return_val_if_fail (UP_IS_QOS_ITEM (qos_item), G_MAXUINT);
+ return qos_item->priv->pid;
+}
+
+/**
+ * up_qos_item_set_pid:
+ * @qos_item: #UpQosItem
+ * @pid: the new value
+ *
+ * Sets the item pid.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_qos_item_set_pid (UpQosItem *qos_item, guint pid)
+{
+ g_return_if_fail (UP_IS_QOS_ITEM (qos_item));
+ qos_item->priv->pid = pid;
+ g_object_notify (G_OBJECT(qos_item), "pid");
+}
+
+/**
+ * up_qos_item_get_sender:
+ * @qos_item: #UpQosItem
+ *
+ * Gets the item sender.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+const gchar *
+up_qos_item_get_sender (UpQosItem *qos_item)
+{
+ g_return_val_if_fail (UP_IS_QOS_ITEM (qos_item), NULL);
+ return qos_item->priv->sender;
+}
+
+/**
+ * up_qos_item_set_sender:
+ * @qos_item: #UpQosItem
+ * @sender: the new value
+ *
+ * Sets the item sender.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_qos_item_set_sender (UpQosItem *qos_item, const gchar *sender)
+{
+ g_return_if_fail (UP_IS_QOS_ITEM (qos_item));
+ g_free (qos_item->priv->sender);
+ qos_item->priv->sender = g_strdup (sender);
+ g_object_notify (G_OBJECT(qos_item), "sender");
+}
+
+/**
+ * up_qos_item_get_cmdline:
+ * @qos_item: #UpQosItem
+ *
+ * Gets the item cmdline.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+const gchar *
+up_qos_item_get_cmdline (UpQosItem *qos_item)
+{
+ g_return_val_if_fail (UP_IS_QOS_ITEM (qos_item), NULL);
+ return qos_item->priv->cmdline;
+}
+
+/**
+ * up_qos_item_set_cmdline:
+ * @qos_item: #UpQosItem
+ * @cmdline: the new value
+ *
+ * Sets the item cmdline.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_qos_item_set_cmdline (UpQosItem *qos_item, const gchar *cmdline)
+{
+ g_return_if_fail (UP_IS_QOS_ITEM (qos_item));
+ g_free (qos_item->priv->cmdline);
+ qos_item->priv->cmdline = g_strdup (cmdline);
+ g_object_notify (G_OBJECT(qos_item), "cmdline");
+}
+
+/**
+ * up_qos_item_get_cookie:
+ * @qos_item: #UpQosItem
+ *
+ * Gets the item cookie.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+guint
+up_qos_item_get_cookie (UpQosItem *qos_item)
+{
+ g_return_val_if_fail (UP_IS_QOS_ITEM (qos_item), G_MAXUINT);
+ return qos_item->priv->cookie;
+}
+
+/**
+ * up_qos_item_set_cookie:
+ * @qos_item: #UpQosItem
+ * @cookie: the new value
+ *
+ * Sets the item cookie.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_qos_item_set_cookie (UpQosItem *qos_item, guint cookie)
+{
+ g_return_if_fail (UP_IS_QOS_ITEM (qos_item));
+ qos_item->priv->cookie = cookie;
+ g_object_notify (G_OBJECT(qos_item), "cookie");
+}
+
+/**
+ * up_qos_item_get_timespec:
+ * @qos_item: #UpQosItem
+ *
+ * Gets the item timespec.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+guint64
+up_qos_item_get_timespec (UpQosItem *qos_item)
+{
+ g_return_val_if_fail (UP_IS_QOS_ITEM (qos_item), G_MAXUINT64);
+ return qos_item->priv->timespec;
+}
+
+/**
+ * up_qos_item_set_timespec:
+ * @qos_item: #UpQosItem
+ * @timespec: the new value
+ *
+ * Sets the item timespec.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_qos_item_set_timespec (UpQosItem *qos_item, guint64 timespec)
+{
+ g_return_if_fail (UP_IS_QOS_ITEM (qos_item));
+ qos_item->priv->timespec = timespec;
+ g_object_notify (G_OBJECT(qos_item), "timespec");
+}
+
+/**
+ * up_qos_item_get_persistent:
+ * @qos_item: #UpQosItem
+ *
+ * Gets the item persistent.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+gboolean
+up_qos_item_get_persistent (UpQosItem *qos_item)
+{
+ g_return_val_if_fail (UP_IS_QOS_ITEM (qos_item), G_MAXUINT);
+ return qos_item->priv->persistent;
+}
+
+/**
+ * up_qos_item_set_persistent:
+ * @qos_item: #UpQosItem
+ * @persistent: the new value
+ *
+ * Sets the item persistent.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_qos_item_set_persistent (UpQosItem *qos_item, gboolean persistent)
+{
+ g_return_if_fail (UP_IS_QOS_ITEM (qos_item));
+ qos_item->priv->persistent = persistent;
+ g_object_notify (G_OBJECT(qos_item), "persistent");
+}
+
+/**
+ * up_qos_item_get_kind:
+ * @qos_item: #UpQosItem
+ *
+ * Gets the item type.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+UpQosKind
+up_qos_item_get_kind (UpQosItem *qos_item)
+{
+ g_return_val_if_fail (UP_IS_QOS_ITEM (qos_item), G_MAXUINT);
+ return qos_item->priv->type;
+}
+
+/**
+ * up_qos_item_set_kind:
+ * @qos_item: #UpQosItem
+ * @type: the new value
+ *
+ * Sets the item type.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_qos_item_set_kind (UpQosItem *qos_item, UpQosKind type)
+{
+ g_return_if_fail (UP_IS_QOS_ITEM (qos_item));
+ qos_item->priv->type = type;
+ g_object_notify (G_OBJECT(qos_item), "type");
+}
+
+/**
+ * up_qos_item_get_value:
+ * @qos_item: #UpQosItem
+ *
+ * Gets the item value.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+gint
+up_qos_item_get_value (UpQosItem *qos_item)
+{
+ g_return_val_if_fail (UP_IS_QOS_ITEM (qos_item), G_MAXINT);
+ return qos_item->priv->value;
+}
+
+/**
+ * up_qos_item_set_value:
+ * @qos_item: #UpQosItem
+ * @value: the new value
+ *
+ * Sets the item value.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_qos_item_set_value (UpQosItem *qos_item, gint value)
+{
+ g_return_if_fail (UP_IS_QOS_ITEM (qos_item));
+ qos_item->priv->value = value;
+ g_object_notify (G_OBJECT(qos_item), "value");
+}
+
+/**
+ * up_qos_item_set_property:
+ **/
+static void
+up_qos_item_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+{
+ UpQosItem *qos_item = UP_QOS_ITEM (object);
+
+ switch (prop_id) {
+ case PROP_UID:
+ qos_item->priv->uid = g_value_get_uint (value);
+ break;
+ case PROP_PID:
+ qos_item->priv->pid = g_value_get_uint (value);
+ break;
+ case PROP_SENDER:
+ g_free (qos_item->priv->sender);
+ qos_item->priv->sender = g_strdup (g_value_get_string (value));
+ break;
+ case PROP_CMDLINE:
+ g_free (qos_item->priv->cmdline);
+ qos_item->priv->cmdline = g_strdup (g_value_get_string (value));
+ break;
+ case PROP_COOKIE:
+ qos_item->priv->cookie = g_value_get_uint (value);
+ break;
+ case PROP_TIMESPEC:
+ qos_item->priv->timespec = g_value_get_uint64 (value);
+ break;
+ case PROP_PERSISTENT:
+ qos_item->priv->persistent = g_value_get_boolean (value);
+ break;
+ case PROP_TYPE:
+ qos_item->priv->type = g_value_get_uint (value);
+ break;
+ case PROP_VALUE:
+ qos_item->priv->value = g_value_get_int (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/**
+ * up_qos_item_get_property:
+ **/
+static void
+up_qos_item_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+ UpQosItem *qos_item = UP_QOS_ITEM (object);
+
+ switch (prop_id) {
+ case PROP_UID:
+ g_value_set_uint (value, qos_item->priv->uid);
+ break;
+ case PROP_PID:
+ g_value_set_uint (value, qos_item->priv->pid);
+ break;
+ case PROP_SENDER:
+ g_value_set_string (value, qos_item->priv->sender);
+ break;
+ case PROP_CMDLINE:
+ g_value_set_string (value, qos_item->priv->cmdline);
+ break;
+ case PROP_COOKIE:
+ g_value_set_uint (value, qos_item->priv->cookie);
+ break;
+ case PROP_TIMESPEC:
+ g_value_set_uint64 (value, qos_item->priv->timespec);
+ break;
+ case PROP_PERSISTENT:
+ g_value_set_boolean (value, qos_item->priv->persistent);
+ break;
+ case PROP_TYPE:
+ g_value_set_uint (value, qos_item->priv->type);
+ break;
+ case PROP_VALUE:
+ g_value_set_int (value, qos_item->priv->value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/**
+ * up_qos_item_class_init:
+ * @klass: The UpQosItemClass
+ **/
+static void
+up_qos_item_class_init (UpQosItemClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ object_class->finalize = up_qos_item_finalize;
+ object_class->set_property = up_qos_item_set_property;
+ object_class->get_property = up_qos_item_get_property;
+
+ /**
+ * UpQosItem:uid:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_UID,
+ g_param_spec_uint ("uid", NULL, NULL,
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE));
+ /**
+ * UpQosItem:pid:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_PID,
+ g_param_spec_uint ("pid", NULL, NULL,
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE));
+ /**
+ * UpQosItem:sender:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_SENDER,
+ g_param_spec_string ("sender", NULL, NULL,
+ NULL,
+ G_PARAM_READWRITE));
+ /**
+ * UpQosItem:cmdline:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_CMDLINE,
+ g_param_spec_string ("cmdline", NULL, NULL,
+ NULL,
+ G_PARAM_READWRITE));
+ /**
+ * UpQosItem:cookie:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_COOKIE,
+ g_param_spec_uint ("cookie", NULL, NULL,
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE));
+ /**
+ * UpQosItem:timespec:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_TIMESPEC,
+ g_param_spec_uint64 ("timespec", NULL, NULL,
+ 0, G_MAXUINT64, 0,
+ G_PARAM_READWRITE));
+ /**
+ * UpQosItem:persistent:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_PERSISTENT,
+ g_param_spec_boolean ("persistent", NULL, NULL,
+ FALSE,
+ G_PARAM_READWRITE));
+ /**
+ * UpQosItem:type:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_TYPE,
+ g_param_spec_uint ("type", NULL, NULL,
+ 0, G_MAXUINT, UP_QOS_TYPE_UNKNOWN,
+ G_PARAM_READWRITE));
+ /**
+ * UpQosItem:value:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_VALUE,
+ g_param_spec_int ("value", NULL, NULL,
+ 0, G_MAXINT, 0,
+ G_PARAM_READWRITE));
+
+ g_type_class_add_private (klass, sizeof (UpQosItemPrivate));
+}
+
+/**
+ * up_qos_item_init:
+ * @qos_item: This class instance
+ **/
+static void
+up_qos_item_init (UpQosItem *qos_item)
+{
+ qos_item->priv = UP_QOS_ITEM_GET_PRIVATE (qos_item);
+ qos_item->priv->value = 0.0f;
+ qos_item->priv->uid = 0;
+ qos_item->priv->pid = 0;
+ qos_item->priv->sender = NULL;
+ qos_item->priv->cmdline = NULL;
+ qos_item->priv->cookie = 0;
+ qos_item->priv->timespec = 0;
+ qos_item->priv->persistent = FALSE;
+ qos_item->priv->type = UP_QOS_TYPE_UNKNOWN;
+ qos_item->priv->value = 0;
+}
+
+/**
+ * up_qos_item_finalize:
+ * @object: The object to finalize
+ **/
+static void
+up_qos_item_finalize (GObject *object)
+{
+ UpQosItem *qos_item;
+
+ g_return_if_fail (UP_IS_QOS_ITEM (object));
+
+ qos_item = UP_QOS_ITEM (object);
+
+ g_free (qos_item->priv->sender);
+ g_free (qos_item->priv->cmdline);
+
+ G_OBJECT_CLASS (up_qos_item_parent_class)->finalize (object);
+}
+
+/**
+ * up_qos_item_new:
+ *
+ * Return value: a new UpQosItem object.
+ *
+ * Since: 0.9.0
+ **/
+UpQosItem *
+up_qos_item_new (void)
+{
+ UpQosItem *qos_item;
+ qos_item = g_object_new (UP_TYPE_QOS_ITEM, NULL);
+ return UP_QOS_ITEM (qos_item);
+}
+
diff --git a/libupower-glib/up-qos-item.h b/libupower-glib/up-qos-item.h
new file mode 100644
index 0000000..9d7446f
--- /dev/null
+++ b/libupower-glib/up-qos-item.h
@@ -0,0 +1,89 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008-2010 Richard Hughes <richard@hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__UPOWER_H_INSIDE__) && !defined (UP_COMPILATION)
+#error "Only <upower.h> can be included directly."
+#endif
+
+#ifndef __UP_QOS_ITEM_H
+#define __UP_QOS_ITEM_H
+
+#include <glib-object.h>
+#include <libupower-glib/up-types.h>
+
+G_BEGIN_DECLS
+
+#define UP_TYPE_QOS_ITEM (up_qos_item_get_type ())
+#define UP_QOS_ITEM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), UP_TYPE_QOS_ITEM, UpQosItem))
+#define UP_QOS_ITEM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), UP_TYPE_QOS_ITEM, UpQosItemClass))
+#define UP_IS_QOS_ITEM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), UP_TYPE_QOS_ITEM))
+#define UP_IS_QOS_ITEM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), UP_TYPE_QOS_ITEM))
+#define UP_QOS_ITEM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), UP_TYPE_QOS_ITEM, UpQosItemClass))
+
+typedef struct UpQosItemPrivate UpQosItemPrivate;
+
+typedef struct
+{
+ GObject parent;
+ UpQosItemPrivate *priv;
+} UpQosItem;
+
+typedef struct
+{
+ GObjectClass parent_class;
+} UpQosItemClass;
+
+GType up_qos_item_get_type (void);
+UpQosItem *up_qos_item_new (void);
+
+/* accessors */
+guint up_qos_item_get_uid (UpQosItem *qos_item);
+void up_qos_item_set_uid (UpQosItem *qos_item,
+ guint uid);
+guint up_qos_item_get_pid (UpQosItem *qos_item);
+void up_qos_item_set_pid (UpQosItem *qos_item,
+ guint pid);
+const gchar *up_qos_item_get_sender (UpQosItem *qos_item);
+void up_qos_item_set_sender (UpQosItem *qos_item,
+ const gchar *sender);
+const gchar *up_qos_item_get_cmdline (UpQosItem *qos_item);
+void up_qos_item_set_cmdline (UpQosItem *qos_item,
+ const gchar *cmdline);
+guint up_qos_item_get_cookie (UpQosItem *qos_item);
+void up_qos_item_set_cookie (UpQosItem *qos_item,
+ guint cookie);
+guint64 up_qos_item_get_timespec (UpQosItem *qos_item);
+void up_qos_item_set_timespec (UpQosItem *qos_item,
+ guint64 timespec);
+gboolean up_qos_item_get_persistent (UpQosItem *qos_item);
+void up_qos_item_set_persistent (UpQosItem *qos_item,
+ gboolean persistent);
+UpQosKind up_qos_item_get_kind (UpQosItem *qos_item);
+void up_qos_item_set_kind (UpQosItem *qos_item,
+ UpQosKind type);
+gint up_qos_item_get_value (UpQosItem *qos_item);
+void up_qos_item_set_value (UpQosItem *qos_item,
+ gint value);
+
+G_END_DECLS
+
+#endif /* __UP_QOS_ITEM_H */
+
diff --git a/libupower-glib/up-stats-item.c b/libupower-glib/up-stats-item.c
new file mode 100644
index 0000000..291b7de
--- /dev/null
+++ b/libupower-glib/up-stats-item.c
@@ -0,0 +1,222 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard@hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <glib.h>
+
+#include "up-stats-item.h"
+
+static void up_stats_item_class_init (UpStatsItemClass *klass);
+static void up_stats_item_init (UpStatsItem *stats_item);
+static void up_stats_item_finalize (GObject *object);
+
+#define UP_STATS_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), UP_TYPE_STATS_ITEM, UpStatsItemPrivate))
+
+struct UpStatsItemPrivate
+{
+ gdouble value;
+ gdouble accuracy;
+};
+
+enum {
+ PROP_0,
+ PROP_VALUE,
+ PROP_ACCURACY,
+ PROP_LAST
+};
+
+G_DEFINE_TYPE (UpStatsItem, up_stats_item, G_TYPE_OBJECT)
+
+/**
+ * up_stats_item_set_value:
+ *
+ * Sets the item value.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_stats_item_set_value (UpStatsItem *stats_item, gdouble value)
+{
+ g_return_if_fail (UP_IS_STATS_ITEM (stats_item));
+ stats_item->priv->value = value;
+ g_object_notify (G_OBJECT(stats_item), "value");
+}
+
+/**
+ * up_stats_item_get_value:
+ *
+ * Gets the item value.
+ *
+ * Since: 0.9.0
+ **/
+gdouble
+up_stats_item_get_value (UpStatsItem *stats_item)
+{
+ g_return_val_if_fail (UP_IS_STATS_ITEM (stats_item), G_MAXDOUBLE);
+ return stats_item->priv->value;
+}
+
+/**
+ * up_stats_item_set_accuracy:
+ *
+ * Sets the item accuracy.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_stats_item_set_accuracy (UpStatsItem *stats_item, gdouble accuracy)
+{
+ g_return_if_fail (UP_IS_STATS_ITEM (stats_item));
+ stats_item->priv->accuracy = accuracy;
+ g_object_notify (G_OBJECT(stats_item), "accuracy");
+}
+
+/**
+ * up_stats_item_get_accuracy:
+ *
+ * Gets the item accuracy.
+ *
+ * Since: 0.9.0
+ **/
+gdouble
+up_stats_item_get_accuracy (UpStatsItem *stats_item)
+{
+ g_return_val_if_fail (UP_IS_STATS_ITEM (stats_item), G_MAXDOUBLE);
+ return stats_item->priv->accuracy;
+}
+
+/**
+ * up_stats_item_set_property:
+ **/
+static void
+up_stats_item_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+{
+ UpStatsItem *stats_item = UP_STATS_ITEM (object);
+
+ switch (prop_id) {
+ case PROP_VALUE:
+ stats_item->priv->value = g_value_get_double (value);
+ break;
+ case PROP_ACCURACY:
+ stats_item->priv->accuracy = g_value_get_double (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/**
+ * up_stats_item_get_property:
+ **/
+static void
+up_stats_item_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+ UpStatsItem *stats_item = UP_STATS_ITEM (object);
+
+ switch (prop_id) {
+ case PROP_VALUE:
+ g_value_set_double (value, stats_item->priv->value);
+ break;
+ case PROP_ACCURACY:
+ g_value_set_double (value, stats_item->priv->accuracy);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/**
+ * up_stats_item_class_init:
+ * @klass: The UpStatsItemClass
+ **/
+static void
+up_stats_item_class_init (UpStatsItemClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ object_class->finalize = up_stats_item_finalize;
+ object_class->set_property = up_stats_item_set_property;
+ object_class->get_property = up_stats_item_get_property;
+
+ /**
+ * UpStatsItem:value:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_VALUE,
+ g_param_spec_double ("value", NULL, NULL,
+ 0.0, G_MAXDOUBLE, 0.0,
+ G_PARAM_READWRITE));
+ /**
+ * UpStatsItem:accuracy:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_ACCURACY,
+ g_param_spec_double ("accuracy", NULL, NULL,
+ 0.0, G_MAXDOUBLE, 0.0,
+ G_PARAM_READWRITE));
+
+ g_type_class_add_private (klass, sizeof (UpStatsItemPrivate));
+}
+
+/**
+ * up_stats_item_init:
+ * @stats_item: This class instance
+ **/
+static void
+up_stats_item_init (UpStatsItem *stats_item)
+{
+ stats_item->priv = UP_STATS_ITEM_GET_PRIVATE (stats_item);
+ stats_item->priv->value = 0.0f;
+ stats_item->priv->accuracy = 0.0f;
+}
+
+/**
+ * up_stats_item_finalize:
+ * @object: The object to finalize
+ **/
+static void
+up_stats_item_finalize (GObject *object)
+{
+ g_return_if_fail (UP_IS_STATS_ITEM (object));
+ G_OBJECT_CLASS (up_stats_item_parent_class)->finalize (object);
+}
+
+/**
+ * up_stats_item_new:
+ *
+ * Return value: a new UpStatsItem object.
+ *
+ * Since: 0.9.0
+ **/
+UpStatsItem *
+up_stats_item_new (void)
+{
+ UpStatsItem *stats_item;
+ stats_item = g_object_new (UP_TYPE_STATS_ITEM, NULL);
+ return UP_STATS_ITEM (stats_item);
+}
+
diff --git a/libupower-glib/up-stats-item.h b/libupower-glib/up-stats-item.h
new file mode 100644
index 0000000..91c4e2f
--- /dev/null
+++ b/libupower-glib/up-stats-item.h
@@ -0,0 +1,66 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard@hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__UPOWER_H_INSIDE__) && !defined (UP_COMPILATION)
+#error "Only <upower.h> can be included directly."
+#endif
+
+#ifndef __UP_STATS_ITEM_H
+#define __UP_STATS_ITEM_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define UP_TYPE_STATS_ITEM (up_stats_item_get_type ())
+#define UP_STATS_ITEM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), UP_TYPE_STATS_ITEM, UpStatsItem))
+#define UP_STATS_ITEM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), UP_TYPE_STATS_ITEM, UpStatsItemClass))
+#define UP_IS_STATS_ITEM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), UP_TYPE_STATS_ITEM))
+#define UP_IS_STATS_ITEM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), UP_TYPE_STATS_ITEM))
+#define UP_STATS_ITEM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), UP_TYPE_STATS_ITEM, UpStatsItemClass))
+
+typedef struct UpStatsItemPrivate UpStatsItemPrivate;
+
+typedef struct
+{
+ GObject parent;
+ UpStatsItemPrivate *priv;
+} UpStatsItem;
+
+typedef struct
+{
+ GObjectClass parent_class;
+} UpStatsItemClass;
+
+GType up_stats_item_get_type (void);
+UpStatsItem *up_stats_item_new (void);
+
+gdouble up_stats_item_get_value (UpStatsItem *stats_item);
+void up_stats_item_set_value (UpStatsItem *stats_item,
+ gdouble value);
+gdouble up_stats_item_get_accuracy (UpStatsItem *stats_item);
+void up_stats_item_set_accuracy (UpStatsItem *stats_item,
+ gdouble accuracy);
+
+G_END_DECLS
+
+#endif /* __UP_STATS_ITEM_H */
+
diff --git a/libupower-glib/up-types.c b/libupower-glib/up-types.c
index 07b1922..f7e24ed 100644
--- a/libupower-glib/up-types.c
+++ b/libupower-glib/up-types.c
@@ -250,16 +250,16 @@ up_device_technology_from_string (const gchar *technology)
}
/**
- * up_qos_type_to_string:
+ * up_qos_kind_to_string:
*
- * Converts a #UpQosType to a string.
+ * Converts a #UpQosKind to a string.
*
* Return value: identifier string
*
* Since: 0.9.0
**/
const gchar *
-up_qos_type_to_string (UpQosType type)
+up_qos_kind_to_string (UpQosKind type)
{
if (type == UP_QOS_TYPE_NETWORK)
return "network";
@@ -269,16 +269,16 @@ up_qos_type_to_string (UpQosType type)
}
/**
- * up_qos_type_from_string:
+ * up_qos_kind_from_string:
*
- * Converts a string to a #UpQosType.
+ * Converts a string to a #UpQosKind.
*
* Return value: enumerated value
*
* Since: 0.9.0
**/
-UpQosType
-up_qos_type_from_string (const gchar *type)
+UpQosKind
+up_qos_kind_from_string (const gchar *type)
{
if (g_strcmp0 (type, "network") == 0)
return UP_QOS_TYPE_NETWORK;
diff --git a/libupower-glib/up-types.h b/libupower-glib/up-types.h
index 3d522ee..607fe18 100644
--- a/libupower-glib/up-types.h
+++ b/libupower-glib/up-types.h
@@ -81,7 +81,7 @@ typedef enum {
} UpDeviceTechnology;
/**
- * UpQosType:
+ * UpQosKind:
*
* The type of QOS request.
**/
@@ -90,7 +90,7 @@ typedef enum {
UP_QOS_TYPE_NETWORK,
UP_QOS_TYPE_CPU_DMA,
UP_QOS_TYPE_LAST
-} UpQosType;
+} UpQosKind;
const gchar *up_device_kind_to_string (UpDeviceKind type_enum);
const gchar *up_device_state_to_string (UpDeviceState state_enum);
@@ -98,8 +98,8 @@ const gchar *up_device_technology_to_string (UpDeviceTechnology technology_enu
UpDeviceKind up_device_kind_from_string (const gchar *type);
UpDeviceState up_device_state_from_string (const gchar *state);
UpDeviceTechnology up_device_technology_from_string (const gchar *technology);
-const gchar *up_qos_type_to_string (UpQosType type);
-UpQosType up_qos_type_from_string (const gchar *type);
+const gchar *up_qos_kind_to_string (UpQosKind type);
+UpQosKind up_qos_kind_from_string (const gchar *type);
G_END_DECLS
diff --git a/libupower-glib/up-wakeup-item.c b/libupower-glib/up-wakeup-item.c
new file mode 100644
index 0000000..58e40b4
--- /dev/null
+++ b/libupower-glib/up-wakeup-item.c
@@ -0,0 +1,455 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008-2010 Richard Hughes <richard@hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <glib.h>
+
+#include "up-wakeup-item.h"
+
+static void up_wakeup_item_class_init (UpWakeupItemClass *klass);
+static void up_wakeup_item_init (UpWakeupItem *wakeup_item);
+static void up_wakeup_item_finalize (GObject *object);
+
+#define UP_WAKEUP_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), UP_TYPE_WAKEUP_ITEM, UpWakeupItemPrivate))
+
+struct UpWakeupItemPrivate
+{
+ gboolean is_userspace;
+ guint id;
+ guint old;
+ gdouble value;
+ gchar *cmdline;
+ gchar *details;
+};
+
+enum {
+ PROP_0,
+ PROP_IS_USERSPACE,
+ PROP_ID,
+ PROP_OLD,
+ PROP_VALUE,
+ PROP_CMDLINE,
+ PROP_DETAILS,
+ PROP_LAST
+};
+
+G_DEFINE_TYPE (UpWakeupItem, up_wakeup_item, G_TYPE_OBJECT)
+
+/**
+ * up_wakeup_item_get_is_userspace:
+ * @history_item: #UpWakeupItem
+ *
+ * Gets if the item is userspace.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+gboolean
+up_wakeup_item_get_is_userspace (UpWakeupItem *wakeup_item)
+{
+ g_return_val_if_fail (UP_IS_WAKEUP_ITEM (wakeup_item), FALSE);
+ return wakeup_item->priv->is_userspace;
+}
+
+/**
+ * up_wakeup_item_set_is_userspace:
+ * @history_item: #UpWakeupItem
+ * @is_userspace: the new value
+ *
+ * Sets if the item is userspace.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_wakeup_item_set_is_userspace (UpWakeupItem *wakeup_item, gboolean is_userspace)
+{
+ g_return_if_fail (UP_IS_WAKEUP_ITEM (wakeup_item));
+ wakeup_item->priv->is_userspace = is_userspace;
+ g_object_notify (G_OBJECT(wakeup_item), "is-userspace");
+}
+
+/**
+ * up_wakeup_item_get_id:
+ * @history_item: #UpWakeupItem
+ *
+ * Gets the item id.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+guint
+up_wakeup_item_get_id (UpWakeupItem *wakeup_item)
+{
+ g_return_val_if_fail (UP_IS_WAKEUP_ITEM (wakeup_item), G_MAXUINT);
+ return wakeup_item->priv->id;
+}
+
+/**
+ * up_wakeup_item_set_id:
+ * @history_item: #UpWakeupItem
+ * @id: the new value
+ *
+ * Sets the item id.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_wakeup_item_set_id (UpWakeupItem *wakeup_item, guint id)
+{
+ g_return_if_fail (UP_IS_WAKEUP_ITEM (wakeup_item));
+ wakeup_item->priv->id = id;
+ g_object_notify (G_OBJECT(wakeup_item), "id");
+}
+
+/**
+ * up_wakeup_item_get_old:
+ * @history_item: #UpWakeupItem
+ *
+ * Gets the item old.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+guint
+up_wakeup_item_get_old (UpWakeupItem *wakeup_item)
+{
+ g_return_val_if_fail (UP_IS_WAKEUP_ITEM (wakeup_item), G_MAXUINT);
+ return wakeup_item->priv->old;
+}
+
+/**
+ * up_wakeup_item_set_old:
+ * @history_item: #UpWakeupItem
+ * @old: the new value
+ *
+ * Sets the item old.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_wakeup_item_set_old (UpWakeupItem *wakeup_item, guint old)
+{
+ g_return_if_fail (UP_IS_WAKEUP_ITEM (wakeup_item));
+ wakeup_item->priv->old = old;
+ g_object_notify (G_OBJECT(wakeup_item), "old");
+}
+
+/**
+ * up_wakeup_item_get_value:
+ * @history_item: #UpWakeupItem
+ *
+ * Gets the item value.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+gdouble
+up_wakeup_item_get_value (UpWakeupItem *wakeup_item)
+{
+ g_return_val_if_fail (UP_IS_WAKEUP_ITEM (wakeup_item), G_MAXDOUBLE);
+ return wakeup_item->priv->value;
+}
+
+/**
+ * up_wakeup_item_set_value:
+ * @history_item: #UpWakeupItem
+ * @value: the new value
+ *
+ * Sets the item value.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_wakeup_item_set_value (UpWakeupItem *wakeup_item, gdouble value)
+{
+ g_return_if_fail (UP_IS_WAKEUP_ITEM (wakeup_item));
+ wakeup_item->priv->value = value;
+ g_object_notify (G_OBJECT(wakeup_item), "value");
+}
+
+/**
+ * up_wakeup_item_get_cmdline:
+ * @history_item: #UpWakeupItem
+ *
+ * Gets the item cmdline.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+const gchar *
+up_wakeup_item_get_cmdline (UpWakeupItem *wakeup_item)
+{
+ g_return_val_if_fail (UP_IS_WAKEUP_ITEM (wakeup_item), NULL);
+ return wakeup_item->priv->cmdline;
+}
+
+/**
+ * up_wakeup_item_set_cmdline:
+ * @history_item: #UpWakeupItem
+ * @cmdline: the new value
+ *
+ * Sets the item cmdline.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_wakeup_item_set_cmdline (UpWakeupItem *wakeup_item, const gchar *cmdline)
+{
+ g_return_if_fail (UP_IS_WAKEUP_ITEM (wakeup_item));
+ g_free (wakeup_item->priv->cmdline);
+ wakeup_item->priv->cmdline = g_strdup (cmdline);
+ g_object_notify (G_OBJECT(wakeup_item), "cmdline");
+}
+
+/**
+ * up_wakeup_item_get_details:
+ * @history_item: #UpWakeupItem
+ *
+ * Gets the item details.
+ *
+ * Return value: the value
+ *
+ * Since: 0.9.0
+ **/
+const gchar *
+up_wakeup_item_get_details (UpWakeupItem *wakeup_item)
+{
+ g_return_val_if_fail (UP_IS_WAKEUP_ITEM (wakeup_item), NULL);
+ return wakeup_item->priv->details;
+}
+
+/**
+ * up_wakeup_item_set_details:
+ * @history_item: #UpWakeupItem
+ * @details: the new value
+ *
+ * Sets the item details.
+ *
+ * Since: 0.9.0
+ **/
+void
+up_wakeup_item_set_details (UpWakeupItem *wakeup_item, const gchar *details)
+{
+ g_return_if_fail (UP_IS_WAKEUP_ITEM (wakeup_item));
+ g_free (wakeup_item->priv->details);
+ wakeup_item->priv->details = g_strdup (details);
+ g_object_notify (G_OBJECT(wakeup_item), "details");
+}
+
+/**
+ * up_wakeup_item_set_property:
+ **/
+static void
+up_wakeup_item_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+{
+ UpWakeupItem *wakeup_item = UP_WAKEUP_ITEM (object);
+
+ switch (prop_id) {
+ case PROP_IS_USERSPACE:
+ wakeup_item->priv->is_userspace = g_value_get_boolean (value);
+ break;
+ case PROP_ID:
+ wakeup_item->priv->id = g_value_get_uint (value);
+ break;
+ case PROP_OLD:
+ wakeup_item->priv->old = g_value_get_uint (value);
+ break;
+ case PROP_VALUE:
+ wakeup_item->priv->value = g_value_get_double (value);
+ break;
+ case PROP_CMDLINE:
+ g_free (wakeup_item->priv->cmdline);
+ wakeup_item->priv->cmdline = g_strdup (g_value_get_string (value));
+ break;
+ case PROP_DETAILS:
+ g_free (wakeup_item->priv->details);
+ wakeup_item->priv->details = g_strdup (g_value_get_string (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/**
+ * up_wakeup_item_get_property:
+ **/
+static void
+up_wakeup_item_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+ UpWakeupItem *wakeup_item = UP_WAKEUP_ITEM (object);
+
+ switch (prop_id) {
+ case PROP_IS_USERSPACE:
+ g_value_set_boolean (value, wakeup_item->priv->is_userspace);
+ break;
+ case PROP_ID:
+ g_value_set_uint (value, wakeup_item->priv->id);
+ break;
+ case PROP_OLD:
+ g_value_set_uint (value, wakeup_item->priv->old);
+ break;
+ case PROP_VALUE:
+ g_value_set_double (value, wakeup_item->priv->value);
+ break;
+ case PROP_CMDLINE:
+ g_value_set_string (value, wakeup_item->priv->cmdline);
+ break;
+ case PROP_DETAILS:
+ g_value_set_string (value, wakeup_item->priv->details);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/**
+ * up_wakeup_item_class_init:
+ * @klass: The UpWakeupItemClass
+ **/
+static void
+up_wakeup_item_class_init (UpWakeupItemClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ object_class->finalize = up_wakeup_item_finalize;
+ object_class->set_property = up_wakeup_item_set_property;
+ object_class->get_property = up_wakeup_item_get_property;
+
+ /**
+ * UpWakeupItem:is-userspace:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_IS_USERSPACE,
+ g_param_spec_boolean ("is-userspace", NULL, NULL,
+ FALSE,
+ G_PARAM_READWRITE));
+ /**
+ * UpWakeupItem:id:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_ID,
+ g_param_spec_uint ("id", NULL, NULL,
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE));
+ /**
+ * UpWakeupItem:old:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_OLD,
+ g_param_spec_uint ("old", NULL, NULL,
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE));
+ /**
+ * UpWakeupItem:value:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_VALUE,
+ g_param_spec_double ("value", NULL, NULL,
+ 0.0, G_MAXDOUBLE, 0.0,
+ G_PARAM_READWRITE));
+ /**
+ * UpWakeupItem:cmdline:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_CMDLINE,
+ g_param_spec_string ("cmdline", NULL, NULL,
+ NULL,
+ G_PARAM_READWRITE));
+ /**
+ * UpWakeupItem:details:
+ *
+ * Since: 0.9.0
+ **/
+ g_object_class_install_property (object_class,
+ PROP_DETAILS,
+ g_param_spec_string ("details", NULL, NULL,
+ NULL,
+ G_PARAM_READWRITE));
+
+ g_type_class_add_private (klass, sizeof (UpWakeupItemPrivate));
+}
+
+/**
+ * up_wakeup_item_init:
+ * @wakeup_item: This class instance
+ **/
+static void
+up_wakeup_item_init (UpWakeupItem *wakeup_item)
+{
+ wakeup_item->priv = UP_WAKEUP_ITEM_GET_PRIVATE (wakeup_item);
+ wakeup_item->priv->is_userspace = FALSE;
+ wakeup_item->priv->id = 0;
+ wakeup_item->priv->old = 0;
+ wakeup_item->priv->value = 0.0f;
+ wakeup_item->priv->cmdline = NULL;
+ wakeup_item->priv->details = NULL;
+}
+
+/**
+ * up_wakeup_item_finalize:
+ * @object: The object to finalize
+ **/
+static void
+up_wakeup_item_finalize (GObject *object)
+{
+ UpWakeupItem *wakeup_item;
+
+ g_return_if_fail (UP_IS_WAKEUP_ITEM (object));
+
+ wakeup_item = UP_WAKEUP_ITEM (object);
+ g_free (wakeup_item->priv->cmdline);
+ g_free (wakeup_item->priv->details);
+
+ G_OBJECT_CLASS (up_wakeup_item_parent_class)->finalize (object);
+}
+
+/**
+ * up_wakeup_item_new:
+ *
+ * Return value: a new UpWakeupItem object.
+ *
+ * Since: 0.9.0
+ **/
+UpWakeupItem *
+up_wakeup_item_new (void)
+{
+ UpWakeupItem *wakeup_item;
+ wakeup_item = g_object_new (UP_TYPE_WAKEUP_ITEM, NULL);
+ return UP_WAKEUP_ITEM (wakeup_item);
+}
+
diff --git a/libupower-glib/up-wakeup-item.h b/libupower-glib/up-wakeup-item.h
new file mode 100644
index 0000000..e86c167
--- /dev/null
+++ b/libupower-glib/up-wakeup-item.h
@@ -0,0 +1,80 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard@hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__UPOWER_H_INSIDE__) && !defined (UP_COMPILATION)
+#error "Only <upower.h> can be included directly."
+#endif
+
+#ifndef __UP_WAKEUP_ITEM_H
+#define __UP_WAKEUP_ITEM_H
+
+#include <glib-object.h>
+#include <libupower-glib/up-types.h>
+
+G_BEGIN_DECLS
+
+#define UP_TYPE_WAKEUP_ITEM (up_wakeup_item_get_type ())
+#define UP_WAKEUP_ITEM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), UP_TYPE_WAKEUP_ITEM, UpWakeupItem))
+#define UP_WAKEUP_ITEM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), UP_TYPE_WAKEUP_ITEM, UpWakeupItemClass))
+#define UP_IS_WAKEUP_ITEM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), UP_TYPE_WAKEUP_ITEM))
+#define UP_IS_WAKEUP_ITEM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), UP_TYPE_WAKEUP_ITEM))
+#define UP_WAKEUP_ITEM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), UP_TYPE_WAKEUP_ITEM, UpWakeupItemClass))
+
+typedef struct UpWakeupItemPrivate UpWakeupItemPrivate;
+
+typedef struct
+{
+ GObject parent;
+ UpWakeupItemPrivate *priv;
+} UpWakeupItem;
+
+typedef struct
+{
+ GObjectClass parent_class;
+} UpWakeupItemClass;
+
+GType up_wakeup_item_get_type (void);
+UpWakeupItem *up_wakeup_item_new (void);
+
+/* accessors */
+gboolean up_wakeup_item_get_is_userspace (UpWakeupItem *wakeup_item);
+void up_wakeup_item_set_is_userspace (UpWakeupItem *wakeup_item,
+ gboolean is_userspace);
+guint up_wakeup_item_get_id (UpWakeupItem *wakeup_item);
+void up_wakeup_item_set_id (UpWakeupItem *wakeup_item,
+ guint id);
+guint up_wakeup_item_get_old (UpWakeupItem *wakeup_item);
+void up_wakeup_item_set_old (UpWakeupItem *wakeup_item,
+ guint old);
+gdouble up_wakeup_item_get_value (UpWakeupItem *wakeup_item);
+void up_wakeup_item_set_value (UpWakeupItem *wakeup_item,
+ gdouble value);
+const gchar *up_wakeup_item_get_cmdline (UpWakeupItem *wakeup_item);
+void up_wakeup_item_set_cmdline (UpWakeupItem *wakeup_item,
+ const gchar *cmdline);
+const gchar *up_wakeup_item_get_details (UpWakeupItem *wakeup_item);
+void up_wakeup_item_set_details (UpWakeupItem *wakeup_item,
+ const gchar *details);
+
+G_END_DECLS
+
+#endif /* __UP_WAKEUP_ITEM_H */
+
diff --git a/libupower-glib/upower.h b/libupower-glib/upower.h
index 5c91623..01e81d8 100644
--- a/libupower-glib/upower.h
+++ b/libupower-glib/upower.h
@@ -38,6 +38,10 @@
#include <libupower-glib/up-types.h>
#include <libupower-glib/up-client.h>
#include <libupower-glib/up-device.h>
+#include <libupower-glib/up-qos-item.h>
+#include <libupower-glib/up-history-item.h>
+#include <libupower-glib/up-stats-item.h>
+#include <libupower-glib/up-wakeup-item.h>
#undef __UPOWER_H_INSIDE__