Home | History | Annotate | Download | only in audio
      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 
     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