mirror of
https://gitlab.freedesktop.org/upower/upower.git
synced 2026-05-05 07:38:17 +02:00
add a new ninary to get the battery power state
This commit is contained in:
parent
53d3e2bf25
commit
9dca67f115
3 changed files with 84 additions and 5 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
67
tools/dkp-battery-power.c
Normal 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;
|
||||
}
|
||||
|
||||
Loading…
Add table
Reference in a new issue