From ca956f207b2bcbd387be048e16971cbbf5700208 Mon Sep 17 00:00:00 2001 From: Chris Kaczor Date: Tue, 18 Aug 2026 14:59:20 -0400 Subject: [PATCH] Adjust mute detection/logging --- AudioDevice.cs | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/AudioDevice.cs b/AudioDevice.cs index 8c433e8..76aebb3 100644 --- a/AudioDevice.cs +++ b/AudioDevice.cs @@ -11,8 +11,7 @@ namespace WorkIndicator; internal class AudioDevice : IAudioSessionEventsHandler { private readonly ILogger _logger; - private readonly MMDevice _device; - private readonly Dispatcher _dispatcher; + private readonly string _friendlyName; private readonly Dictionary _sessions = new(); public delegate void AudioSessionsChangedDelegate(); @@ -23,16 +22,14 @@ internal class AudioDevice : IAudioSessionEventsHandler { _logger = Log.ForContext(); - _dispatcher = Dispatcher.CurrentDispatcher; + _friendlyName = device.DeviceFriendlyName; - _device = device; + device.AudioEndpointVolume.OnVolumeNotification += AudioEndpointVolume_OnVolumeNotification; + device.AudioSessionManager.AudioSessionControl.RegisterEventClient(this); + device.AudioSessionManager.OnSessionCreated += AudioSessionManager_OnSessionCreated; - _device.AudioEndpointVolume.OnVolumeNotification += AudioEndpointVolume_OnVolumeNotification; - _device.AudioSessionManager.AudioSessionControl.RegisterEventClient(this); - _device.AudioSessionManager.OnSessionCreated += AudioSessionManager_OnSessionCreated; - - _device.AudioSessionManager.RefreshSessions(); - var sessions = _device.AudioSessionManager.Sessions; + device.AudioSessionManager.RefreshSessions(); + var sessions = device.AudioSessionManager.Sessions; for (var i = 0; i < sessions.Count; i++) { @@ -42,7 +39,7 @@ internal class AudioDevice : IAudioSessionEventsHandler private void AudioEndpointVolume_OnVolumeNotification(AudioVolumeNotificationData data) { - _logger.Information("AudioEndpointVolume_OnVolumeNotification: {guid} {muted}", data.Guid, data.Muted); + _logger.Information("AudioEndpointVolume_OnVolumeNotification: {name} {muted}", _friendlyName, data.Muted); } private void AudioSessionManager_OnSessionCreated(object sender, IAudioSessionControl newSession) @@ -68,7 +65,7 @@ internal class AudioDevice : IAudioSessionEventsHandler void IAudioSessionEventsHandler.OnVolumeChanged(float volume, bool isMuted) { - _dispatcher.Invoke(() => { _logger.Information("{name}: {volume} {isMuted} {mute}", _device.DeviceFriendlyName, volume, isMuted, _device.AudioEndpointVolume.Mute); }); + _logger.Information("OnVolumeChanged: {name} {volume} {isMuted}", _friendlyName, volume, isMuted); } void IAudioSessionEventsHandler.OnDisplayNameChanged(string displayName)