diff options
author | derat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-25 19:21:17 +0000 |
---|---|---|
committer | derat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-25 19:21:17 +0000 |
commit | 9b99ebeb3d7c52fb76090044c25277c4a8ce33f5 (patch) | |
tree | 78d2a278f2ce946d6e498a090007b386660c60a8 /chrome/browser/chromeos/dbus | |
parent | 4e786938a31f17f6f4d2df48a91856db04f4e28e (diff) | |
download | chromium_src-9b99ebeb3d7c52fb76090044c25277c4a8ce33f5.zip chromium_src-9b99ebeb3d7c52fb76090044c25277c4a8ce33f5.tar.gz chromium_src-9b99ebeb3d7c52fb76090044c25277c4a8ce33f5.tar.bz2 |
chromeos: Export SetDisplaySoftwareDimming D-Bus method.
This will replace the SoftwareScreenDimmingRequested signals
currently emitted by powerd.
BUG=221391
Review URL: https://chromiumcodereview.appspot.com/12770015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190456 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/dbus')
-rw-r--r-- | chrome/browser/chromeos/dbus/display_power_service_provider.cc | 21 | ||||
-rw-r--r-- | chrome/browser/chromeos/dbus/display_power_service_provider.h | 12 |
2 files changed, 29 insertions, 4 deletions
diff --git a/chrome/browser/chromeos/dbus/display_power_service_provider.cc b/chrome/browser/chromeos/dbus/display_power_service_provider.cc index 6b92d44..5de5c95 100644 --- a/chrome/browser/chromeos/dbus/display_power_service_provider.cc +++ b/chrome/browser/chromeos/dbus/display_power_service_provider.cc @@ -29,6 +29,13 @@ void DisplayPowerServiceProvider::Start( weak_ptr_factory_.GetWeakPtr()), base::Bind(&DisplayPowerServiceProvider::OnExported, weak_ptr_factory_.GetWeakPtr())); + exported_object->ExportMethod( + kLibCrosServiceInterface, + kSetDisplaySoftwareDimming, + base::Bind(&DisplayPowerServiceProvider::SetDisplaySoftwareDimming, + weak_ptr_factory_.GetWeakPtr()), + base::Bind(&DisplayPowerServiceProvider::OnExported, + weak_ptr_factory_.GetWeakPtr())); } void DisplayPowerServiceProvider::OnExported(const std::string& interface_name, @@ -63,4 +70,18 @@ void DisplayPowerServiceProvider::SetDisplayPower( response_sender.Run(dbus::Response::FromMethodCall(method_call)); } +void DisplayPowerServiceProvider::SetDisplaySoftwareDimming( + dbus::MethodCall* method_call, + dbus::ExportedObject::ResponseSender response_sender) { + dbus::MessageReader reader(method_call); + bool dimmed = false; + if (reader.PopBool(&dimmed)) { + ash::Shell::GetInstance()->SetDimming(dimmed); + } else { + LOG(ERROR) << "Unable to parse " << kSetDisplaySoftwareDimming + << " request"; + } + response_sender.Run(dbus::Response::FromMethodCall(method_call)); +} + } // namespace chromeos diff --git a/chrome/browser/chromeos/dbus/display_power_service_provider.h b/chrome/browser/chromeos/dbus/display_power_service_provider.h index 196d870..cc42db8 100644 --- a/chrome/browser/chromeos/dbus/display_power_service_provider.h +++ b/chrome/browser/chromeos/dbus/display_power_service_provider.h @@ -21,8 +21,9 @@ class Response; namespace chromeos { -// This class exports a "SetDisplayPower" D-Bus method that the power -// manager calls to instruct Chrome to turn various displays on or off. +// This class exports "SetDisplayPower" and "SetDisplaySoftwareDimming" +// D-Bus methods that the power manager calls to instruct Chrome to turn +// various displays on or off or dim them. class DisplayPowerServiceProvider : public CrosDBusService::ServiceProviderInterface { public: @@ -34,15 +35,18 @@ class DisplayPowerServiceProvider scoped_refptr<dbus::ExportedObject> exported_object) OVERRIDE; private: - // Called from ExportedObject when SetDisplayPower() is exported as a D-Bus + // Called from ExportedObject when a handler is exported as a D-Bus // method or failed to be exported. void OnExported(const std::string& interface_name, const std::string& method_name, bool success); - // Called on UI thread in response to a D-Bus request. + // Called on UI thread in response to D-Bus requests. void SetDisplayPower(dbus::MethodCall* method_call, dbus::ExportedObject::ResponseSender response_sender); + void SetDisplaySoftwareDimming( + dbus::MethodCall* method_call, + dbus::ExportedObject::ResponseSender response_sender); // Keep this last so that all weak pointers will be invalidated at the // beginning of destruction. |