Inheritance: System.Xml.XmlDocument
Beispiel #1
0
        public void SaveToXmlnode(EnhancedXmlDocument xmlDoc, XmlElement parentNode)
        {
            var node = xmlDoc.CreateElement("Container");

            node.SetAttribute("name", Name);
            node.SetAttribute("title", Title);
            node.SetAttribute("ext", Extension);

            var exts = String.Join(",", ExtensionList);

            node.SetAttribute("extList", exts);

            if (Default)
            {
                node.SetAttribute("default", "true");
            }

            if (!Encode)
            {
                node.SetAttribute("encode", "false");
            }

            node.SetAttribute("link", Link);

            parentNode.AppendChild(node);
        }
        public void SaveToXmlnode(EnhancedXmlDocument xmlDoc, XmlElement parentNode)
        {
            var node = xmlDoc.CreateElement("Codec");

            node.SetAttribute("name", Name);
            node.SetAttribute("title", Title);
            node.SetAttribute("link", Link);
            node.SetAttribute("cmd", Command);

            if (!string.IsNullOrEmpty(HWAcceleration))
            {
                node.SetAttribute("hwaccel", HWAcceleration);
            }

            if (!Encode)
            {
                node.SetAttribute("encode", "false");
            }

            parentNode.AppendChild(node);
        }
Beispiel #3
0
        /// <summary>
        /// Loads the configuration.
        /// </summary>
        /// <param name='path'>
        /// Path to xml config file
        /// </param>
        public static void Load(string filename)
        {
            OpenWithApplications = new List <string>();
            VideoCodecs          = new List <MediaCodec> ();
            AudioCodecs          = new List <MediaCodec> ();
            Containers           = new List <MediaContainer> ();

            DefaultVideoBitRates = new Dictionary <decimal, string> ();
            DefaultSamplingRates = new Dictionary <decimal, string> ();
            DefaultAudioBitrates = new Dictionary <decimal, string> ();

            if (!Path.IsPathRooted(filename))
            {
                // adding app path
                filename = Path.Combine(SupportMethods.AppPath + Path.DirectorySeparatorChar, filename);
            }

            if (!File.Exists(filename))
            {
                // creating default configuration
                Save(filename);
            }

            var xmlDoc = new EnhancedXmlDocument();

            xmlDoc.Load(filename);

            var appOpenWithNodes = xmlDoc.SelectNodes("//MediaConvertGUIConfiguration/Applications/OpenWith/Application");

            foreach (XmlNode appNode in appOpenWithNodes)
            {
                OpenWithApplications.Add(appNode.InnerText);
            }

            var codecNodes = xmlDoc.SelectNodes("//MediaConvertGUIConfiguration/AvailableCodecs/Video/Codec");

            foreach (XmlElement codecNode in codecNodes)
            {
                VideoCodecs.Add(MediaCodec.CreateFromXmlnode(codecNode));
            }

            var audioCodecNodes = xmlDoc.SelectNodes("//MediaConvertGUIConfiguration/AvailableCodecs/Audio/Codec");

            foreach (XmlElement codecNode in audioCodecNodes)
            {
                AudioCodecs.Add(MediaCodec.CreateFromXmlnode(codecNode));
            }

            var contNodes = xmlDoc.SelectNodes("//MediaConvertGUIConfiguration/AvailableContainers/Container");

            foreach (XmlElement cont in contNodes)
            {
                Containers.Add(MediaContainer.CreateFromXmlnode(cont));
            }

            MediaInfoPath = xmlDoc.GetSingleNodeValue("//MediaConvertGUIConfiguration/MediaInfoPath", "mediainfo");
            FFMpegPath    = xmlDoc.GetSingleNodeValue("//MediaConvertGUIConfiguration/FFMpegPath", "ffmpeg");


            LoadDictionaryFromXmlNode(DefaultVideoBitRates, xmlDoc, "//MediaConvertGUIConfiguration/DefaultVideoBitrates/Bitrate");
            LoadDictionaryFromXmlNode(DefaultSamplingRates, xmlDoc, "//MediaConvertGUIConfiguration/DefaultSamplingRates/Rate");
            LoadDictionaryFromXmlNode(DefaultAudioBitrates, xmlDoc, "//MediaConvertGUIConfiguration/DefaultAudioBitrates/Bitrate");

            // Saving
            Save(filename);
        }
