Chromium Code Reviews| Index: chrome/browser/chromeos/dbus/power_manager_client.cc |
| diff --git a/chrome/browser/chromeos/dbus/power_manager_client.cc b/chrome/browser/chromeos/dbus/power_manager_client.cc |
| index 5b95f0e1cf3016ad4d71f230b85afec18fd9543c..b516f99a048fddbcc366639d2af93eab29593ee8 100644 |
| --- a/chrome/browser/chromeos/dbus/power_manager_client.cc |
| +++ b/chrome/browser/chromeos/dbus/power_manager_client.cc |
| @@ -83,6 +83,15 @@ class PowerManagerClientImpl : public PowerManagerClient { |
| weak_ptr_factory_.GetWeakPtr()), |
| base::Bind(&PowerManagerClientImpl::SignalConnected, |
| weak_ptr_factory_.GetWeakPtr())); |
| + |
| + // Monitor the D-Bus signal for power state changed signals. |
| + power_manager_proxy_->ConnectToSignal( |
| + power_manager::kPowerManagerInterface, |
| + power_manager::kPowerStateChangedSignal, |
| + base::Bind(&PowerManagerClientImpl::PowerStateChangedSignalReceived, |
| + weak_ptr_factory_.GetWeakPtr()), |
| + base::Bind(&PowerManagerClientImpl::SignalConnected, |
| + weak_ptr_factory_.GetWeakPtr())); |
| } |
| virtual ~PowerManagerClientImpl() { |
| @@ -211,6 +220,21 @@ class PowerManagerClientImpl : public PowerManagerClient { |
| VLOG(1) << "screen brightness increased: " << response->ToString(); |
| } |
| + // Called when a power state changed signal is received. |
| + void PowerStateChangedSignalReceived(dbus::Signal* signal) { |
| + VLOG(1) << "Received power state changed signal."; |
| + dbus::MessageReader reader(signal); |
| + std::string arg; |
|
satorux1
2011/11/23 01:03:27
arg -> something more descriptive, like power_stat
Simon Que
2011/11/23 19:24:17
Done.
|
| + if (!reader.PopString(&arg)) { |
| + LOG(ERROR) << "Error reading signal args: " << signal->ToString(); |
| + return; |
| + } |
| + if (arg != "on") |
| + return; |
| + // Notify all observers of resume event. |
| + FOR_EACH_OBSERVER(Observer, observers_, SystemResumed()); |
| + } |
| + |
| // Called when a power supply polling signal is received. |
| void PowerSupplyPollReceived(dbus::Signal* unused_signal) { |
| VLOG(1) << "Received power supply poll signal."; |