gnome-control-center/gnome-settings-daemon/gnome-settings-dbus.c

88 lines
2.8 KiB
C
Raw Normal View History

#include <dbus/dbus-glib-bindings.h>
2006-07-06 19:45:13 +00:00
#include <gnome-settings-daemon.h>
static GObjectClass *parent_class = NULL;
2006-07-06 19:45:13 +00:00
typedef struct GnomeSettingsServer GnomeSettingsServer;
typedef struct GnomeSettingsServerClass GnomeSettingsServerClass;
2006-07-06 19:45:13 +00:00
struct GnomeSettingsServer {
GObject parent;
};
2006-07-06 19:45:13 +00:00
struct GnomeSettingsServerClass {
GObjectClass parent;
DBusGConnection *connection;
};
2006-07-06 19:45:13 +00:00
#define GNOME_SETTINGS_TYPE_SERVER (gnome_settings_server_get_type ())
#define GNOME_SETTINGS_SERVER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GNOME_SETTINGS_TYPE_SERVER, GnomeSettingsServer))
#define GNOME_SETTINGS_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNOME_SETTINGS_TYPE_SERVER, GnomeSettingsServerClass))
#define GNOME_SETTINGS_IS_SERVER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GNOME_SETTINGS_TYPE_SERVER))
#define GNOME_SETTINGS_IS_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_SETTINGS_TYPE_SERVER))
#define GNOME_SETTINGS_SERVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNOME_SETTINGS_TYPE_SERVER, GnomeSettingsServerClass))
gboolean
settings_daemon_awake (GObject * object, GError ** error)
{
return TRUE;
}
2006-07-06 19:45:13 +00:00
G_DEFINE_TYPE (GnomeSettingsServer, gnome_settings_server, G_TYPE_OBJECT)
#include "gnome-settings-server.h"
static void
2006-07-06 19:45:13 +00:00
gnome_settings_server_class_init (GnomeSettingsServerClass * klass)
{
GError *error = NULL;
GObjectClass *object_class;
/* Init the DBus connection, per-klass */
klass->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
if (klass->connection == NULL) {
g_warning ("Unable to connect to dbus: %s",
error->message);
g_error_free (error);
return;
}
/* &dbus_glib__object_info is provided in the server-bindings.h file */
2006-07-06 19:45:13 +00:00
dbus_g_object_type_install_info (GNOME_SETTINGS_TYPE_SERVER,
&dbus_glib_settings_daemon_object_info);
object_class = G_OBJECT_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
}
static void
2006-07-06 19:45:13 +00:00
gnome_settings_server_init (GnomeSettingsServer * server)
{
GError *error = NULL;
DBusGProxy *driver_proxy;
2006-07-06 19:45:13 +00:00
GnomeSettingsServerClass *klass =
GNOME_SETTINGS_SERVER_GET_CLASS (server);
unsigned request_ret;
/* Register DBUS path */
dbus_g_connection_register_g_object (klass->connection,
"/org/gnome/SettingsDaemon",
2006-07-06 19:45:13 +00:00
G_OBJECT (server));
/* Register the service name, the constant here are defined in dbus-glib-bindings.h */
driver_proxy = dbus_g_proxy_new_for_name (klass->connection,
DBUS_SERVICE_DBUS,
DBUS_PATH_DBUS,
DBUS_INTERFACE_DBUS);
2006-07-06 19:45:13 +00:00
if (!org_freedesktop_DBus_request_name
(driver_proxy, "org.gnome.SettingsDaemon", 0, &request_ret,
&error)) {
g_warning ("Unable to register service: %s",
error->message);
g_error_free (error);
}
2006-07-06 19:45:13 +00:00
g_object_unref (driver_proxy);
}