summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/dbus
diff options
context:
space:
mode:
authorderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-25 19:21:17 +0000
committerderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-25 19:21:17 +0000
commit9b99ebeb3d7c52fb76090044c25277c4a8ce33f5 (patch)
tree78d2a278f2ce946d6e498a090007b386660c60a8 /chrome/browser/chromeos/dbus
parent4e786938a31f17f6f4d2df48a91856db04f4e28e (diff)
downloadchromium_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.cc21
-rw-r--r--chrome/browser/chromeos/dbus/display_power_service_provider.h12
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.