private void Added(CpDeviceList aList, CpDevice aDevice) { UserLog.WriteLine(DateTime.Now + ": CpDeviceRecogniserList: Device+ Udn{" + aDevice.Udn() + "}"); lock (iLock) { if (iDisposed) { return; } foreach (IRecogniser r in iRecognisers) { CpDeviceRecognised recognisedDevice = r.Recognise(aDevice, RecogniserAdded); if (recognisedDevice != null) { // check to see if device has been added immediately if (!iDeviceListRecognised.Contains(recognisedDevice)) { iDeviceListPending.Add(recognisedDevice); } return; } } } UserLog.WriteLine(DateTime.Now + ": CpDeviceRecogniserList: Device not recognised Udn{" + aDevice.Udn() + "}"); }
private void Added(CpDeviceList aList, CpDevice aDevice) { UserLog.WriteLine(DateTime.Now + ": CpDeviceDiagnosticsList: Device+ Udn{" + aDevice.Udn() + "}"); string version; if (!aDevice.GetAttribute("Upnp.Service.av-openhome-org.Product", out version)) { return; } CpDeviceDiagnostics device = new CpDeviceDiagnostics(aDevice, DiagnosticsAdded); lock (iLock) { if (iDisposed) { return; } // check to see if device has been added immediately if (!iDeviceListDiagnostics.Contains(device)) { iDeviceListPending.Add(device); } } }
private void DeviceAdded(CpDeviceList aList, CpDevice aDevice) { lock (this) { if (iDeviceList.Count == 0 && aDevice.Udn() == DeviceBasic.gDeviceName) { aDevice.AddRef(); iDeviceList.Add(aDevice); } } }
private void Removed(CpDeviceList aList, CpDevice aDevice) { UserLog.WriteLine(DateTime.Now + ": CpDeviceRecogniserList: Device- Udn{" + aDevice.Udn() + "}"); CpDeviceRecognised removedDevice = null; lock (iLock) { if (iDisposed) { return; } foreach (CpDeviceRecognised d in iDeviceListPending) { if (d.Udn == aDevice.Udn()) { iDeviceListPending.Remove(d); d.Dispose(); return; } } foreach (CpDeviceRecognised d in iDeviceListRecognised) { if (d.Udn == aDevice.Udn()) { removedDevice = d; iDeviceListRecognised.Remove(d); break; } } } if (removedDevice != null) { if (iRemoved != null) { iRemoved(this, removedDevice); } removedDevice.Dispose(); } }
private void Removed(CpDeviceList aList, CpDevice aDevice) { UserLog.WriteLine(DateTime.Now + ": CpDeviceDiagnosticsList: Device- Udn{" + aDevice.Udn() + "}"); CpDeviceDiagnostics device = null; lock (iLock) { if (iDisposed) { return; } foreach (CpDeviceDiagnostics d in iDeviceListPending) { if (d.Udn == aDevice.Udn()) { iDeviceListPending.Remove(d); d.Dispose(); return; } } foreach (CpDeviceDiagnostics d in iDeviceListDiagnostics) { if (d.Udn == aDevice.Udn()) { device = d; iDeviceListDiagnostics.Remove(device); break; } } } if (device != null) { if (iRemoved != null) { iRemoved(this, device); } device.Dispose(); } }
private void Removed(CpDeviceList aList, CpDevice aDevice) { UserLog.WriteLine(DateTime.Now + ": CpDeviceReprogramList: Device- Udn{" + aDevice.Udn() + "}"); //CpDeviceReprogrammable removedDevice = null; lock (iLock) { if (iDisposed) { return; } foreach (CpDeviceVolkano d in iDeviceListPending) { if (d.Udn == aDevice.Udn()) { iDeviceListPending.Remove(d); d.Dispose(); return; } } foreach (KeyValuePair <string, CpDeviceReprogrammable> d in iDeviceListReprogrammable) { if (d.Value.Udn == aDevice.Udn()) { //removedDevice = d.Value; d.Value.SetDevice(null); break; } } } /*if (removedDevice != null) * { * if (iRemoved != null) * { * iRemoved(this, removedDevice); * } * * removedDevice.Dispose(); * }*/ }
private void Added(CpDeviceList aList, CpDevice aDevice) { UserLog.WriteLine(DateTime.Now + ": CpDeviceReprogramList: Device+ Udn{" + aDevice.Udn() + "}"); CpDeviceVolkano device = CpDeviceVolkano.Create(aDevice, ReprogrammableAdded); lock (iLock) { if (iDisposed) { return; } // check to see if device has been added immediately if (!iDeviceListReprogrammable.ContainsKey(device.MacAddress)) { iDeviceListPending.Add(device); } } }
private void DeviceRemoved(CpDeviceList aList, CpDevice aDevice) { /* The device stack sends byebyes then alives for each newly enabled device. * These can be interleaved with responses to a msearch and can cause tests to misbehave, * thinking a device has been removed. The simplest way to work around this is to say * our test guarantees that a device remains available as long as its needed then take * advantage of this by ignoring device removed callbacks. */ /*lock (this) * { * string udn = aDevice.Udn(); * int count = iDeviceList.Count; * for (int i = 0; i < count; i++) * { * if (iDeviceList[i].Udn() == udn) * { * iDeviceList.RemoveAt(i); * iDeviceList[i].RemoveRef(); * } * } * }*/ }