private void OnkyoDiscovery_DeviceRemoved(object sender, AdapterDiscoveryEventArgs e) { var matchingDevices = devices.Where(d => d.SerialNumber == e.DeviceId).ToList(); foreach (var device in matchingDevices) { this.NotifyDeviceRemoval(device); devices.Remove(device); } }
private void OnkyoDiscovery_DeviceDiscovered(object sender, AdapterDiscoveryEventArgs e) { var conn = e.Device as OnkyoClient; Task.Factory.StartNew(async() => { conn.Connect(); var device = new OnkyoDevice(this, conn, "TXXXX", "Onkyo", "TXXX2", "1.0.0.0", e.DeviceId, "Onkyo Receiver"); devices.Add(device); conn.ConnectionLost += (object s, EventArgs args) => { this.NotifyDeviceRemoval(device); devices.Remove(device); }; await device.AquireCurrentState(); this.NotifyDeviceArrival(device); }); }