65
65
XfpmManager *manager = (XfpmManager *) data;
67
TRACE ("sig %d", sig);
67
XFPM_DEBUG ("sig %d", sig);
69
69
if ( sig != SIGHUP )
70
70
xfpm_manager_stop (manager);
74
xfpm_bool_to_local_string (gboolean value)
76
return value == TRUE ? _("True") : _("False");
80
xfpm_dump (GHashTable *hash)
83
gboolean auth_suspend;
84
gboolean auth_hibernate;
86
gboolean can_hibernate;
87
gboolean can_shutdown;
88
gboolean has_lcd_brightness;
89
gboolean has_sleep_button;
90
gboolean has_hibernate_button;
91
gboolean has_power_button;
93
gboolean can_spin_down;
96
has_battery = xfpm_string_to_bool (g_hash_table_lookup (hash, "has-battery"));
97
has_lid = xfpm_string_to_bool (g_hash_table_lookup (hash, "has-lid"));
98
can_suspend = xfpm_string_to_bool (g_hash_table_lookup (hash, "can-suspend"));
99
can_hibernate = xfpm_string_to_bool (g_hash_table_lookup (hash, "can-hibernate"));
100
auth_suspend = xfpm_string_to_bool (g_hash_table_lookup (hash, "auth-suspend"));
101
auth_hibernate = xfpm_string_to_bool (g_hash_table_lookup (hash, "auth-hibernate"));
102
has_lcd_brightness = xfpm_string_to_bool (g_hash_table_lookup (hash, "has-brightness"));
103
has_sleep_button = xfpm_string_to_bool (g_hash_table_lookup (hash, "sleep-button"));
104
has_power_button = xfpm_string_to_bool (g_hash_table_lookup (hash, "power-button"));
105
has_hibernate_button = xfpm_string_to_bool (g_hash_table_lookup (hash, "hibernate-button"));
106
can_shutdown = xfpm_string_to_bool (g_hash_table_lookup (hash, "can-shutdown"));
107
can_spin_down = xfpm_string_to_bool (g_hash_table_lookup (hash, "can-spin"));
108
devkit_disk = xfpm_string_to_bool (g_hash_table_lookup (hash, "devkit-disk"));
110
g_print ("---------------------------------------------------\n");
111
g_print (" Xfce power manager version %s\n", VERSION);
113
g_print (_("With HAL support\n"));
115
g_print (_("Without HAL support\n"));
118
g_print (_("With policykit support\n"));
120
g_print (_("Without policykit support\n"));
122
#ifdef WITH_NETWORK_MANAGER
123
g_print (_("With network manager support\n"));
125
g_print (_("Without network manager support\n"));
128
g_print (_("With DPMS support\n"));
130
g_print (_("Without DPMS support\n"));
132
g_print ("---------------------------------------------------\n");
146
xfpm_bool_to_local_string (can_suspend),
148
xfpm_bool_to_local_string (can_hibernate),
149
_("Can spin down hard disks"),
150
xfpm_bool_to_local_string (devkit_disk),
151
_("Authorized to suspend"),
152
xfpm_bool_to_local_string (auth_suspend),
153
_("Authorized to hibernate"),
154
xfpm_bool_to_local_string (auth_hibernate),
155
_("Authorized to shutdown"),
156
xfpm_bool_to_local_string (can_shutdown),
157
_("Authorized to spin down hard disks"),
158
xfpm_bool_to_local_string (can_spin_down),
159
_("Has brightness panel"),
160
xfpm_bool_to_local_string (has_lcd_brightness),
161
_("Has power button"),
162
xfpm_bool_to_local_string (has_power_button),
163
_("Has hibernate button"),
164
xfpm_bool_to_local_string (has_hibernate_button),
165
_("Has sleep button"),
166
xfpm_bool_to_local_string (has_sleep_button),
168
xfpm_bool_to_local_string (has_lid));
172
xfpm_dump_remote (DBusGConnection *bus)
175
GError *error = NULL;
178
proxy = dbus_g_proxy_new_for_name (bus,
179
"org.xfce.PowerManager",
180
"/org/xfce/PowerManager",
181
"org.xfce.Power.Manager");
183
xfpm_manager_dbus_client_get_config (proxy,
187
g_object_unref (proxy);
191
g_error ("%s", error->message);
196
g_hash_table_destroy (hash);
73
199
static void G_GNUC_NORETURN
74
xfpm_start (DBusGConnection *bus)
200
xfpm_start (DBusGConnection *bus, const gchar *client_id, gboolean dump)
76
202
XfpmManager *manager;
78
203
GError *error = NULL;
80
TRACE ("Starting the power manager");
81
session = xfpm_session_new ();
83
if ( client_id != NULL )
84
xfpm_session_set_client_id (session, client_id);
86
xfpm_session_real_init (session);
88
manager = xfpm_manager_new (bus);
205
XFPM_DEBUG ("Starting the power manager");
207
manager = xfpm_manager_new (bus, client_id);
90
209
if ( xfce_posix_signal_handler_init (&error))
92
xfce_posix_signal_handler_set_handler(SIGHUP,
96
xfce_posix_signal_handler_set_handler(SIGINT,
100
xfce_posix_signal_handler_set_handler(SIGTERM,
211
xfce_posix_signal_handler_set_handler (SIGHUP,
215
xfce_posix_signal_handler_set_handler (SIGINT,
219
xfce_posix_signal_handler_set_handler (SIGTERM,
106
225
g_warning ("Unable to set up POSIX signal handlers: %s", error->message);
226
g_error_free (error);
110
229
xfpm_manager_start (manager);
234
hash = xfpm_manager_get_config (manager);
236
g_hash_table_destroy (hash);
113
g_object_unref (session);
242
g_object_unref (manager);
115
244
exit (EXIT_SUCCESS);
118
int main(int argc, char **argv)
247
int main (int argc, char **argv)
120
249
DBusGConnection *bus;
121
250
GError *error = NULL;
126
255
gboolean config = FALSE;
127
256
gboolean version = FALSE;
128
257
gboolean reload = FALSE;
258
gboolean no_daemon = FALSE;
259
gboolean debug = FALSE;
260
gboolean dump = FALSE;
261
gchar *client_id = NULL;
130
263
GOptionEntry option_entries[] =
132
265
{ "run",'r', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &run, NULL, NULL },
133
266
{ "no-daemon",'\0' , G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &no_daemon, N_("Do not daemonize"), NULL },
267
{ "debug",'\0' , G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &debug, N_("Enable debugging"), NULL },
268
{ "dump",'\0' , G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &dump, N_("Dump all information"), NULL },
134
269
{ "restart", '\0', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &reload, N_("Restart the running instance of Xfce power manager"), NULL},
135
270
{ "customize", 'c', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &config, N_("Show the configuration dialog"), NULL },
136
271
{ "quit", 'q', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &quit, N_("Quit any running xfce power manager"), NULL },
171
if ( run + quit + config + version > 1 )
173
g_printerr(_("Too many arguments"));
175
g_printerr(_("Type '%s --help' for usage."), G_LOG_DOMAIN);
308
xfpm_debug_init (debug);
180
if ( no_daemon == FALSE && daemon(0,0) )
310
if ( dump == FALSE && debug == FALSE && no_daemon == FALSE && daemon(0,0) )
182
312
g_critical ("Could not daemonize");
185
bus = dbus_g_bus_get(DBUS_BUS_SESSION, &error);
315
bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
189
gchar *message = g_strdup(_("Unable to get connection to the message bus session"));
190
message = g_strdup_printf("%s: ",error->message);
192
xfpm_error (_("Xfce Power Manager"),
195
g_error ("%s: \n", message);
319
xfce_dialog_show_error (NULL,
322
_("Unable to get connection to the message bus session"));
323
g_error ("%s: \n", error->message);
200
if (!xfpm_dbus_name_has_owner(dbus_g_connection_get_connection(bus),
201
"org.xfce.PowerManager") )
328
if (!xfpm_dbus_name_has_owner (dbus_g_connection_get_connection(bus),
329
"org.xfce.PowerManager") )
203
g_print(_("Xfce power manager is not running"));
331
g_print (_("Xfce power manager is not running"));
205
333
return EXIT_SUCCESS;
209
proxy = dbus_g_proxy_new_for_name(bus,
210
"org.xfce.PowerManager",
211
"/org/xfce/PowerManager",
212
"org.xfce.Power.Manager");
337
proxy = dbus_g_proxy_new_for_name (bus,
338
"org.xfce.PowerManager",
339
"/org/xfce/PowerManager",
340
"org.xfce.Power.Manager");
215
343
g_critical ("Failed to get proxy");
216
344
dbus_g_connection_unref(bus);
217
345
return EXIT_FAILURE;
219
xfpm_manager_dbus_client_quit(proxy , &error);
347
xfpm_manager_dbus_client_quit (proxy , &error);
220
348
g_object_unref (proxy);
246
if (!xfpm_dbus_name_has_owner(dbus_g_connection_get_connection (bus), "org.xfce.PowerManager") &&
247
!xfpm_dbus_name_has_owner (dbus_g_connection_get_connection(bus), "org.freedesktop.PowerManagement"))
374
if (!xfpm_dbus_name_has_owner (dbus_g_connection_get_connection (bus), "org.xfce.PowerManager") &&
375
!xfpm_dbus_name_has_owner (dbus_g_connection_get_connection (bus), "org.freedesktop.PowerManagement"))
249
377
g_print ("Xfce power manager is not running\n");
378
xfpm_start (bus, client_id, dump);
252
proxy = dbus_g_proxy_new_for_name(bus,
253
"org.xfce.PowerManager",
254
"/org/xfce/PowerManager",
255
"org.xfce.Power.Manager");
381
proxy = dbus_g_proxy_new_for_name (bus,
382
"org.xfce.PowerManager",
383
"/org/xfce/PowerManager",
384
"org.xfce.Power.Manager");
258
387
g_critical ("Failed to get proxy");
259
dbus_g_connection_unref(bus);
388
dbus_g_connection_unref (bus);
260
389
return EXIT_FAILURE;