public ContentDirectoryService(UpnpServer server, UpnpDevice device)
            : base(server, device,
                "urn:schemas-upnp-org:service:ContentDirectory:1", "urn:upnp-org:serviceId:ContentDirectory", "/dlna/ContentDirectory.control",
                "/dlna/ContentDirectory.event", "/dlna/ContentDirectory.xml")
        {

        }
Esempio n. 2
0
 public BasicService(UpnpServer server, UpnpDevice device) :
     base(server, device, "urn:axis-com:service:BasicService:1", "urn:axis-com:serviceId:BasicServiceId",
          "/dlna/BasicServiceId.control", "/upnp/BasicServiceId.event", "/dlna/scpd_basic.xml")
 {
 }
Esempio n. 3
0
 public BasicService(UpnpServer server, UpnpDevice device) :
     base(server, device, "urn:axis-com:service:BasicService:1", "urn:axis-com:serviceId:BasicServiceId",
     "/dlna/BasicServiceId.control", "/upnp/BasicServiceId.event", "/dlna/scpd_basic.xml")
 {
 }
 public ConnectionManagerService(UpnpServer server, UpnpDevice device)
     : base(server, device,
         "urn:schemas-upnp-org:service:ConnectionManager:1", "urn:upnp-org:serviceId:ConnectionManager", "/dlna/ConnectionManager.control",
         "/dlna/ConnectionManager.event", "/dlna/ConnectionManager.xml")
 {
 }
Esempio n. 5
0
 public SsdpServer(UpnpServer upnpServer)
 {
     this.upnpServer = upnpServer;
 }
 public MediaReceiverRegistrarService(UpnpServer server, UpnpDevice device)
     : base(server, device,
         "urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1", "urn:microsoft.com:serviceId:X_MS_MediaReceiverRegistrar",
         "/dlna/X_MS_MediaReceiverRegistrar.control", "/dlna/X_MS_MediaReceiverRegistrar.event", "/dlna/X_MS_MediaReceiverRegistrar.xml")
 {
 }
Esempio n. 7
0
 protected UpnpDevice(WebServer web)
 {
     server = new UpnpServer(this);
     Web    = web;
 }
