diff options
author | disher@chromium.org <disher@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-24 17:01:26 +0000 |
---|---|---|
committer | disher@chromium.org <disher@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-24 17:01:26 +0000 |
commit | 28743a98da5b8e5937fe1bfadece1211cff3e015 (patch) | |
tree | 727b7c9d269149033ed012b6b4aa35601865869b /chromeos | |
parent | b436a69ffe55d22bdeddfb8b1229962a510203cc (diff) | |
download | chromium_src-28743a98da5b8e5937fe1bfadece1211cff3e015.zip chromium_src-28743a98da5b8e5937fe1bfadece1211cff3e015.tar.gz chromium_src-28743a98da5b8e5937fe1bfadece1211cff3e015.tar.bz2 |
DBus part of monitor configuration change
Added hooks to respond to the new power_manager::kSetScreenPowerSignal DBus signal. This change doesn't start to act on this event but does expose how we will receive it in order to simplify a following change which does use it.
This change is expected to result in no behavioural change.
BUG=chromium:126493
TEST=Manually tested that brightness behaviour hasn't changed on a Lumpy.
Review URL: https://chromiumcodereview.appspot.com/10424009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@138816 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos')
-rw-r--r-- | chromeos/dbus/power_manager_client.cc | 24 | ||||
-rw-r--r-- | chromeos/dbus/power_manager_client.h | 7 |
2 files changed, 31 insertions, 0 deletions
diff --git a/chromeos/dbus/power_manager_client.cc b/chromeos/dbus/power_manager_client.cc index e09e2f8..f25fb2d 100644 --- a/chromeos/dbus/power_manager_client.cc +++ b/chromeos/dbus/power_manager_client.cc @@ -52,6 +52,14 @@ class PowerManagerClientImpl : public PowerManagerClient { power_manager_proxy_->ConnectToSignal( power_manager::kPowerManagerInterface, + power_manager::kSetScreenPowerSignal, + base::Bind(&PowerManagerClientImpl::ScreenPowerSignalReceived, + weak_ptr_factory_.GetWeakPtr()), + base::Bind(&PowerManagerClientImpl::SignalConnected, + weak_ptr_factory_.GetWeakPtr())); + + power_manager_proxy_->ConnectToSignal( + power_manager::kPowerManagerInterface, power_manager::kPowerSupplyPollSignal, base::Bind(&PowerManagerClientImpl::PowerSupplyPollReceived, weak_ptr_factory_.GetWeakPtr()), @@ -310,6 +318,22 @@ class PowerManagerClientImpl : public PowerManagerClient { BrightnessChanged(brightness_level, user_initiated)); } + void ScreenPowerSignalReceived(dbus::Signal* signal) { + dbus::MessageReader reader(signal); + bool dbus_power_on = false; + bool dbus_all_displays = false; + if (reader.PopBool(&dbus_power_on) && + reader.PopBool(&dbus_all_displays)) { + VLOG(1) << "Screen power set to " << dbus_power_on + << " for all displays " << dbus_all_displays; + FOR_EACH_OBSERVER(Observer, observers_, + ScreenPowerSet(dbus_power_on, dbus_all_displays)); + } else { + LOG(ERROR) << "screen power signal had incorrect parameters: " + << signal->ToString(); + } + } + void PowerStateChangedSignalReceived(dbus::Signal* signal) { VLOG(1) << "Received power state changed signal."; dbus::MessageReader reader(signal); diff --git a/chromeos/dbus/power_manager_client.h b/chromeos/dbus/power_manager_client.h index e224395..c52c28e 100644 --- a/chromeos/dbus/power_manager_client.h +++ b/chromeos/dbus/power_manager_client.h @@ -51,6 +51,13 @@ class CHROMEOS_EXPORT PowerManagerClient { // |user_initiated| is true if the action is initiated by the user. virtual void BrightnessChanged(int level, bool user_initiated) {} + // Called when a screen is turned on or off to request that Chrome enable or + // disable the corresponding CRTC for the output. + // |power_on| The new state of the power setting. + // |all_displays| True if this applies to all displays or false if it is + // the internal display only. + virtual void ScreenPowerSet(bool power_on, bool all_displays) {} + // Called when power supply polling takes place. |status| is a data // structure that contains the current state of the power supply. virtual void PowerChanged(const PowerSupplyStatus& status) {} |