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. 4 5 #ifndef ASH_SYSTEM_AUDIO_TRAY_AUDIO_DELEGATE_H_ 6 #define ASH_SYSTEM_AUDIO_TRAY_AUDIO_DELEGATE_H_ 7 8 namespace ash { 9 namespace system { 10 11 class ASH_EXPORT TrayAudioDelegate { 12 public: 13 14 enum { kNoAudioDeviceIcon = -1 }; 15 ~TrayAudioDelegate()16 virtual ~TrayAudioDelegate() {} 17 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; 21 22 // Gets the default level in the range 0%-100% at which the output device 23 // should be muted. 24 virtual int GetOutputDefaultVolumeMuteLevel() = 0; 25 26 // Gets the icon to use for the active output device. 27 virtual int GetActiveOutputDeviceIconId() = 0; 28 29 // Returns the volume level of the output device in the range 0%-100%. 30 virtual int GetOutputVolumeLevel() = 0; 31 32 // Returns true if the device has alternative inputs or outputs. 33 virtual bool HasAlternativeSources() = 0; 34 35 // Returns whether the output volume is muted. 36 virtual bool IsOutputAudioMuted() = 0; 37 38 // Sets the mute state of the output device. 39 virtual void SetOutputAudioIsMuted(bool is_muted) = 0; 40 41 // Sets the volume level of the output device in the range 0%-100% 42 virtual void SetOutputVolumeLevel(int level) = 0; 43 }; 44 45 } // namespace system 46 } // namespace ash 47 48 #endif // ASH_SYSTEM_AUDIO_TRAY_AUDIO_DELEGATE_H_ 49