Esempio n. 8
0
        protected UpnpService(UpnpServer server, UpnpDevice device, string serviceType, string serviceId, string controlUrl, string eventSubUrl, string SCPDURL)
        {
            this.server = server;
            this.device = device;
            this.serviceType = serviceType;
            this.serviceId = serviceId;
            this.controlUrl = controlUrl;
            this.eventSubUrl = eventSubUrl;
            this.SCPDURL = SCPDURL;

            MemoryStream memStream = new MemoryStream();
            using (XmlTextWriter descWriter = new XmlTextWriter(memStream, new UTF8Encoding(false)))
            {
                descWriter.Formatting = Formatting.Indented;
                descWriter.WriteRaw("<?xml version=\"1.0\"?>");

                descWriter.WriteStartElement("scpd", "urn:schemas-upnp-org:service-1-0");

                descWriter.WriteStartElement("specVersion");
                descWriter.WriteElementString("major", "1");
                descWriter.WriteElementString("minor", "0");
                descWriter.WriteEndElement();

                descWriter.WriteStartElement("actionList");

                MethodInfo[] methods = GetType().GetMethods(BindingFlags.Instance | BindingFlags.NonPublic);
                foreach (MethodInfo method in methods)
                {
                    IEnumerable<UpnpServiceArgument> methAttribs = method.GetCustomAttributes(typeof(UpnpServiceArgument), true).Cast<UpnpServiceArgument>();
                    ParameterInfo[] parameters = method.GetParameters();
                    
                    if (methAttribs.Any() || parameters.Any(a => a.GetCustomAttributes(typeof(UpnpServiceArgument), true).Length > 0))
                    {
                        descWriter.WriteStartElement("action");
                        descWriter.WriteElementString("name", method.Name);
                        descWriter.WriteStartElement("argumentList");

                        //Zapisanie vstupnych parametrov
                        foreach (ParameterInfo parameter in parameters)
                        {
                            UpnpServiceArgument paramAttrib = parameter.GetCustomAttributes(typeof(UpnpServiceArgument), true).FirstOrDefault() as UpnpServiceArgument;
                            if (paramAttrib != null)
                            {
                                string param_name =
                                ((AliasAttribute)parameter.GetCustomAttributes(typeof(AliasAttribute), true)[0]).Name;
                                descWriter.WriteStartElement("argument");
                                descWriter.WriteElementString("name", param_name);
                                descWriter.WriteElementString("direction", "in");
                                descWriter.WriteElementString("relatedStateVariable", paramAttrib.RelatedStateVariable);
                                descWriter.WriteEndElement();
                            }
                        }

                        //Zapisanie vystupnych parametrov
                        foreach (UpnpServiceArgument methAttrib in methAttribs.OrderBy(a => a.Index))
                        {
                            descWriter.WriteStartElement("argument");
                            descWriter.WriteElementString("name", methAttrib.Name);
                            descWriter.WriteElementString("direction", "out");
                            descWriter.WriteElementString("relatedStateVariable", methAttrib.RelatedStateVariable);
                            descWriter.WriteEndElement();
                        }

                        descWriter.WriteEndElement();
                        descWriter.WriteEndElement();
                    }
                }

                descWriter.WriteEndElement();
                descWriter.WriteStartElement("serviceStateTable");

                //Zapisanie premennych
                foreach (UpnpServiceVariable variable in GetType().GetCustomAttributes(typeof(UpnpServiceVariable), true).Cast<UpnpServiceVariable>())
                {
                    descWriter.WriteStartElement("stateVariable");
                    descWriter.WriteAttributeString("sendEvents", variable.SendEvents ? "yes" : "no");
                    descWriter.WriteElementString("name", variable.Name);
                    descWriter.WriteElementString("dataType", variable.DataType);
                    if (variable.AllowedValue.Length > 0)
                    {
                        descWriter.WriteStartElement("allowedValueList");
                        foreach (string value in variable.AllowedValue)
                            descWriter.WriteElementString("allowedValue", value);
                        descWriter.WriteEndElement();
                    }
                    descWriter.WriteEndElement();
                }

                descWriter.WriteEndElement();

                descWriter.WriteEndElement();

                descWriter.Flush();
                descArray = memStream.ToArray();
            }

            var p2pProxyDevice = device as P2pProxyDevice;
            if (p2pProxyDevice != null)
            {
                p2pProxyDevice.AddRoute(SCPDURL, GetDescription, HttpMethod.Get);
                p2pProxyDevice.AddRoute(controlUrl, ProceedControl, HttpMethod.Post);
                p2pProxyDevice.AddRoute(eventSubUrl, ProceedEventSub, HttpMethod.Subscribe);
                p2pProxyDevice.AddRoute(eventSubUrl, ProceedEventUnsub, HttpMethod.Unsubscribe);
            }
        }
Esempio n. 9
0
        public SsdpServer(UpnpServer upnpServer)
        {
            this.upnpServer = upnpServer;

        }
Esempio n. 10
0
 protected UpnpDevice(WebServer web)
 {
     server = new UpnpServer(this);
     Web = web;
 }
Esempio n. 11
0
 public ConnectionManagerService(UpnpServer server, UpnpDevice device)
     : base(server, device,
            "urn:schemas-upnp-org:service:ConnectionManager:1", "urn:upnp-org:serviceId:ConnectionManager", "/dlna/ConnectionManager.control",
            "/dlna/ConnectionManager.event", "/dlna/ConnectionManager.xml")
 {
 }
Esempio n. 12
0
 public ContentDirectoryService(UpnpServer server, UpnpDevice device)
     : base(server, device,
            "urn:schemas-upnp-org:service:ContentDirectory:1", "urn:upnp-org:serviceId:ContentDirectory", "/dlna/ContentDirectory.control",
            "/dlna/ContentDirectory.event", "/dlna/ContentDirectory.xml")
 {
 }
