brightness_controller_chromeos.cc 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // Copyright 2013 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "ash/system/brightness/brightness_controller_chromeos.h"
  5. #include <utility>
  6. #include "base/metrics/user_metrics.h"
  7. #include "chromeos/dbus/power/power_manager_client.h"
  8. #include "chromeos/dbus/power_manager/backlight.pb.h"
  9. #include "ui/base/accelerators/accelerator.h"
  10. namespace ash {
  11. namespace system {
  12. void BrightnessControllerChromeos::HandleBrightnessDown(
  13. const ui::Accelerator& accelerator) {
  14. if (accelerator.key_code() == ui::VKEY_BRIGHTNESS_DOWN)
  15. base::RecordAction(base::UserMetricsAction("Accel_BrightnessDown_F6"));
  16. chromeos::PowerManagerClient::Get()->DecreaseScreenBrightness(true);
  17. }
  18. void BrightnessControllerChromeos::HandleBrightnessUp(
  19. const ui::Accelerator& accelerator) {
  20. if (accelerator.key_code() == ui::VKEY_BRIGHTNESS_UP)
  21. base::RecordAction(base::UserMetricsAction("Accel_BrightnessUp_F7"));
  22. chromeos::PowerManagerClient::Get()->IncreaseScreenBrightness();
  23. }
  24. void BrightnessControllerChromeos::SetBrightnessPercent(double percent,
  25. bool gradual) {
  26. power_manager::SetBacklightBrightnessRequest request;
  27. request.set_percent(percent);
  28. request.set_transition(
  29. gradual
  30. ? power_manager::SetBacklightBrightnessRequest_Transition_FAST
  31. : power_manager::SetBacklightBrightnessRequest_Transition_INSTANT);
  32. request.set_cause(
  33. power_manager::SetBacklightBrightnessRequest_Cause_USER_REQUEST);
  34. chromeos::PowerManagerClient::Get()->SetScreenBrightness(request);
  35. }
  36. void BrightnessControllerChromeos::GetBrightnessPercent(
  37. base::OnceCallback<void(absl::optional<double>)> callback) {
  38. chromeos::PowerManagerClient::Get()->GetScreenBrightnessPercent(
  39. std::move(callback));
  40. }
  41. } // namespace system
  42. } // namespace ash