add a new ninary to get the battery power state

This commit is contained in:
Richard Hughes 2008-08-04 17:31:52 +01:00
parent 53d3e2bf25
commit 9dca67f115
3 changed files with 84 additions and 5 deletions

View file

@ -80,13 +80,12 @@ dkp_history_copy_array_timespan (GPtrArray *array, guint timespan)
obj = (const DkpHistoryObj *) g_ptr_array_index (array, array->len-1);
start = obj->time;
for (i=array->len-1; i>0; i--) {
g_debug ("i=%i", i);
obj = (const DkpHistoryObj *) g_ptr_array_index (array, i);
if (start - obj->time < timespan) {
obj_new = dkp_history_obj_copy (obj);
g_ptr_array_add (array_new, obj_new);
}
}
}
return array_new;
}

View file

@ -30,13 +30,12 @@ dkp-marshal.c: $(top_srcdir)/src/dkp-marshal.list
dkp-daemon-glue.h: $(top_srcdir)/src/org.freedesktop.DeviceKit.Power.xml Makefile.am
dbus-binding-tool --prefix=devkit_power_daemon --mode=glib-client --output=dkp-daemon-glue.h $(top_srcdir)/src/org.freedesktop.DeviceKit.Power.xml
bin_PROGRAMS = devkit-power
bin_PROGRAMS = devkit-power devkit-battery-power
devkit_power_SOURCES = \
dkp-tool.c \
dkp-tool.c \
$(BUILT_SOURCES)
devkit_power_CPPFLAGS = \
-DG_LOG_DOMAIN=\"devkit-power\" \
$(DISABLE_DEPRECATED) \
@ -47,6 +46,20 @@ devkit_power_LDADD = \
$(DEVKIT_POWER_LIBS) \
$(POLKIT_DBUS_LIBS)
devkit_battery_power_SOURCES = \
dkp-battery-power.c \
$(BUILT_SOURCES)
devkit_battery_power_CPPFLAGS = \
-DG_LOG_DOMAIN=\"devkit-power\" \
$(DISABLE_DEPRECATED) \
$(AM_CPPFLAGS)
devkit_battery_power_LDADD = \
$(DBUS_GLIB_LIBS) \
$(DEVKIT_POWER_LIBS) \
$(POLKIT_DBUS_LIBS)
CLEANFILES = $(BUILT_SOURCES)
clean-local :

67
tools/dkp-battery-power.c Normal file
View file

@ -0,0 +1,67 @@
#include <glib.h>
#include <dbus/dbus-glib.h>
#include "dkp-debug.h"
/**
* main:
**/
int
main (int argc, char **argv)
{
gint retval = 1;
gboolean ret;
gboolean on_battery;
GError *error = NULL;
DBusGConnection *bus = NULL;
DBusGProxy *proxy = NULL;
gboolean verbose = FALSE;
GOptionContext *context;
const GOptionEntry entries[] = {
{ "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose, "Show extra debugging information", NULL },
{ NULL }
};
g_type_init ();
context = g_option_context_new ("devkit-battery-power");
g_option_context_add_main_entries (context, entries, NULL);
g_option_context_parse (context, &argc, &argv, NULL);
g_option_context_free (context);
dkp_debug_init (verbose);
bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
if (bus == NULL) {
dkp_warning ("Couldn't connect to system bus: %s", error->message);
g_error_free (error);
goto out;
}
proxy = dbus_g_proxy_new_for_name (bus, "org.freedesktop.DeviceKit.Power",
"/", "org.freedesktop.DeviceKit.Power");
if (proxy == NULL) {
dkp_warning ("Couldn't connect to DeviceKit-power");
goto out;
}
ret = dbus_g_proxy_call (proxy, "GetOnBattery", &error,
G_TYPE_INVALID,
G_TYPE_BOOLEAN, &on_battery,
G_TYPE_INVALID);
if (!ret) {
dkp_debug ("GetOnBattery failed: %s", error->message);
g_error_free (error);
goto out;
}
g_print ("on-battery: %s\n", on_battery ? "yes" : "no");
retval = 0;
out:
if (proxy != NULL)
g_object_unref (proxy);
if (bus != NULL)
dbus_g_connection_unref (bus);
return retval;
}