예제 #1
0
            /// <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);
            }
예제 #2
0
 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);
     }
 }