private void OnVolumeChanged(object sender, VolumeDataEventArgs data) { List <AudioSession> sessions = GetSessions(); float newVolume = ((float)data.Volume / 100); if (newVolume > 1) { newVolume = 1; } if (newVolume < 0) { newVolume = 0; } foreach (AudioSession session in sessions) { if ((Math.Abs(session.Session.SimpleAudioVolume.MasterVolume - newVolume) > .10) || (session.Session.SimpleAudioVolume.Mute != data.Mute)) { session.Session.SimpleAudioVolume.Mute = data.Mute; session.Session.SimpleAudioVolume.MasterVolume = newVolume; } handler.AddHandler(session.Session); } if (isListening) { if (handler.Handler.HasListeners) { if (sender != this) { handler.Handler.RaiseEvent(this, data); } } } }
//public int OnDisplayNameChanged(string NewDisplayName, Guid EventContext) //{ // return 0; //} ////public int OnIconPathChanged(string NewIconPath, Guid eventContext) //{ // return 0; //} public int OnSimpleVolumeChanged(float NewVolume, bool newMute, Guid eventContext) { if (VolumeChanged != null) { VolumeDataEventArgs data = new VolumeDataEventArgs((int)(NewVolume * 100), newMute, eventContext); RaiseEvent(this, data); } return(0); }
public void RaiseEvent(object sender, VolumeDataEventArgs data) { if (sender != null && data != null) { VolumeChangedEventHandler onVolumeChanged = VolumeChanged; if (onVolumeChanged != null) { onVolumeChanged(sender, data); } } }