// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef ASH_VOLUME_CONTROL_DELEGATE_H_ #define ASH_VOLUME_CONTROL_DELEGATE_H_ namespace ui { class Accelerator; } // namespace ui namespace ash { // Delegate for controlling the volume. class VolumeControlDelegate { public: virtual ~VolumeControlDelegate() {} virtual bool HandleVolumeMute(const ui::Accelerator& accelerator) = 0; virtual bool HandleVolumeDown(const ui::Accelerator& accelerator) = 0; virtual bool HandleVolumeUp(const ui::Accelerator& accelerator) = 0; // Is the system audio muted? virtual bool IsAudioMuted() const = 0; // Mutes/Unmutes the audio system. virtual void SetAudioMuted(bool muted) = 0; // Gets the volume level. The range is [0, 1.0]. virtual float GetVolumeLevel() const = 0; // Sets the volume level. The range is [0, 1.0]. virtual void SetVolumeLevel(float level) = 0; // Requests that the volume be set to |percent|, in the range // [0.0, 100.0]. virtual void SetVolumePercent(double percent) = 0; }; } // namespace ash #endif // ASH_VOLUME_CONTROL_DELEGATE_H_