Commit 9b99ebeb authored by derat@chromium.org's avatar derat@chromium.org

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
parent 4e786938
......@@ -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
......@@ -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.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment