Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1093)

Unified Diff: chromeos/dbus/power_manager_client.cc

Issue 10263011: chromeos: Add support for dimming the screen. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix test Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromeos/dbus/power_manager_client.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_;
« no previous file with comments | « chromeos/dbus/power_manager_client.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698