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#ifndef CHROME_BROWSER_UI_ASH_VOLUME_CONTROLLER_CHROMEOS_H_
6#define CHROME_BROWSER_UI_ASH_VOLUME_CONTROLLER_CHROMEOS_H_
7
8#include "ash/volume_control_delegate.h"
9#include "base/basictypes.h"
10#include "base/compiler_specific.h"
11#include "chromeos/audio/cras_audio_handler.h"
12
13// A class which controls volume when F8-10 or a multimedia key for volume is
14// pressed.
15class VolumeController : public ash::VolumeControlDelegate,
16                         public chromeos::CrasAudioHandler::AudioObserver {
17 public:
18  VolumeController();
19  virtual ~VolumeController();
20
21  // Overridden from ash::VolumeControlDelegate:
22  virtual bool HandleVolumeMute(const ui::Accelerator& accelerator) OVERRIDE;
23  virtual bool HandleVolumeDown(const ui::Accelerator& accelerator) OVERRIDE;
24  virtual bool HandleVolumeUp(const ui::Accelerator& accelerator) OVERRIDE;
25
26  // Overridden from chromeos::CrasAudioHandler::AudioObserver.
27  virtual void OnOutputVolumeChanged() OVERRIDE;
28  virtual void OnOutputMuteChanged() OVERRIDE;
29
30 private:
31
32  DISALLOW_COPY_AND_ASSIGN(VolumeController);
33};
34
35#endif  // CHROME_BROWSER_UI_ASH_VOLUME_CONTROLLER_CHROMEOS_H_
36