using System; namespace NAudio.CoreAudioApi.Interfaces { /// /// interface to receive session related events /// public interface IAudioSessionEventsHandler { /// /// notification of volume changes including muting of audio session /// /// the current volume /// the current mute state, true muted, false otherwise void OnVolumeChanged(float volume, bool isMuted); /// /// notification of display name changed /// /// the current display name void OnDisplayNameChanged(string displayName); /// /// notification of icon path changed /// /// the current icon path void OnIconPathChanged(string iconPath); /// /// notification of the client that the volume level of an audio channel in the session submix has changed /// /// The channel count. /// An array of volumnes cooresponding with each channel index. /// The number of the channel whose volume level changed. void OnChannelVolumeChanged(UInt32 channelCount, IntPtr newVolumes, UInt32 channelIndex); /// /// notification of the client that the grouping parameter for the session has changed /// /// >The new grouping parameter for the session. void OnGroupingParamChanged(ref Guid groupingId); /// /// notification of the client that the stream-activity state of the session has changed /// /// The new session state. void OnStateChanged(AudioSessionState state); /// /// notification of the client that the session has been disconnected /// /// The reason that the audio session was disconnected. void OnSessionDisconnected(AudioSessionDisconnectReason disconnectReason); } }