1c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Copyright 2014 The Chromium Authors. All rights reserved. 2c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Use of this source code is governed by a BSD-style license that can be 3c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// found in the LICENSE file. 4c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 5c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#ifndef ASH_SYSTEM_AUDIO_TRAY_AUDIO_DELEGATE_H_ 6c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#define ASH_SYSTEM_AUDIO_TRAY_AUDIO_DELEGATE_H_ 7c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 8c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathnamespace ash { 9c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathnamespace system { 10c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 11c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathclass ASH_EXPORT TrayAudioDelegate { 12c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath public: 13c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 14c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath enum { kNoAudioDeviceIcon = -1 }; 15c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 16c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath virtual ~TrayAudioDelegate() {} 17c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 18c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath // Sets the volume level of the output device to the minimum level which is 19c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath // deemed to be audible. 20c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath virtual void AdjustOutputVolumeToAudibleLevel() = 0; 21c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 22c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath // Gets the default level in the range 0%-100% at which the output device 23c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath // should be muted. 24c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath virtual int GetOutputDefaultVolumeMuteLevel() = 0; 25c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 26c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath // Gets the icon to use for the active output device. 27c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath virtual int GetActiveOutputDeviceIconId() = 0; 28c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 29c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath // Returns the volume level of the output device in the range 0%-100%. 30c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath virtual int GetOutputVolumeLevel() = 0; 31c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 32c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath // Returns true if the device has alternative inputs or outputs. 33c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath virtual bool HasAlternativeSources() = 0; 34c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 35c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath // Returns whether the output volume is muted. 36c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath virtual bool IsOutputAudioMuted() = 0; 37c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 38c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath // Sets the mute state of the output device. 39c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath virtual void SetOutputAudioIsMuted(bool is_muted) = 0; 40c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 41c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath // Sets the volume level of the output device in the range 0%-100% 42c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath virtual void SetOutputVolumeLevel(int level) = 0; 43c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}; 44c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 45c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} // namespace system 46c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} // namespace ash 47c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 48c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#endif // ASH_SYSTEM_AUDIO_TRAY_AUDIO_DELEGATE_H_ 49c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath