private void HandleDeviceAdded(OpenHome.Net.ControlPoint.CpDeviceList aList, OpenHome.Net.ControlPoint.CpDevice aDevice) { string xml; if (!aDevice.GetAttribute("Upnp.DeviceXml", out xml)) { Console.WriteLine("Device has no DeviceXml."); return; } string uri; if (!aDevice.GetAttribute("Upnp.Location", out uri)) { Console.WriteLine("Device has no Location???"); return; } var info = UpnpDeviceInfo.FromXmlString( xml, new Uri(uri), new HttpFetcher()); iDevices.AddDevice(info); var deviceAddedDelegate = DeviceAdded; if (deviceAddedDelegate != null) { deviceAddedDelegate.Invoke(this, new UpnpDeviceEventArgs { DeviceInfo = info }); } }
private void HandleDeviceRemoved(OpenHome.Net.ControlPoint.CpDeviceList aList, OpenHome.Net.ControlPoint.CpDevice aDevice) { UpnpDeviceInfo info; if (iDevices.TryGetDevice(aDevice.Udn(), out info)) { iDevices.DropDevice(aDevice.Udn()); var deviceRemovedDelegate = DeviceRemoved; if (deviceRemovedDelegate != null) { deviceRemovedDelegate.Invoke(this, new UpnpDeviceEventArgs { DeviceInfo = info }); } } }