Beispiel #4
0
        public static void Save(string filename)
        {
            var xmlDoc   = new EnhancedXmlDocument();
            var rootNode = xmlDoc.CreateElement("MediaConvertGUIConfiguration");

            xmlDoc.AppendChild(rootNode);

            xmlDoc.CreateTextSingleValueElement(rootNode, "MediaInfoPath", MediaInfoPath);
            xmlDoc.CreateTextSingleValueElement(rootNode, "FFMpegPath", FFMpegPath);

            var appNode = xmlDoc.CreateElement("Applications");

            rootNode.AppendChild(appNode);

            var appOpenWithNode = xmlDoc.CreateElement("OpenWith");

            appNode.AppendChild(appOpenWithNode);

            var appOpenWithCommentNode = xmlDoc.CreateComment(" <Application>vlc</Application> ");

            appOpenWithNode.AppendChild(appOpenWithCommentNode);

            foreach (var app in OpenWithApplications)
            {
                var node = xmlDoc.CreateElement("Application");
                node.InnerText = app;
                appOpenWithNode.AppendChild(node);
            }

            var codecsNode      = xmlDoc.CreateElement("AvailableCodecs");
            var videoCodecsNode = xmlDoc.CreateElement("Video");
            var audioCodecsNode = xmlDoc.CreateElement("Audio");

            rootNode.AppendChild(codecsNode);
            codecsNode.AppendChild(videoCodecsNode);
            codecsNode.AppendChild(audioCodecsNode);

            foreach (var codec in VideoCodecs)
            {
                codec.SaveToXmlnode(xmlDoc, videoCodecsNode);
            }

            foreach (var codec in AudioCodecs)
            {
                codec.SaveToXmlnode(xmlDoc, audioCodecsNode);
            }

            var containersNode = xmlDoc.CreateElement("AvailableContainers");

            rootNode.AppendChild(containersNode);

            foreach (var container in Containers)
            {
                container.SaveToXmlnode(xmlDoc, containersNode);
            }

            SaveDictionaryToXmlNode(DefaultVideoBitRates, xmlDoc, rootNode, "DefaultVideoBitrates", "Bitrate");
            SaveDictionaryToXmlNode(DefaultSamplingRates, xmlDoc, rootNode, "DefaultSamplingRates", "Rate");
            SaveDictionaryToXmlNode(DefaultAudioBitrates, xmlDoc, rootNode, "DefaultAudioBitrates", "Bitrate");

            xmlDoc.Save(filename);
        }
Beispiel #5
0
        private static void LoadDictionaryFromXmlNode(Dictionary <decimal, string> dict, EnhancedXmlDocument xmlDoc, string xpath)
        {
            var nodes = xmlDoc.SelectNodes(xpath);

            foreach (XmlElement nodeEl in nodes)
            {
                decimal val   = 0;
                string  title = "";

                if (nodeEl.HasAttribute("value"))
                {
                    val = Convert.ToDecimal(nodeEl.GetAttribute("value"));
                }

                if (nodeEl.HasAttribute("title"))
                {
                    title = nodeEl.GetAttribute("title");
                }

                if (title == "")
                {
                    title = val.ToString("N0");
                }

                dict.Add(val, title);
            }
        }
Beispiel #6
0
        private static void SaveDictionaryToXmlNode(Dictionary <decimal, string> dict, EnhancedXmlDocument xmlDoc, XmlElement parentNode, string mainNodeName, string nodeName)
        {
            var mainNode = xmlDoc.CreateElement(mainNodeName);

            parentNode.AppendChild(mainNode);

            foreach (var keyAndValue in dict)
            {
                var node = xmlDoc.CreateElement(nodeName);
                node.SetAttribute("value", keyAndValue.Key.ToString());
                node.SetAttribute("title", keyAndValue.Value);
                mainNode.AppendChild(node);
            }
        }