Ejemplo n.º 1
0
        public static TransportCommands Create(XDocument document)
        {
            var command = new TransportCommands();

            var actionList = document.Descendants(uPnpNamespaces.svc + "actionList");

            foreach (var container in actionList.Descendants(uPnpNamespaces.svc + "action"))
            {
                command.ServiceActions.Add(ServiceActionFromXml(container));
            }

            var stateValues = document.Descendants(uPnpNamespaces.ServiceStateTable).FirstOrDefault();

            if (stateValues != null)
            {
                foreach (var container in stateValues.Elements(uPnpNamespaces.svc + "stateVariable"))
                {
                    command.StateVariables.Add(FromXml(container));
                }
            }

            return command;
        }
Ejemplo n.º 2
0
        private async Task GetRenderingProtocolAsync()
        {
            var avService = Properties.Services.FirstOrDefault(s => s.ServiceType == ServiceRenderingType);

            if (avService == null)
            {
                return;
            }
            string url = avService.ScpdUrl;

            if (!url.Contains("/"))
            {
                url = "/dmr/" + url;
            }
            if (!url.StartsWith("/"))
            {
                url = "/" + url;
            }

            var httpClient = new SsdpHttpClient(_httpClient, _config);
            var document   = await httpClient.GetDataAsync(Properties.BaseUrl + url);

            RendererCommands = TransportCommands.Create(document);
        }