Esempio n. 1
0
 public UPnPService(UPnPDevice parent, XNamespace ns, XElement service)
 {
     ParentDevice = parent;
       ServiceType = service.Elements().First(e => e.Name.LocalName == "serviceType").Value;
       ServiceID = service.Elements().First(e => e.Name.LocalName == "serviceId").Value;
       ControlUrl = service.Elements().First(e => e.Name.LocalName == "controlURL").Value;
 }
Esempio n. 2
0
        private void ParseSSDPResponse(Uri webAddr, String response)
        {
            using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(response)))
            {
                using (XmlReader reader = XmlReader.Create(stream))
                {
                    XDocument document = XDocument.Load(reader, LoadOptions.None);

                    XNamespace      ns      = "urn:schemas-upnp-org:device-1-0";
                    List <XElement> devices = document.Descendants(ns + "device").ToList();

                    foreach (XElement device in devices)
                    {
                        UPnPDevice upnpDevice = new UPnPDevice(webAddr, ns, device);

                        lock (_devices)
                        {
                            bool deviceExists = false;

                            foreach (UPnPDevice deviceCompare in _devices)
                            {
                                if (deviceCompare.UDN == upnpDevice.UDN)
                                {
                                    deviceCompare.Confirmed = true;
                                    deviceExists            = true;
                                    break;
                                }
                            }

                            if (!deviceExists)
                            {
                                _devices.Add(upnpDevice);

                                foreach (UPnPService service in upnpDevice.Services)
                                {
                                    if (ServiceFound != null)
                                    {
                                        RaiseEventOnUIThread(ServiceFound, new object [] { _instance, new ServiceEventArgs(service) });
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Esempio n. 3
0
        private void ParseSSDPResponse(Uri webAddr, String response)
        {
            using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(response)))
              {
            using (XmlReader reader = XmlReader.Create(stream))
            {
              XDocument document = XDocument.Load(reader, LoadOptions.None);

              XNamespace ns = "urn:schemas-upnp-org:device-1-0";
              List<XElement> devices = document.Descendants(ns + "device").ToList();

              foreach (XElement device in devices)
              {
            UPnPDevice upnpDevice = new UPnPDevice(webAddr, ns, device);

            lock (_devices)
            {
              bool deviceExists = false;

              foreach (UPnPDevice deviceCompare in _devices)
              {
                if (deviceCompare.UDN == upnpDevice.UDN)
                {
                  deviceCompare.Confirmed = true;
                  deviceExists = true;
                  break;
                }
              }

              if (!deviceExists)
              {
                _devices.Add(upnpDevice);

                foreach (UPnPService service in upnpDevice.Services)
                {
                  if (ServiceFound != null)
                    RaiseEventOnUIThread(ServiceFound, new object [] { _instance, new ServiceEventArgs(service) });
                }
              }
            }
              }
            }
              }
        }