/* * This section contains functionality for local speaker devices control: * - Adding / removing local speaker device if such was plugged in / plugged out * - Selecting / deselecting specific speaker on UI and on API level */ public void AddLocalSpeaker(LocalSpeakerModel speaker) { if (LocalSpeakers.FirstOrDefault(x => x.Id == speaker.Id) == null) { System.Windows.Application.Current.Dispatcher.Invoke(() => { LocalSpeakers.Add(speaker); }); Log.Info(string.Format("Added local speaker: name={0} id={1}", speaker.DisplayName, speaker.Id)); } }
public void RemoveLocalSpeaker(LocalSpeakerModel speaker) { var speakerToRemove = LocalSpeakers.FirstOrDefault(x => x.Id == speaker.Id); if (speakerToRemove != null) { System.Windows.Application.Current.Dispatcher.Invoke(() => { LocalSpeakers.Remove(speakerToRemove); }); Log.Info(string.Format("Removed local speaker: name={0} id={1}", speakerToRemove.DisplayName, speakerToRemove.Id)); } }
public void SetSelectedLocalSpeaker(LocalSpeakerModel speaker) { var speakerToSelect = LocalSpeakers.FirstOrDefault(x => x.Id == speaker.Id); if (speakerToSelect != null) { LocalSpeakers.Select(x => { x.IsSelected = false; return(x); }) .ToList(); speakerToSelect.IsSelected = true; Log.Info(string.Format("Local speaker selected: name={0} id={1}", speakerToSelect.DisplayName, speakerToSelect.Id)); } }