public Receiver() { MainPower = new Power(Zone.Main); Zone2Power = new Power(Zone.Zone2); MasterVolume = new Volume(); Zone2Volume = new Volume(); NetListTitle = new NetListTitleInfo(); MainInput = new Input(Zone.Main); Zone2Input = new Input(Zone.Zone2); NetListCursorInfo = new NetListInfo(); NetListItems = new ObservableCollection <NetListInfo>(); NetTitleName = new NetTitleName(); NetJacketArt = new NetJacketArt(); NetAlbumName = new NetAlbumName(); NetArtistName = new NetArtistName(); NetTrackFileInfo = new NetTrackFileInfo(); MessageReceived += OnMessageReceived; }
private void OnMessageReceived(object sender, ISCPMessageEventArgs e) { switch (e.Message.Command) { case "MVL": MasterVolume.ParseFrom(e.Message); break; case "ZVL": Zone2Volume.ParseFrom(e.Message); break; case "NLT": NetListTitle.ParseFrom(e.Message); break; case "SLI": MainInput.ParseFrom(e.Message); break; case "SLZ": Zone2Input.ParseFrom(e.Message); break; case "PWR": MainPower.ParseFrom(e.Message); break; case "ZPW": Zone2Power.ParseFrom(e.Message); break; case "NLS": var nls = new NetListInfo(); nls.ParseFrom(e.Message); if (nls.InformationType == NetListInformationType.CursorPosition) { NetListCursorInfo.ParseFrom(e.Message); lock (NetListItems) NetListItems.Clear(); } else { lock (NetListItems) NetListItems.Add(nls); } break; case "NTI": NetTitleName.ParseFrom(e.Message); break; case "NAL": NetAlbumName.ParseFrom(e.Message); break; case "NAT": NetArtistName.ParseFrom(e.Message); break; case "NJA": NetJacketArt.ParseFrom(e.Message); break; case "NFI": NetTrackFileInfo.ParseFrom(e.Message); break; } }