1 // Copyright 2014 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.
5 #ifndef ASH_SYSTEM_AUDIO_TRAY_AUDIO_DELEGATE_H_
6 #define ASH_SYSTEM_AUDIO_TRAY_AUDIO_DELEGATE_H_
11 class ASH_EXPORT TrayAudioDelegate
{
14 enum { kNoAudioDeviceIcon
= -1 };
16 virtual ~TrayAudioDelegate() {}
18 // Sets the volume level of the output device to the minimum level which is
19 // deemed to be audible.
20 virtual void AdjustOutputVolumeToAudibleLevel() = 0;
22 // Gets the default level in the range 0%-100% at which the output device
24 virtual int GetOutputDefaultVolumeMuteLevel() = 0;
26 // Gets the icon to use for the active output device.
27 virtual int GetActiveOutputDeviceIconId() = 0;
29 // Returns the volume level of the output device in the range 0%-100%.
30 virtual int GetOutputVolumeLevel() = 0;
32 // Returns true if the device has alternative inputs or outputs.
33 virtual bool HasAlternativeSources() = 0;
35 // Returns whether the output volume is muted.
36 virtual bool IsOutputAudioMuted() = 0;
38 // Sets the mute state of the output device.
39 virtual void SetOutputAudioIsMuted(bool is_muted
) = 0;
41 // Sets the volume level of the output device in the range 0%-100%
42 virtual void SetOutputVolumeLevel(int level
) = 0;
48 #endif // ASH_SYSTEM_AUDIO_TRAY_AUDIO_DELEGATE_H_