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
5#ifndef ASH_SYSTEM_BRIGHTNESS_CONTROL_DELEGATE_H_
6#define ASH_SYSTEM_BRIGHTNESS_CONTROL_DELEGATE_H_
7
8#include "base/callback.h"
9
10namespace ui {
11class Accelerator;
12}  // namespace ui
13
14namespace ash {
15
16// Delegate for controlling the brightness.
17class BrightnessControlDelegate {
18 public:
19  virtual ~BrightnessControlDelegate() {}
20
21  // Handles an accelerator-driven request to decrease or increase the screen
22  // brightness.
23  virtual bool HandleBrightnessDown(const ui::Accelerator& accelerator) = 0;
24  virtual bool HandleBrightnessUp(const ui::Accelerator& accelerator) = 0;
25
26  // Requests that the brightness be set to |percent|, in the range
27  // [0.0, 100.0].  |gradual| specifies whether the transition to the new
28  // brightness should be animated or instantaneous.
29  virtual void SetBrightnessPercent(double percent, bool gradual) = 0;
30
31  // Asynchronously invokes |callback| with the current brightness, in the range
32  // [0.0, 100.0].
33  virtual void GetBrightnessPercent(
34      const base::Callback<void(double)>& callback) = 0;
35};
36
37}  // namespace ash
38
39#endif  // ASH_SYSTEM_BRIGHTNESS_CONTROL_DELEGATE_H_
40