diff --git a/Lib.Audio/Controllable.cs b/Lib.Audio/Controllable.cs index c85d598..55c711c 100644 --- a/Lib.Audio/Controllable.cs +++ b/Lib.Audio/Controllable.cs @@ -2,6 +2,7 @@ // Created: 2021-04-07 // Copyright(c) 2021 SimonG. All Rights Reserved. +using System.Collections.Generic; using Lib.Audio.Interfaces; using NAudio.CoreAudioApi; @@ -9,18 +10,18 @@ namespace Lib.Audio { public class Controllable : IControllable { - private readonly AudioSessionControl _audioSessionControl; + private readonly List _audioSessionControls; private readonly string _name; - public Controllable(AudioSessionControl audioSessionControl, string name) + public Controllable(List audioSessionControls, string name) { - _audioSessionControl = audioSessionControl; + _audioSessionControls = audioSessionControls; _name = name; } - public void SetVolume(float volume) => _audioSessionControl.SimpleAudioVolume.Volume = volume; - public void Mute() => _audioSessionControl.SimpleAudioVolume.Mute = true; - public void UnMute() => _audioSessionControl.SimpleAudioVolume.Mute = false; + public void SetVolume(float volume) => _audioSessionControls.ForEach(c => c.SimpleAudioVolume.Volume = volume); + public void Mute() => _audioSessionControls.ForEach(c => c.SimpleAudioVolume.Mute = true); + public void UnMute() => _audioSessionControls.ForEach(c => c.SimpleAudioVolume.Mute = false); public override string ToString() => _name; } diff --git a/Lib.Audio/ControllableCollector.cs b/Lib.Audio/ControllableCollector.cs index 5c1a955..5bf8d18 100644 --- a/Lib.Audio/ControllableCollector.cs +++ b/Lib.Audio/ControllableCollector.cs @@ -26,7 +26,7 @@ namespace Lib.Audio MMDeviceCollection? audioDevices = deviceEnumerator.EnumerateAudioEndPoints(DataFlow.All, DeviceState.Active); List controllables = new(); - controllables.AddRange(audioDevices.Select(a => _controllableFactory.Create(a.AudioSessionManager.AudioSessionControl, a.FriendlyName))); + controllables.AddRange(audioDevices.Select(a => _controllableFactory.Create(a.AudioEndpointVolume, a.FriendlyName))); Dictionary> sessionsById = new(); foreach (var audioDevice in audioDevices) @@ -63,7 +63,7 @@ namespace Lib.Audio else name = id; - controllables.Add(_controllableFactory.Create(audioSessionControl, name)); + controllables.Add(_controllableFactory.Create(idSessions, name)); } return controllables;