]> granicus.if.org Git - handbrake/commitdiff
WinGui: Further updates to the preset import/export functionality.
authorsr55 <sr55.hb@outlook.com>
Thu, 21 Aug 2014 16:28:49 +0000 (16:28 +0000)
committersr55 <sr55.hb@outlook.com>
Thu, 21 Aug 2014 16:28:49 +0000 (16:28 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6332 b64f7644-9d1e-0410-96f1-a4d463321fa5

win/CS/HandBrake.ApplicationServices/Factories/PlistPresetFactory.cs
win/CS/HandBrake.ApplicationServices/Utilities/PlistUtility.cs

index c50d6443df966d507b54efde7c8fc11f26e789f1..d8014aeab28de9b05bf95112d0e0b9606c9f8e81 100644 (file)
@@ -173,7 +173,7 @@ namespace HandBrake.ApplicationServices.Factories
                     preset.Task.CustomDecomb = kvp.Value;\r
                     break;\r
                 case "PictureDecombDeinterlace":\r
-                    preset.UseDeinterlace = kvp.Value == 1;\r
+                    preset.UseDeinterlace = kvp.Value == true;\r
                     break;\r
                 case "PictureDeinterlace":\r
                     preset.Task.Deinterlace = (Deinterlace)kvp.Value;\r
@@ -229,7 +229,7 @@ namespace HandBrake.ApplicationServices.Factories
                     }\r
                     break;\r
                 case "VideoGrayScale":\r
-                    preset.Task.Grayscale = kvp.Value == 1;\r
+                    preset.Task.Grayscale = kvp.Value == true;\r
                     break;\r
                 case "VideoQualitySlider":\r
                     preset.Task.Quality = double.Parse(kvp.Value.ToString(), CultureInfo.InvariantCulture);\r
