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() + "}");
        }
Exemple #2
0
        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);
                }
            }
        }
Exemple #3
0
 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();
            }
        }
Exemple #5
0
        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();
            }
        }
Exemple #6
0
        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();
             * }*/
        }
Exemple #7
0
        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);
                }
            }
        }
Exemple #8
0
 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();
      *      }
      *  }
      * }*/
 }