public ViewStream(SnapDotNet.ControlClient.JsonRpcData.Stream stream) { InitializeComponent(); m_Stream = stream; _UpdateData(); m_Stream.SERVER_OnStreamUpdated += () => { Application.Current.Dispatcher.Invoke(new Action(_UpdateData)); }; m_Stream.SERVER_OnInvalidate += () => { // server is sending us a full data refresh - close this window (this client might be getting deleted for all we know) Application.Current.Dispatcher.Invoke(() => { this.Close(); }); }; }
private void _OnGroupUpdated() { vcGroup.Active = true; lbGroupName.Content = m_Group.Name; vcGroup.Muted = m_Group.muted; vcGroup.OnVolumeChanged -= VcGroup_OnVolumeChanged; vcGroup.Percent = m_Group.VolumePercent; vcGroup.OnVolumeChanged += VcGroup_OnVolumeChanged; if (m_Stream != null) { m_Stream.SERVER_OnStreamUpdated -= _OnStreamUpdated; // unhook event from old m_Stream object } m_Stream = m_SnapcastClient.GetStream(m_Group.stream_id); if (m_Stream != null) { m_Stream.SERVER_OnStreamUpdated += _OnStreamUpdated; // hook up event to new m_Stream object _OnStreamUpdated(); } }