1// Copyright (c) 2012 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#include "chrome/browser/ui/ash/brightness_controller_chromeos.h"
6
7#include "chromeos/dbus/dbus_thread_manager.h"
8#include "chromeos/dbus/power_manager_client.h"
9#include "content/public/browser/user_metrics.h"
10#include "ui/base/accelerators/accelerator.h"
11
12bool BrightnessController::HandleBrightnessDown(
13    const ui::Accelerator& accelerator) {
14  if (accelerator.key_code() == ui::VKEY_BRIGHTNESS_DOWN)
15    content::RecordAction(
16        content::UserMetricsAction("Accel_BrightnessDown_F6"));
17
18  chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->
19      DecreaseScreenBrightness(true);
20  return true;
21}
22
23bool BrightnessController::HandleBrightnessUp(
24    const ui::Accelerator& accelerator) {
25  if (accelerator.key_code() == ui::VKEY_BRIGHTNESS_UP)
26    content::RecordAction(content::UserMetricsAction("Accel_BrightnessUp_F7"));
27
28  chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->
29      IncreaseScreenBrightness();
30  return true;
31}
32
33void BrightnessController::SetBrightnessPercent(double percent, bool gradual) {
34  chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->
35      SetScreenBrightnessPercent(percent, gradual);
36}
37
38void BrightnessController::GetBrightnessPercent(
39    const base::Callback<void(double)>& callback) {
40  chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->
41      GetScreenBrightnessPercent(callback);
42}
43