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") { }
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") { }
public UpnpServer(UpnpDevice rootDevice) { this.rootDevice = rootDevice; ssdpServer = new SsdpServer(this); }
public ItemManager(P2pProxyDevice TVProxyDevice) { this.P2pProxyDevice = P2pProxyDevice; _rootItems = new ItemRootContainer(null, TVProxyDevice); }
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") { }
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); } }