Esempio n. 13
0
        protected UpnpService(UpnpServer server, UpnpDevice device, string serviceType, string serviceId, string controlUrl, string eventSubUrl, string SCPDURL)
        {
            this.server      = server;
            this.device      = device;
            this.serviceType = serviceType;
            this.serviceId   = serviceId;
            this.controlUrl  = controlUrl;
            this.eventSubUrl = eventSubUrl;
            this.SCPDURL     = SCPDURL;

            MemoryStream memStream = new MemoryStream();

            using (XmlTextWriter descWriter = new XmlTextWriter(memStream, new UTF8Encoding(false)))
            {
                descWriter.Formatting = Formatting.Indented;
                descWriter.WriteRaw("<?xml version=\"1.0\"?>");

                descWriter.WriteStartElement("scpd", "urn:schemas-upnp-org:service-1-0");

                descWriter.WriteStartElement("specVersion");
                descWriter.WriteElementString("major", "1");
                descWriter.WriteElementString("minor", "0");
                descWriter.WriteEndElement();

                descWriter.WriteStartElement("actionList");

                MethodInfo[] methods = GetType().GetMethods(BindingFlags.Instance | BindingFlags.NonPublic);
                foreach (MethodInfo method in methods)
                {
                    IEnumerable <UpnpServiceArgument> methAttribs = method.GetCustomAttributes(typeof(UpnpServiceArgument), true).Cast <UpnpServiceArgument>();
                    ParameterInfo[] parameters = method.GetParameters();

                    if (methAttribs.Any() || parameters.Any(a => a.GetCustomAttributes(typeof(UpnpServiceArgument), true).Length > 0))
                    {
                        descWriter.WriteStartElement("action");
                        descWriter.WriteElementString("name", method.Name);
                        descWriter.WriteStartElement("argumentList");

                        //Zapisanie vstupnych parametrov
                        foreach (ParameterInfo parameter in parameters)
                        {
                            UpnpServiceArgument paramAttrib = parameter.GetCustomAttributes(typeof(UpnpServiceArgument), true).FirstOrDefault() as UpnpServiceArgument;
                            if (paramAttrib != null)
                            {
                                string param_name =
                                    ((AliasAttribute)parameter.GetCustomAttributes(typeof(AliasAttribute), true)[0]).Name;
                                descWriter.WriteStartElement("argument");
                                descWriter.WriteElementString("name", param_name);
                                descWriter.WriteElementString("direction", "in");
                                descWriter.WriteElementString("relatedStateVariable", paramAttrib.RelatedStateVariable);
                                descWriter.WriteEndElement();
                            }
                        }

                        //Zapisanie vystupnych parametrov
                        foreach (UpnpServiceArgument methAttrib in methAttribs.OrderBy(a => a.Index))
                        {
                            descWriter.WriteStartElement("argument");
                            descWriter.WriteElementString("name", methAttrib.Name);
                            descWriter.WriteElementString("direction", "out");
                            descWriter.WriteElementString("relatedStateVariable", methAttrib.RelatedStateVariable);
                            descWriter.WriteEndElement();
                        }

                        descWriter.WriteEndElement();
                        descWriter.WriteEndElement();
                    }
                }

                descWriter.WriteEndElement();
                descWriter.WriteStartElement("serviceStateTable");

                //Zapisanie premennych
                foreach (UpnpServiceVariable variable in GetType().GetCustomAttributes(typeof(UpnpServiceVariable), true).Cast <UpnpServiceVariable>())
                {
                    descWriter.WriteStartElement("stateVariable");
                    descWriter.WriteAttributeString("sendEvents", variable.SendEvents ? "yes" : "no");
                    descWriter.WriteElementString("name", variable.Name);
                    descWriter.WriteElementString("dataType", variable.DataType);
                    if (variable.AllowedValue.Length > 0)
                    {
                        descWriter.WriteStartElement("allowedValueList");
                        foreach (string value in variable.AllowedValue)
                        {
                            descWriter.WriteElementString("allowedValue", value);
                        }
                        descWriter.WriteEndElement();
                    }
                    descWriter.WriteEndElement();
                }

                descWriter.WriteEndElement();

                descWriter.WriteEndElement();

                descWriter.Flush();
                descArray = memStream.ToArray();
            }

            var p2pProxyDevice = device as P2pProxyDevice;

            if (p2pProxyDevice != null)
            {
                p2pProxyDevice.AddRoute(SCPDURL, GetDescription, HttpMethod.Get);
                p2pProxyDevice.AddRoute(controlUrl, ProceedControl, HttpMethod.Post);
                p2pProxyDevice.AddRoute(eventSubUrl, ProceedEventSub, HttpMethod.Subscribe);
                p2pProxyDevice.AddRoute(eventSubUrl, ProceedEventUnsub, HttpMethod.Unsubscribe);
            }
        }
 public MediaReceiverRegistrarService(UpnpServer server, UpnpDevice device)
     : base(server, device,
            "urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1", "urn:microsoft.com:serviceId:X_MS_MediaReceiverRegistrar",
            "/dlna/X_MS_MediaReceiverRegistrar.control", "/dlna/X_MS_MediaReceiverRegistrar.event", "/dlna/X_MS_MediaReceiverRegistrar.xml")
 {
 }