// Author: Gockner, Simon // Created: 2021-04-07 // Copyright(c) 2021 SimonG. All Rights Reserved. using System.Collections.Generic; using System.Linq; using Lib.Audio.Interfaces; using NAudio.CoreAudioApi; namespace Lib.Audio { public class Controllable : IControllable { private readonly List _audioSessionControls; public Controllable(List audioSessionControls, string name) { _audioSessionControls = audioSessionControls; Name = name; } public string Name { get; } public string? IconPath => _audioSessionControls.FirstOrDefault(c => !string.IsNullOrEmpty(c.IconPath))?.IconPath; 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; } }