| Index: chromeos/dbus/power_manager_client.cc
|
| diff --git a/chromeos/dbus/power_manager_client.cc b/chromeos/dbus/power_manager_client.cc
|
| index 26f67055d9dbabe2189c448c9ab4ce504d8d2de3..ca50df7794a0ddb1d5bd9c3beb8077a1a4915021 100644
|
| --- a/chromeos/dbus/power_manager_client.cc
|
| +++ b/chromeos/dbus/power_manager_client.cc
|
| @@ -111,6 +111,15 @@ class PowerManagerClientImpl : public PowerManagerClient {
|
| weak_ptr_factory_.GetWeakPtr()),
|
| base::Bind(&PowerManagerClientImpl::SignalConnected,
|
| weak_ptr_factory_.GetWeakPtr()));
|
| +
|
| + power_manager_proxy_->ConnectToSignal(
|
| + power_manager::kPowerManagerInterface,
|
| + power_manager::kSoftwareScreenDimmingRequestedSignal,
|
| + base::Bind(
|
| + &PowerManagerClientImpl::SoftwareScreenDimmingRequestedReceived,
|
| + weak_ptr_factory_.GetWeakPtr()),
|
| + base::Bind(&PowerManagerClientImpl::SignalConnected,
|
| + weak_ptr_factory_.GetWeakPtr()));
|
| }
|
|
|
| virtual ~PowerManagerClientImpl() {
|
| @@ -435,7 +444,6 @@ class PowerManagerClientImpl : public PowerManagerClient {
|
| FOR_EACH_OBSERVER(Observer, observers_, UnlockScreenFailed());
|
| }
|
|
|
| -
|
| void IdleNotifySignalReceived(dbus::Signal* signal) {
|
| dbus::MessageReader reader(signal);
|
| int64 threshold = 0;
|
| @@ -464,6 +472,28 @@ class PowerManagerClientImpl : public PowerManagerClient {
|
| FOR_EACH_OBSERVER(Observer, observers_, ActiveNotify());
|
| }
|
|
|
| + void SoftwareScreenDimmingRequestedReceived(dbus::Signal* signal) {
|
| + dbus::MessageReader reader(signal);
|
| + int32 signal_state = 0;
|
| + if (!reader.PopInt32(&signal_state)) {
|
| + LOG(ERROR) << "Screen dimming signal had incorrect parameters: "
|
| + << signal->ToString();
|
| + return;
|
| + }
|
| +
|
| + Observer::ScreenDimmingState state = Observer::SCREEN_DIMMING_NONE;
|
| + switch (signal_state) {
|
| + case power_manager::kSoftwareScreenDimmingNone:
|
| + state = Observer::SCREEN_DIMMING_NONE;
|
| + break;
|
| + case power_manager::kSoftwareScreenDimmingIdle:
|
| + state = Observer::SCREEN_DIMMING_IDLE;
|
| + break;
|
| + default:
|
| + LOG(ERROR) << "Unhandled screen dimming state " << signal_state;
|
| + }
|
| + FOR_EACH_OBSERVER(Observer, observers_, ScreenDimmingRequested(state));
|
| + }
|
|
|
| dbus::ObjectProxy* power_manager_proxy_;
|
| dbus::ObjectProxy* session_manager_proxy_;
|
|
|