Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "power_manager/powerd.h" | 5 #include "power_manager/powerd.h" |
| 6 | 6 |
| 7 #include <dbus/dbus-glib-lowlevel.h> | 7 #include <dbus/dbus-glib-lowlevel.h> |
| 8 #include <gdk/gdkx.h> | 8 #include <gdk/gdkx.h> |
| 9 #include <sys/wait.h> | 9 #include <sys/wait.h> |
| 10 #include <X11/extensions/dpms.h> | 10 #include <X11/extensions/dpms.h> |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 22 | 22 |
| 23 namespace power_manager { | 23 namespace power_manager { |
| 24 | 24 |
| 25 // The minimum delta between timers to avoid timer precision issues | 25 // The minimum delta between timers to avoid timer precision issues |
| 26 static const int64 kFuzzMS = 100; | 26 static const int64 kFuzzMS = 100; |
| 27 | 27 |
| 28 // The minimum delta between timers when we want to give a user time to react | 28 // The minimum delta between timers when we want to give a user time to react |
| 29 static const int64 kReactMS = 30000; | 29 static const int64 kReactMS = 30000; |
| 30 | 30 |
| 31 // Lock the screen | 31 // Lock the screen |
| 32 static void SendSignalToSessionManager(const char *signal) { | 32 static void SendSignalToSessionManager(const char* signal) { |
| 33 DBusGProxy *proxy = dbus_g_proxy_new_for_name( | 33 DBusGProxy* proxy = dbus_g_proxy_new_for_name( |
| 34 chromeos::dbus::GetSystemBusConnection().g_connection(), | 34 chromeos::dbus::GetSystemBusConnection().g_connection(), |
| 35 login_manager::kSessionManagerServiceName, | 35 login_manager::kSessionManagerServiceName, |
| 36 login_manager::kSessionManagerServicePath, | 36 login_manager::kSessionManagerServicePath, |
| 37 login_manager::kSessionManagerInterface); | 37 login_manager::kSessionManagerInterface); |
| 38 CHECK(proxy); | 38 CHECK(proxy); |
| 39 GError *error = NULL; | 39 GError* error = NULL; |
| 40 if (!dbus_g_proxy_call(proxy, signal, &error, G_TYPE_INVALID, | 40 if (!dbus_g_proxy_call(proxy, signal, &error, G_TYPE_INVALID, |
| 41 G_TYPE_INVALID)) { | 41 G_TYPE_INVALID)) { |
| 42 LOG(ERROR) << "Error sending signal: " << error->message; | 42 LOG(ERROR) << "Error sending signal: " << error->message; |
| 43 } | 43 } |
| 44 g_object_unref(proxy); | 44 g_object_unref(proxy); |
| 45 } | 45 } |
| 46 | 46 |
| 47 // A message filter to receive signals. | 47 // A message filter to receive signals. |
| 48 static DBusHandlerResult DBusMessageHandler(DBusConnection*, | 48 static DBusHandlerResult DBusMessageHandler(DBusConnection*, |
| 49 DBusMessage* message, | 49 DBusMessage* message, |
| 50 void*) { | 50 void*) { |
|
tfarina
2010/06/05 01:08:56
I know we are not using this paramenter, but would
| |
| 51 if (dbus_message_is_signal(message, kPowerManagerInterface, | 51 if (dbus_message_is_signal(message, kPowerManagerInterface, |
| 52 kRequestLockScreenSignal)) { | 52 kRequestLockScreenSignal)) { |
| 53 LOG(INFO) << "RequestLockScreen event"; | 53 LOG(INFO) << "RequestLockScreen event"; |
| 54 SendSignalToSessionManager("LockScreen"); | 54 SendSignalToSessionManager("LockScreen"); |
| 55 } else if (dbus_message_is_signal(message, kPowerManagerInterface, | 55 } else if (dbus_message_is_signal(message, kPowerManagerInterface, |
| 56 kRequestUnlockScreenSignal)) { | 56 kRequestUnlockScreenSignal)) { |
| 57 LOG(INFO) << "RequestUnlockScreen event"; | 57 LOG(INFO) << "RequestUnlockScreen event"; |
| 58 SendSignalToSessionManager("UnlockScreen"); | 58 SendSignalToSessionManager("UnlockScreen"); |
| 59 } else if (dbus_message_is_signal(message, kPowerManagerInterface, | 59 } else if (dbus_message_is_signal(message, kPowerManagerInterface, |
| 60 kScreenIsLockedSignal)) { | 60 kScreenIsLockedSignal)) { |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 75 pid_t pid = fork(); | 75 pid_t pid = fork(); |
| 76 if (pid == 0) { | 76 if (pid == 0) { |
| 77 // Detach from parent so that powerd doesn't need to wait around for us | 77 // Detach from parent so that powerd doesn't need to wait around for us |
| 78 setsid(); | 78 setsid(); |
| 79 exit(fork() == 0 ? system(cmd) : 0); | 79 exit(fork() == 0 ? system(cmd) : 0); |
| 80 } else if (pid > 0) { | 80 } else if (pid > 0) { |
| 81 waitpid(pid, NULL, 0); | 81 waitpid(pid, NULL, 0); |
| 82 } | 82 } |
| 83 } | 83 } |
| 84 | 84 |
| 85 static void RegisterDBusMessageHandler(Daemon *object) { | 85 static void RegisterDBusMessageHandler(Daemon* object) { |
| 86 const std::string filter = StringPrintf("type='signal', interface='%s'", | 86 const std::string filter = StringPrintf("type='signal', interface='%s'", |
| 87 kPowerManagerInterface); | 87 kPowerManagerInterface); |
| 88 | 88 |
| 89 DBusError error; | 89 DBusError error; |
| 90 dbus_error_init(&error); | 90 dbus_error_init(&error); |
| 91 DBusConnection* connection = dbus_g_connection_get_connection( | 91 DBusConnection* connection = dbus_g_connection_get_connection( |
| 92 chromeos::dbus::GetSystemBusConnection().g_connection()); | 92 chromeos::dbus::GetSystemBusConnection().g_connection()); |
| 93 dbus_bus_add_match(connection, filter.c_str(), &error); | 93 dbus_bus_add_match(connection, filter.c_str(), &error); |
| 94 if (dbus_error_is_set(&error)) { | 94 if (dbus_error_is_set(&error)) { |
| 95 LOG(ERROR) << "Failed to add a filter:" << error.name << ", message=" | 95 LOG(ERROR) << "Failed to add a filter:" << error.name << ", message=" |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 290 LOG(INFO) << "Key press: Brightness up"; | 290 LOG(INFO) << "Key press: Brightness up"; |
| 291 } else if (xevent->xkey.keycode == daemon->key_brightness_down_) { | 291 } else if (xevent->xkey.keycode == daemon->key_brightness_down_) { |
| 292 LOG(INFO) << "Key press: Brightness down"; | 292 LOG(INFO) << "Key press: Brightness down"; |
| 293 } else { | 293 } else { |
| 294 return GDK_FILTER_CONTINUE; | 294 return GDK_FILTER_CONTINUE; |
| 295 } | 295 } |
| 296 daemon->ctl_->ReadBrightness(); | 296 daemon->ctl_->ReadBrightness(); |
| 297 } | 297 } |
| 298 return GDK_FILTER_CONTINUE; | 298 return GDK_FILTER_CONTINUE; |
| 299 } | 299 } |
| 300 | 300 |
|
tfarina
2010/06/05 01:08:56
remove this blank line;
| |
| 301 | 301 |
| 302 } // namespace power_manager | 302 } // namespace power_manager |
| OLD | NEW |