private async void VolumeNotifyReceived(object sender, AudioEndpointVolumeCallbackEventArgs e) { await Task.Run(() => { var modules = _modules.OfType <AudioModule>().Where(m => m.UseSystemVolume).ToArray(); foreach (var module in modules) { module.Volume = e.MasterVolume; module.IsMuted = e.IsMuted; var moduleDto = _moduleService.GetById(module.Id); if (moduleDto.State == null) { moduleDto.State = module.GetState(); } moduleDto.State.UseSystemVolume = true; moduleDto.State.IsMuted = e.IsMuted; moduleDto.State.Volume = e.MasterVolume; _moduleService.Update(moduleDto); _apiClient.SendMessageAsync("modules", "updatevolume", moduleDto); } }).ConfigureAwait(false); }
private void OnEndpointVolumeChanged(object sender, AudioEndpointVolumeCallbackEventArgs e) { if (!_isNotifyEnabled) { _isNotifyEnabled = true; return; } VolumeChanged?.Invoke(this); }
/// <summary> /// Receive volume change notification and reflect changes on our slider. /// </summary> /// <param name="data"></param> public void OnVolumeNotification(object sender, AudioEndpointVolumeCallbackEventArgs aEvent) { lock (_volumeTable) { if (_isInternalVolumeChange) { return; } if (aEvent != null) { //Update volume slider if (iAudioEndpointVolume != null) { // Force a couple of settings for Windows 10 if (OSInfo.OSInfo.Win10OrLater() && VolumeHandler.Instance.VolumeStyle() == 5) { var volumePercentage = (int)Math.Ceiling(iAudioEndpointVolume.MasterVolumeLevelScalar * 100f); _volume = ConvertVolumeToStepsEvent(volumePercentage); } else { // Needed to use default step issue 2 of 2 instead of 6 of 6 _volume = (int)Math.Round(aEvent.MasterVolume * VolumeMaximum); } _isMuted = aEvent.IsMuted; // Store current volume value _lastVolume = (int)Math.Ceiling(iAudioEndpointVolume.MasterVolumeLevelScalar * 100f); } } if (VolumeHandler.Instance != null) { VolumeHandler.Instance.mixer_UpdateVolume(); } } }
private void AEV_NotifyRecived(object sender, AudioEndpointVolumeCallbackEventArgs e) { L.MSD.Update(e.IsMuted, e.MasterVolume); }
private void AudioEndpointVolume_OnVolumeNotification(object sender, AudioEndpointVolumeCallbackEventArgs e) { // Not used // here }