summaryrefslogtreecommitdiffstats
path: root/chromeos
diff options
context:
space:
mode:
authordisher@chromium.org <disher@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-24 17:01:26 +0000
committerdisher@chromium.org <disher@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-24 17:01:26 +0000
commit28743a98da5b8e5937fe1bfadece1211cff3e015 (patch)
tree727b7c9d269149033ed012b6b4aa35601865869b /chromeos
parentb436a69ffe55d22bdeddfb8b1229962a510203cc (diff)
downloadchromium_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.cc24
-rw-r--r--chromeos/dbus/power_manager_client.h7
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) {}