upower/src/up-daemon.h
Richard Hughes 0fd304c3f3 Add new NotifySleep() and NotifyResume() signals that include the sleep type
This allows session power managers to do different actions depending on whether the user
is suspending or hibernating. This allows the session policy agent to poke other things
(for instance, the screensaver) even if another process initiated the sleep.

This is based on a patch from Phillip Susi <psusi@cfl.rr.com>, many thanks.
2011-05-04 17:57:13 +01:00

118 lines
4 KiB
C

/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* Copyright (C) 2008 David Zeuthen <davidz@redhat.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
*
*/
#ifndef __UP_DAEMON_H__
#define __UP_DAEMON_H__
#include <glib-object.h>
#include <polkit/polkit.h>
#include <dbus/dbus-glib.h>
#include "up-types.h"
#include "up-device-list.h"
G_BEGIN_DECLS
#define UP_TYPE_DAEMON (up_daemon_get_type ())
#define UP_DAEMON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), UP_TYPE_DAEMON, UpDaemon))
#define UP_DAEMON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), UP_TYPE_DAEMON, UpDaemonClass))
#define UP_IS_DAEMON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), UP_TYPE_DAEMON))
#define UP_IS_DAEMON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), UP_TYPE_DAEMON))
#define UP_DAEMON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), UP_TYPE_DAEMON, UpDaemonClass))
typedef struct UpDaemonPrivate UpDaemonPrivate;
typedef struct
{
GObject parent;
UpDaemonPrivate *priv;
} UpDaemon;
typedef struct
{
GObjectClass parent_class;
} UpDaemonClass;
typedef enum
{
UP_DAEMON_ERROR_GENERAL,
UP_DAEMON_ERROR_NOT_SUPPORTED,
UP_DAEMON_ERROR_NO_SUCH_DEVICE,
UP_DAEMON_NUM_ERRORS
} UpDaemonError;
#define UP_DAEMON_ERROR up_daemon_error_quark ()
GType up_daemon_error_get_type (void);
#define UP_DAEMON_TYPE_ERROR (up_daemon_error_get_type ())
GQuark up_daemon_error_quark (void);
GType up_daemon_get_type (void);
UpDaemon *up_daemon_new (void);
void up_daemon_test (gpointer user_data);
DBusBusType up_daemon_get_bus_type (void);
void up_daemon_set_bus_type (DBusBusType type);
/* private */
guint up_daemon_get_number_devices_of_type (UpDaemon *daemon,
UpDeviceKind type);
UpDeviceList *up_daemon_get_device_list (UpDaemon *daemon);
gboolean up_daemon_startup (UpDaemon *daemon);
void up_daemon_set_lid_is_closed (UpDaemon *daemon,
gboolean lid_is_closed);
void up_daemon_set_lid_is_present (UpDaemon *daemon,
gboolean lid_is_present);
void up_daemon_set_lid_force_sleep (UpDaemon *daemon,
gboolean lid_force_sleep);
void up_daemon_set_is_docked (UpDaemon *daemon,
gboolean is_docked);
void up_daemon_set_on_battery (UpDaemon *daemon,
gboolean on_battery);
void up_daemon_set_on_low_battery (UpDaemon *daemon,
gboolean on_low_battery);
/* exported */
gboolean up_daemon_enumerate_devices (UpDaemon *daemon,
DBusGMethodInvocation *context);
gboolean up_daemon_get_on_battery (UpDaemon *daemon,
DBusGMethodInvocation *context);
gboolean up_daemon_get_low_battery (UpDaemon *daemon,
DBusGMethodInvocation *context);
gboolean up_daemon_suspend (UpDaemon *daemon,
DBusGMethodInvocation *context);
gboolean up_daemon_about_to_sleep (UpDaemon *daemon,
const gchar *sleep_kind,
DBusGMethodInvocation *context);
gboolean up_daemon_suspend_allowed (UpDaemon *daemon,
DBusGMethodInvocation *context);
gboolean up_daemon_hibernate (UpDaemon *daemon,
DBusGMethodInvocation *context);
gboolean up_daemon_hibernate_allowed (UpDaemon *daemon,
DBusGMethodInvocation *context);
gboolean up_daemon_can_suspend (UpDaemon *daemon,
gboolean interactive,
DBusGMethodInvocation *context);
gboolean up_daemon_can_hibernate (UpDaemon *daemon,
gboolean interactive,
DBusGMethodInvocation *context);
G_END_DECLS
#endif /* __UP_DAEMON_H__ */