private void SocketDataReceived(object sender, DataReceivedEventArgs e) { List <DeviceInfo> loDeviceList = new List <DeviceInfo>(); byte[] loDummyOut; foreach (var lsMessage in e.Data.ToISCPStatusMessage(out loDummyOut)) { var loDevice = ExtractDevice(lsMessage, e.RemoteAddress); if (loDevice != null) { loDeviceList.Add(loDevice); if (this.AlreadyDiscovered(loDevice.MacAddress)) { return; } var conn = new OnkyoClient(loDevice.HostName, loDevice.ServiceName); conn.ConnectionLost += (object s, EventArgs args) => { this.RemoveDevice(loDevice.MacAddress); }; this.AddDevice(loDevice.MacAddress, conn); } } }
internal OnkyoDevice(OnkyoAdapter adapter, OnkyoClient conn, string Name, string VendorName, string Model, string Version, string SerialNumber, string Description) : base(adapter, Name, VendorName, Model, Version, SerialNumber, Description) { _conn = conn; _conn.MessageReceived += OnkyoMessageReceived; }