Fix caching issue by comparing process ids instead of process objects

This commit is contained in:
dlprows 2023-09-24 23:41:42 -06:00
parent 520659ac52
commit bbb0e55ed6

View File

@ -10,7 +10,7 @@ namespace FocusVolumeControl;
public class AudioHelper public class AudioHelper
{ {
static object _lock = new object(); static object _lock = new object();
List<Process> _currentProcesses; int[] _currentProcesses;
public IAudioSession Current { get; private set; } public IAudioSession Current { get; private set; }
@ -89,8 +89,9 @@ public class AudioHelper
lock (_lock) lock (_lock)
{ {
var processes = GetPossibleProcesses(); var processes = GetPossibleProcesses();
var processIds = processes.Select(x => x.Id).ToArray();
if (_currentProcesses == null || !_currentProcesses.SequenceEqual(processes)) if (_currentProcesses == null || !_currentProcesses.SequenceEqual(processIds))
{ {
Current = FindSession(processes); Current = FindSession(processes);
} }
@ -107,7 +108,7 @@ public class AudioHelper
} }
} }
_currentProcesses = processes; _currentProcesses = processIds;
return Current; return Current;
} }
} }