index 08c746ba093462d8980818138b49ceab65315570..9f3ba99916408ae75ce63c60e3b71f13db3e10d2 100644 (file)
@@ -127,166 +127,54 @@ namespace HandBrake.ApplicationServices.Utilities
         /// </param>\r
         private static void AddEncodeSettings(XmlTextWriter xmlWriter, EncodeTask parsed, Preset preset, string build)\r
         {\r
-            AddEncodeElement(xmlWriter, "AudioAllowAACPass", "integer", getNullBoolValue(parsed.AllowedPassthruOptions.AudioAllowAACPass));\r
-            AddEncodeElement(xmlWriter, "AudioAllowAC3Pass", "integer", getNullBoolValue(parsed.AllowedPassthruOptions.AudioAllowAC3Pass));\r
-            AddEncodeElement(xmlWriter, "AudioAllowDTSHDPass", "integer", getNullBoolValue(parsed.AllowedPassthruOptions.AudioAllowDTSHDPass));\r
-            AddEncodeElement(xmlWriter, "AudioAllowDTSPass", "integer", getNullBoolValue(parsed.AllowedPassthruOptions.AudioAllowDTSPass));\r
-            AddEncodeElement(xmlWriter, "AudioAllowMP3Pass", "integer", getNullBoolValue(parsed.AllowedPassthruOptions.AudioAllowMP3Pass));\r
+            AddBooleanElement(xmlWriter, "AudioAllowAACPass", parsed.AllowedPassthruOptions.AudioAllowAACPass);\r
+            AddBooleanElement(xmlWriter, "AudioAllowAC3Pass", parsed.AllowedPassthruOptions.AudioAllowAC3Pass);\r
+            AddBooleanElement(xmlWriter, "AudioAllowDTSHDPass", parsed.AllowedPassthruOptions.AudioAllowDTSHDPass);\r
+            AddBooleanElement(xmlWriter, "AudioAllowDTSPass", parsed.AllowedPassthruOptions.AudioAllowDTSPass);\r
+            AddBooleanElement(xmlWriter, "AudioAllowMP3Pass", parsed.AllowedPassthruOptions.AudioAllowMP3Pass);\r
+\r
+            // TODO Update\r
             AddEncodeElement(xmlWriter, "AudioEncoderFallback", "string", EnumHelper<AudioEncoder>.GetDisplay(parsed.AllowedPassthruOptions.AudioEncoderFallback));\r
 \r
-            AddEncodeElement(xmlWriter, "ChapterMarkers", "integer", parsed.IncludeChapterMarkers ? "1" : "0");\r
+            AddBooleanElement(xmlWriter, "ChapterMarkers", parsed.IncludeChapterMarkers);\r
             AddEncodeElement(xmlWriter, "Default", "integer", "0");\r
-            AddEncodeElement(xmlWriter, "FileFormat", "string", (parsed.OutputFormat == OutputFormat.Mp4) ? "MP4 file" : "MKV file");\r
+            AddEncodeElement(xmlWriter, "FileFormat", "string", (parsed.OutputFormat == OutputFormat.Mp4) ? "MP4 file" : "MKV file"); // TODO\r
             AddBooleanElement(xmlWriter, "Folder", false);\r
             AddEncodeElement(xmlWriter, "Mp4HttpOptimize", "integer", parsed.OptimizeMP4 ? "1" : "0");\r
             AddEncodeElement(xmlWriter, "Mp4iPodCompatible", "integer", parsed.IPod5GSupport ? "1" : "0");\r
             AddEncodeElement(xmlWriter, "PictureAutoCrop", "integer", "1");\r
-            AddEncodeElement(xmlWriter, "PictureBottomCrop", "integer", parsed.Cropping.Bottom.ToString());\r
+            \r
 \r
             // Filters\r
             AddEncodeElement(xmlWriter, "PictureDeblock", "integer", parsed.Deblock.ToString());\r
 \r
-            switch (parsed.Decomb)\r
-            {\r
-                case Decomb.Off:\r
-                    AddEncodeElement(xmlWriter, "PictureDecomb", "integer", "0");\r
-                    AddEncodeElement(xmlWriter, "PictureDecombCustom", "string", string.Empty);\r
-                    break;\r
-                case Decomb.Default:\r
-                    AddEncodeElement(xmlWriter, "PictureDecomb", "integer", "2");\r
-                    AddEncodeElement(xmlWriter, "PictureDecombCustom", "string", string.Empty);\r
-                    break;\r
-                case Decomb.Fast:\r
-                    AddEncodeElement(xmlWriter, "PictureDecomb", "integer", "3");\r
-                    AddEncodeElement(xmlWriter, "PictureDecombCustom", "string", string.Empty);\r
-                    break;\r
-                case Decomb.Bob:\r
-                    AddEncodeElement(xmlWriter, "PictureDecomb", "integer", "4");\r
-                    AddEncodeElement(xmlWriter, "PictureDecombCustom", "string", string.Empty);\r
-                    break;\r
-                case Decomb.Custom:\r
-                    AddEncodeElement(xmlWriter, "PictureDecomb", "integer", "1");\r
-                    AddEncodeElement(xmlWriter, "PictureDecombCustom", "string", parsed.CustomDecomb);\r
-                    break;\r
-            }\r
-            AddEncodeElement(xmlWriter, "PictureDecombDeinterlace", "integer", parsed.Decomb != Decomb.Off ? "0" : "1");\r
-\r
-            switch (parsed.Deinterlace)\r
-            {\r
-                case Deinterlace.Off:\r
-                    AddEncodeElement(xmlWriter, "PictureDeinterlace", "integer", "0");\r
-                    AddEncodeElement(xmlWriter, "PictureDeinterlaceCustom", "string", string.Empty);\r
-                    break;\r
-                case Deinterlace.Fast:\r
-                    AddEncodeElement(xmlWriter, "PictureDeinterlace", "integer", "2");\r
-                    AddEncodeElement(xmlWriter, "PictureDeinterlaceCustom", "string", string.Empty);\r
-                    break;\r
-                case Deinterlace.Slow:\r
-                    AddEncodeElement(xmlWriter, "PictureDeinterlace", "integer", "3");\r
-                    AddEncodeElement(xmlWriter, "PictureDeinterlaceCustom", "string", string.Empty);\r
-                    break;\r
-                case Deinterlace.Slower:\r
-                    AddEncodeElement(xmlWriter, "PictureDeinterlace", "integer", "4");\r
-                    AddEncodeElement(xmlWriter, "PictureDeinterlaceCustom", "string", string.Empty);\r
-                    break;\r
-                case Deinterlace.Bob:\r
-                    AddEncodeElement(xmlWriter, "PictureDeinterlace", "integer", "5");\r
-                    AddEncodeElement(xmlWriter, "PictureDeinterlaceCustom", "string", string.Empty);\r
-                    break;\r
-                case Deinterlace.Custom:\r
-                    AddEncodeElement(xmlWriter, "PictureDeinterlace", "integer", "1");\r
-                    AddEncodeElement(xmlWriter, "PictureDeinterlaceCustom", "string", parsed.CustomDeinterlace);\r
-                    break;\r
-            }\r
-\r
+            AddBooleanElement(xmlWriter, "PictureDecombDeinterlace", parsed.Decomb != Decomb.Off);\r
+            AddEncodeElement(xmlWriter, "PictureDecombCustom", "string", parsed.Decomb == Decomb.Custom ? parsed.CustomDecomb : string.Empty);\r
+            AddEncodeElement(xmlWriter, "PictureDecomb", "integer", ((int)parsed.Decomb).ToString());\r
+            AddEncodeElement(xmlWriter, "PictureDeinterlaceCustom", "string", parsed.Deinterlace == Deinterlace.Custom ? parsed.CustomDeinterlace : string.Empty);\r
+            AddEncodeElement(xmlWriter, "PictureDeinterlace", "integer", ((int)parsed.Deinterlace).ToString());\r
 \r
-            if (parsed.Denoise == Denoise.hqdn3d)\r
-            {\r
-                switch (parsed.DenoisePreset)\r
-                {\r
-                    case DenoisePreset.Weak:\r
-                        AddEncodeElement(xmlWriter, "PictureDenoise", "integer", "2");\r
-                        AddEncodeElement(xmlWriter, "PictureDenoiseCustom", "string", string.Empty);\r
-                        break;\r
-                    case DenoisePreset.Medium:\r
-                        AddEncodeElement(xmlWriter, "PictureDenoise", "integer", "3");\r
-                        AddEncodeElement(xmlWriter, "PictureDenoiseCustom", "string", string.Empty);\r
-                        break;\r
-                    case DenoisePreset.Strong:\r
-                        AddEncodeElement(xmlWriter, "PictureDenoise", "integer", "4");\r
-                        AddEncodeElement(xmlWriter, "PictureDenoiseCustom", "string", string.Empty);\r
-                        break;\r
-                    case DenoisePreset.Custom:\r
-                        AddEncodeElement(xmlWriter, "PictureDenoise", "integer", "1");\r
-                        AddEncodeElement(xmlWriter, "PictureDenoiseCustom", "string", parsed.CustomDenoise);\r
-                        break;\r
-                }\r
-            }\r
 \r
-            // These keys are still TBD.   TODO Update these\r
+            AddEncodeElement(xmlWriter, "PictureDenoiseFilter", "string", parsed.Denoise.ToString().ToLower());\r
+            AddEncodeElement(xmlWriter, "PictureDenoiseCustom", "string", parsed.DenoisePreset == DenoisePreset.Custom ? parsed.CustomDenoise : string.Empty);\r
+            AddEncodeElement(xmlWriter, "PictureDenoisePreset", "string", parsed.DenoisePreset.ToString().ToLower());\r
             if (parsed.Denoise == Denoise.NLMeans)\r
             {\r
-                switch (parsed.DenoisePreset)\r
-                {\r
-                    case DenoisePreset.Ultralight:\r
-                        AddEncodeElement(xmlWriter, "DenoisePreset", "integer", "1");\r
-                        break;\r
-                    case DenoisePreset.Light:\r
-                        AddEncodeElement(xmlWriter, "DenoisePreset", "integer", "2");\r
-                        break;\r
-                    case DenoisePreset.Medium:\r
-                        AddEncodeElement(xmlWriter, "DenoisePreset", "integer", "3");\r
-                        break;\r
-                    case DenoisePreset.Strong:\r
-                        AddEncodeElement(xmlWriter, "DenoisePreset", "integer", "4");\r
-                        break;\r
-                }\r
-\r
-                switch (parsed.DenoiseTune)\r
-                {\r
-                    case DenoiseTune.None:\r
-                        AddEncodeElement(xmlWriter, "DenoiseTune", "integer", "0");\r
-                        break;\r
-                    case DenoiseTune.Animation:\r
-                        AddEncodeElement(xmlWriter, "DenoiseTune", "integer", "1");\r
-                        break;\r
-                    case DenoiseTune.Film:\r
-                        AddEncodeElement(xmlWriter, "DenoiseTune", "integer", "2");\r
-                        break;\r
-                    case DenoiseTune.Grain:\r
-                        AddEncodeElement(xmlWriter, "DenoiseTune", "integer", "3");\r
-                        break;\r
-                    case DenoiseTune.HighMotion:\r
-                        AddEncodeElement(xmlWriter, "DenoiseTune", "integer", "4");\r
-                        break;\r
-                }\r
-            }\r
-\r
-            int detelecine = 0;\r
-            switch (parsed.Detelecine)\r
-            {\r
-                case Detelecine.Off:\r
-                    detelecine = 0;\r
-                    break;\r
-                case Detelecine.Default:\r
-                    detelecine = 2;\r
-                    break;\r
-                case Detelecine.Custom:\r
-                    detelecine = 1;\r
-                    break;\r
+                AddEncodeElement(xmlWriter, "PictureDenoiseTune", "string", parsed.DenoiseTune.ToString().ToLower());\r
             }\r
 \r
-            AddEncodeElement(xmlWriter, "PictureDetelecine", "integer", detelecine.ToString());\r
-            AddEncodeElement(xmlWriter, "PictureDetelecineCustom", "string", detelecine == 1 ? parsed.CustomDecomb : string.Empty);\r
+            AddEncodeElement(xmlWriter, "PictureDetelecine", "integer", ((int)parsed.Detelecine).ToString());\r
+            AddEncodeElement(xmlWriter, "PictureDetelecineCustom", "string", parsed.Detelecine == Detelecine.Custom ? parsed.CustomDecomb : string.Empty);\r
 \r
             // Picture Settings\r
             AddEncodeElement(xmlWriter, "PictureHeight", "integer", parsed.Height.ToString());\r
-            AddEncodeElement(xmlWriter, "PictureKeepRatio", "integer", parsed.KeepDisplayAspect ? "1" : "0");\r
-            AddEncodeElement(xmlWriter, "PictureLeftCrop", "integer", parsed.Cropping.Left.ToString());\r
+            AddEncodeElement(xmlWriter, "PictureKeepRatio", "integer", parsed.KeepDisplayAspect ? "1" : "0");          \r
             AddEncodeElement(xmlWriter, "PictureModulus", "integer", parsed.Modulus.ToString());\r
             AddEncodeElement(xmlWriter, "PicturePAR", "integer", ((int)parsed.Anamorphic).ToString());\r
+            AddEncodeElement(xmlWriter, "PictureLeftCrop", "integer", parsed.Cropping.Left.ToString());\r
             AddEncodeElement(xmlWriter, "PictureRightCrop", "integer", parsed.Cropping.Right.ToString());\r
             AddEncodeElement(xmlWriter, "PictureTopCrop", "integer", parsed.Cropping.Top.ToString());\r
+            AddEncodeElement(xmlWriter, "PictureBottomCrop", "integer", parsed.Cropping.Bottom.ToString());\r
             AddEncodeElement(xmlWriter, "PictureWidth", "integer", parsed.Width.ToString());\r
 \r
             // Preset Information\r
@@ -298,14 +186,14 @@ namespace HandBrake.ApplicationServices.Utilities
             // Preset Settings\r
             AddEncodeElement(xmlWriter, "UsesMaxPictureSettings", "integer", (parsed.MaxWidth != 0 || parsed.MaxHeight != 0) ? "1" : "0");\r
             AddEncodeElement(xmlWriter, "UsesPictureFilters", "integer", "1");\r
-            AddEncodeElement(xmlWriter, "UsesPictureSettings", "integer", "2");\r
+            AddEncodeElement(xmlWriter, "UsesPictureSettings", "integer", "1");\r
 \r
             // Video Settings\r
             AddEncodeElement(xmlWriter, "VideoAvgBitrate", "string", parsed.VideoBitrate.ToString());\r
             AddEncodeElement(xmlWriter, "VideoEncoder", "string", EnumHelper<VideoEncoder>.GetDisplay(parsed.VideoEncoder));\r
             AddEncodeElement(xmlWriter, "VideoFramerate", "string", parsed.Framerate == null ? "Same as source" : parsed.Framerate.ToString());\r
             AddEncodeElement(xmlWriter, "VideoFramerateMode", "string", parsed.FramerateMode.ToString().ToLower());\r
-            AddEncodeElement(xmlWriter, "VideoGrayScale", "integer", parsed.Grayscale ? "1" : "0");\r
+            AddBooleanElement(xmlWriter, "VideoGrayScale", parsed.Grayscale);\r
             AddEncodeElement(xmlWriter, "VideoQualitySlider", "real", parsed.Quality.ToString());\r
             AddEncodeElement(xmlWriter, "h264Level", "string", parsed.H264Level);\r
             AddEncodeElement(xmlWriter, "x264OptionExtra", "string", parsed.AdvancedEncoderOptions);\r
@@ -318,7 +206,6 @@ namespace HandBrake.ApplicationServices.Utilities
             }\r
             AddEncodeElement(xmlWriter, "x264Tune", "string", tune);\r
             AddEncodeElement(xmlWriter, "x264UseAdvancedOptions", "integer", parsed.ShowAdvancedTab ? "1" : "0");\r
-            AddEncodeElement(xmlWriter, "qsvPreset", "string", parsed.QsvPreset.ToString().ToLower());\r
 \r
             AddEncodeElement(xmlWriter, "h265Profile", "string", parsed.H265Profile.ToString().ToLower());\r
             AddEncodeElement(xmlWriter, "x265Preset", "string", parsed.X265Preset.ToString().ToLower());\r
@@ -349,12 +236,12 @@ namespace HandBrake.ApplicationServices.Utilities
         /// <param name="value">\r
         /// The value.\r
         /// </param>\r
-        private static void AddBooleanElement(XmlTextWriter xmlWriter, string keyName, bool value)\r
+        private static void AddBooleanElement(XmlTextWriter xmlWriter, string keyName, bool? value)\r
         {\r
             xmlWriter.WriteStartElement("key");\r
             xmlWriter.WriteString(keyName);\r
             xmlWriter.WriteEndElement();\r
-            xmlWriter.WriteStartElement(value ? "true" : "false");\r
+            xmlWriter.WriteStartElement(value.HasValue ? value.Value ? "true" : "false" : "false");\r
             xmlWriter.WriteEndElement();\r
         }\r
 \r