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 8namespace ash { 9namespace system { 10 11class ASH_EXPORT TrayAudioDelegate { 12 public: 13 14 enum { kNoAudioDeviceIcon = -1 }; 15 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