using NAudio.CoreAudioApi.Interfaces; using System; namespace NAudio.Wasapi.CoreAudioApi { /// /// Audio Volume Level /// public class AudioVolumeLevel { private readonly IAudioVolumeLevel audioVolumeLevelInterface; internal AudioVolumeLevel(IAudioVolumeLevel audioVolumeLevel) { audioVolumeLevelInterface = audioVolumeLevel; } public uint ChannelCount { get { audioVolumeLevelInterface.GetChannelCount(out uint result); return result; } } public void GetLevelRange(uint channel, out float minLevelDb, out float maxLevelDb, out float stepping) { audioVolumeLevelInterface.GetLevelRange(channel, out minLevelDb, out maxLevelDb, out stepping); } public float GetLevel(uint channel) { audioVolumeLevelInterface.GetLevel(channel, out float result); return result; } public void SetLevel(uint channel, float value) { var guid = Guid.Empty; audioVolumeLevelInterface.SetLevel(channel, value, ref guid); } public void SetLevelUniform(float value) { var guid = Guid.Empty; audioVolumeLevelInterface.SetLevelUniform(value, ref guid); } public void SetLevelAllChannel(float[] values, uint channels) { var guid = Guid.Empty; audioVolumeLevelInterface.SetLevelAllChannel(values, channels, ref guid); } } }