/// <summary> /// Media Browser Constructor /// ,fills the devices properties and values with default values /// </summary> public MediaBrowser() { device_type = DeviceTypes.MediaBrowser; //host = ""; //location = ""; //port = 0; //server = ""; //url_base = ""; spec_version_major = 1; spec_version_minor = 0; unique_service_name = "schemas-upnp-org:device:MediaServer:1"; //universal_unique_id = "00000000-FFEE-0000-0000-00000FF0000" + device_id;//TODO change to FormatStringVersion to add zeros in front of device_id if less than 1000 universal_unique_id = System.Guid.NewGuid().ToString(); root_device = new SubDevice(); root_device.DeviceType = "schemas-upnp-org:device:MediaServer:1";//urn: root_device.FriendlyName = "vpMediaServer"; root_device.Manufacturer="Voyager Project"; root_device.ManufacturerUrl="http://www.voyagerproject.org"; root_device.ModelDescription="Provides access to local and remote files."; root_device.ModelName="vpMediaServer"; root_device.ModelNumber = "0.1"; root_device.ModelUrl = "http://www.voyagerproject.org"; root_device.PresentationUrl = "http://www.voyagerproject.org"; //TODO now generate a uuid based on ip and port and an internal counter //to make each and every instance of the media browser unique //or just a random number :-) //Random rnd = new Random(); //int i = rnd.Next(65535); //string si = Convert.ToString(i, 16); root_device.UniversalUniqueID = universal_unique_id; //root_device.UniversalUniqueID = "00000000-FFEE-"+si+"-0000-00000FF0000" + device_id;//uuid: SubDevice.Service connection_manager = new SubDevice.Service(); SubDevice.Service content_directory = new SubDevice.Service(); connection_manager.ServiceType = "schemas-upnp-org:service:ConnectionManager:1"; connection_manager.ServiceID = "urn:upnp-org:serviceId:ConnectionManager"; connection_manager.ControlUrl = ""; connection_manager.EventSubUrl = ""; connection_manager.SCPDUrl = ""; content_directory.ServiceType = "schemas-upnp-org:service:ContentDirectory:1"; content_directory.ServiceID = "urn:upnp-org:serviceId:ContentDirectory"; content_directory.ControlUrl = ""; content_directory.EventSubUrl = ""; content_directory.SCPDUrl = ""; root_device.Services.Add(connection_manager); root_device.Services.Add(content_directory); }
private void ReadDeviceService(XmlNode node, SubDevice device) { if (node.HasChildNodes) { SubDevice.Service service = new SubDevice.Service(); foreach (XmlNode child in node.ChildNodes) { if (child.Name.Equals("serviceType")) service.ServiceType = child.InnerText; if (child.Name.Equals("serviceId")) service.ServiceID = child.InnerText; if (child.Name.Equals("SCPDURL")) { service.SCPDUrl = child.InnerText; if (service.SCPDUrl.StartsWith("/")) service.SCPDUrl = service.SCPDUrl.Substring(1); } if (child.Name.Equals("controlURL")) { service.ControlUrl = child.InnerText; if (service.ControlUrl.StartsWith("/")) service.ControlUrl = service.ControlUrl.Substring(1); } if (child.Name.Equals("eventSubURL")) { service.EventSubUrl = child.InnerText; if(service.EventSubUrl.StartsWith("/")) service.EventSubUrl = service.EventSubUrl.Substring(1); } } device.Services.Add(service); } }