OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / Functions / QueryParser.cs
index 0b7c2a3..413f8fa 100644 (file)
@@ -9,79 +9,81 @@ using System.Globalization;
 using System.Text.RegularExpressions;\r
 using System.Windows.Forms;\r
 using System.Collections;\r
+using Handbrake.Model;\r
 \r
 namespace Handbrake.Functions\r
 {\r
-    internal class QueryParser\r
+    public class QueryParser\r
     {\r
         private static readonly CultureInfo Culture = new CultureInfo("en-US", false);\r
 \r
         #region Varibles\r
 \r
-        #region Source\r
-        public int DVDTitle { get; private set; }\r
-        public int DVDChapterStart { get; private set; }\r
-        public int DVDChapterFinish { get; private set; }\r
-        #endregion\r
-\r
-        #region Output Settings\r
-        public string Format { get; private set; }\r
-        public Boolean LargeMP4 { get; private set; }\r
-        public Boolean IpodAtom { get; private set; }\r
-        public Boolean OptimizeMP4 { get; private set; }\r
-        #endregion\r
-\r
-        #region Picture Settings\r
-        public int Width { get; private set; }\r
-        public int Height { get; private set; }\r
-        public int MaxWidth { get; private set; }\r
-        public int MaxHeight { get; private set; }\r
-        public string CropValues { get; private set; }\r
-        public string CropTop { get; private set; }\r
-        public string CropBottom { get; private set; }\r
-        public string CropLeft { get; private set; }\r
-        public string CropRight { get; private set; }\r
-        public int AnamorphicMode { get; private set; }\r
-        public Boolean keepDisplayAsect { get; private set; }\r
-        public double displayWidthValue { get; private set; }\r
-        public int pixelAspectWidth { get; private set; }\r
-        public int pixelAspectHeight { get; private set; }\r
-        public int AnamorphicModulus { get; private set; }\r
-        #endregion\r
-\r
-        #region Video Filters\r
-        public string DeTelecine { get; private set; }\r
-        public int DeBlock { get; private set; }\r
-        public string DeInterlace { get; private set; }\r
-        public string DeNoise { get; private set; }\r
-        public string Decomb { get; private set; }\r
-        #endregion\r
-\r
-        #region Video Settings\r
-        public string VideoEncoder { get; private set; }\r
-        public Boolean Grayscale { get; private set; }\r
-        public Boolean TwoPass { get; private set; }\r
-        public Boolean TurboFirstPass { get; private set; }\r
-        public string VideoFramerate { get; private set; }\r
-        public string AverageVideoBitrate { get; private set; }\r
-        public string VideoTargetSize { get; private set; }\r
-        public float VideoQuality { get; private set; }\r
-        #endregion\r
-\r
-        #region Audio Settings\r
-        public ArrayList AudioInformation { get; private set; }\r
-        public string Subtitles { get; private set; }\r
-        public Boolean ForcedSubtitles { get; private set; }\r
-        #endregion\r
-\r
-        #region Chapter Markers\r
-        public Boolean ChapterMarkers { get; private set; }\r
-        #endregion\r
-\r
-        #region Other\r
-        public string H264Query { get; private set; }\r
-        public Boolean Verbose { get; private set; }\r
-        #endregion\r
+        // Source\r
+        public int DVDTitle { get; set; }\r
+        public int DVDChapterStart { get; set; }\r
+        public int DVDChapterFinish { get; set; }\r
+\r
+        // Output Settings\r
+        public string Format { get; set; }\r
+        public Boolean LargeMP4 { get; set; }\r
+        public Boolean IpodAtom { get; set; }\r
+        public Boolean OptimizeMP4 { get; set; }\r
+\r
+        // Picture Settings\r
+        public int Width { get; set; }\r
+        public int Height { get; set; }\r
+        public int MaxWidth { get; set; }\r
+        public int MaxHeight { get; set; }\r
+        public string CropValues { get; set; }\r
+        public string CropTop { get; set; }\r
+        public string CropBottom { get; set; }\r
+        public string CropLeft { get; set; }\r
+        public string CropRight { get; set; }\r
+        public int AnamorphicMode { get; set; }\r
+        public Boolean KeepDisplayAsect { get; set; }\r
+        public double DisplayWidthValue { get; set; }\r
+        public int PixelAspectWidth { get; set; }\r
+        public int PixelAspectHeight { get; set; }\r
+        public int AnamorphicModulus { get; set; }\r
+\r
+        // Video Filters\r
+        public string DeTelecine { get; set; }\r
+        public int DeBlock { get; set; }\r
+        public string DeInterlace { get; set; }\r
+        public string DeNoise { get; set; }\r
+        public string Decomb { get; set; }\r
+\r
+        // Video Settings\r
+        public string VideoEncoder { get; set; }\r
+        public Boolean Grayscale { get; set; }\r
+        public Boolean TwoPass { get; set; }\r
+        public Boolean TurboFirstPass { get; set; }\r
+        public string VideoFramerate { get; set; }\r
+        public string AverageVideoBitrate { get; set; }\r
+        public string VideoTargetSize { get; set; }\r
+        public float VideoQuality { get; set; }\r
+\r
+        // Audio Settings\r
+        public ArrayList AudioInformation { get; set; }\r
+        public string Subtitles { get; set; }\r
+        public Boolean ForcedSubtitles { get; set; }\r
+\r
+        // Chapter Markers\r
+        public Boolean ChapterMarkers { get; set; }\r
+\r
+        // Other\r
+        public string H264Query { get; set; }\r
+        public Boolean Verbose { get; set; }\r
+\r
+        // Preset Information\r
+        public int PresetBuildNumber { get; set; }\r
+        public string PresetDescription { get; set; }\r
+        public string PresetName { get; set; }\r
+        public string Type { get; set; }\r
+        public Boolean UsesMaxPictureSettings { get; set; }\r
+        public Boolean UsesPictureFilters { get; set; }\r
+        public Boolean UsesPictureSettings { get; set; }\r
 \r
         #endregion\r
 \r
@@ -204,7 +206,7 @@ namespace Handbrake.Functions
 \r
                 if (width.Success)\r
                     thisQuery.Width = int.Parse(width.Groups[0].Value.Replace("-w ", ""));\r
-                                                              \r
+\r
                 if (height.Success)\r
                     thisQuery.Height = int.Parse(height.Groups[0].Value.Replace("-l ", ""));\r
 \r
@@ -222,7 +224,7 @@ namespace Handbrake.Functions
                     thisQuery.CropBottom = actCropValues[1];\r
                     thisQuery.CropLeft = actCropValues[2];\r
                     thisQuery.CropRight = actCropValues[3];\r
-                } \r
+                }\r
 \r
                 if (strictAnamorphic.Success)\r
                     thisQuery.AnamorphicMode = 1;\r
@@ -233,16 +235,16 @@ namespace Handbrake.Functions
                 else\r
                     thisQuery.AnamorphicMode = 0;\r
 \r
-                thisQuery.keepDisplayAsect = keepDisplayAsect.Success;\r
+                thisQuery.KeepDisplayAsect = keepDisplayAsect.Success;\r
 \r
                 if (displayWidth.Success)\r
-                    thisQuery.displayWidthValue = double.Parse(displayWidth.Groups[0].Value.Replace("--display-width ", ""));\r
+                    thisQuery.DisplayWidthValue = double.Parse(displayWidth.Groups[0].Value.Replace("--display-width ", ""));\r
 \r
                 if (pixelAspect.Success)\r
-                    thisQuery.pixelAspectWidth = int.Parse(pixelAspect.Groups[0].Value.Replace("--pixel-aspect ", ""));\r
+                    thisQuery.PixelAspectWidth = int.Parse(pixelAspect.Groups[1].Value.Replace("--pixel-aspect ", ""));\r
 \r
-                if (pixelAspect.Success)\r
-                    thisQuery.pixelAspectHeight = int.Parse(pixelAspect.Groups[1].Value.Replace("--pixel-aspect ", ""));\r
+                if (pixelAspect.Success && pixelAspect.Groups.Count >=3)\r
+                    thisQuery.PixelAspectHeight = int.Parse(pixelAspect.Groups[2].Value.Replace("--pixel-aspect ", ""));\r
 \r
                 if (modulus.Success)\r
                     thisQuery.AnamorphicModulus = int.Parse(modulus.Groups[0].Value.Replace("--modulus ", ""));\r
@@ -260,7 +262,7 @@ namespace Handbrake.Functions
                         thisQuery.Decomb = decombValue.ToString().Replace("--decomb=", "").Replace("\"", "");\r
                 }\r
 \r
-                thisQuery.DeInterlace = "None";\r
+                thisQuery.DeInterlace = "Off";\r
                 if (deinterlace.Success)\r
                 {\r
                     thisQuery.DeInterlace = deinterlace.ToString().Replace("--deinterlace=", "").Replace("\"", "");\r
@@ -268,7 +270,7 @@ namespace Handbrake.Functions
                     thisQuery.DeInterlace = thisQuery.DeInterlace.Replace("slowest", "Slowest");\r
                 }\r
 \r
-                thisQuery.DeNoise = "None";\r
+                thisQuery.DeNoise = "Off";\r
                 if (denoise.Success)\r
                 {\r
                     thisQuery.DeNoise = denoise.ToString().Replace("--denoise=", "").Replace("\"", "");\r
@@ -328,7 +330,9 @@ namespace Handbrake.Functions
                 {\r
                     float qConvert = float.Parse(videoQuality.ToString().Replace("-q ", ""), Culture);\r
                     thisQuery.VideoQuality = qConvert;\r
-                }\r
+                } \r
+                else\r
+                    thisQuery.VideoQuality = -1;\r
                 #endregion\r
 \r
                 #region Audio Tab\r
@@ -362,7 +366,7 @@ namespace Handbrake.Functions
                     trackDRCvalues = drcValues.ToString().Replace("-D ", "").Split(',');\r
 \r
                 // Create new Audio Track Classes and store them in the ArrayList\r
-                ArrayList AllAudioTrackInfo = new ArrayList();\r
+                ArrayList allAudioTrackInfo = new ArrayList();\r
                 for (int x = 0; x < encoderCount; x++)\r
                 {\r
                     AudioTrack track = new AudioTrack();\r
@@ -372,11 +376,11 @@ namespace Handbrake.Functions
 \r
                     if (trackMixes != null)\r
                         if (trackMixes.Length >= (x + 1))                        // Audio Mix\r
-                            track.MixDown = getMixDown(trackMixes[x].Trim());\r
+                            track.MixDown = GetMixDown(trackMixes[x].Trim());\r
 \r
                     if (trackEncoders != null)\r
                         if (trackEncoders.Length >= (x + 1))                     // Audio Mix\r
-                            track.Encoder = getAudioEncoder(trackEncoders[x].Trim());\r
+                            track.Encoder = GetAudioEncoder(trackEncoders[x].Trim());\r
 \r
                     if (trackBitrates != null)\r
                         if (trackBitrates.Length >= (x + 1))                     // Audio Encoder\r
@@ -390,9 +394,9 @@ namespace Handbrake.Functions
                         if (trackDRCvalues.Length >= (x + 1))                   // Audio DRC Values\r
                             track.DRC = trackDRCvalues[x].Trim();\r
 \r
-                    AllAudioTrackInfo.Add(track);\r
+                    allAudioTrackInfo.Add(track);\r
                 }\r
-                thisQuery.AudioInformation = AllAudioTrackInfo;\r
+                thisQuery.AudioInformation = allAudioTrackInfo;\r
 \r
                 // Subtitle Stuff\r
                 if (subtitles.Success)\r
@@ -428,7 +432,13 @@ namespace Handbrake.Functions
 \r
             return thisQuery;\r
         }\r
-        private static string getMixDown(string mixdown)\r
+\r
+        /// <summary>\r
+        /// Get the GUI equiv to a CLI mixdown\r
+        /// </summary>\r
+        /// <param name="mixdown"></param>\r
+        /// <returns></returns>\r
+        private static string GetMixDown(string mixdown)\r
         {\r
             switch (mixdown.Trim())\r
             {\r
@@ -446,7 +456,13 @@ namespace Handbrake.Functions
                     return "Automatic";\r
             }\r
         }\r
-        private static string getAudioEncoder(string audioEnc)\r
+\r
+        /// <summary>\r
+        /// Get the GUI equiv to a CLI audio encoder\r
+        /// </summary>\r
+        /// <param name="audioEnc"></param>\r
+        /// <returns></returns>\r
+        private static string GetAudioEncoder(string audioEnc)\r
         {\r
             switch (audioEnc)\r
             {\r
@@ -465,23 +481,4 @@ namespace Handbrake.Functions
             }\r
         }\r
     }\r
-\r
-    public class AudioTrack\r
-    {\r
-        public AudioTrack()\r
-        {\r
-            // Default Values\r
-            Track = "Automatic";\r
-            MixDown = "Automatic";\r
-            SampleRate = "Auto";\r
-            Bitrate = "Auto";\r
-            DRC = "1";\r
-        }\r
-        public string Track { get; set; }\r
-        public string MixDown { get; set; }\r
-        public string Encoder { get; set; }\r
-        public string Bitrate { get; set; }\r
-        public string SampleRate { get; set; }\r
-        public string DRC { get; set; }\r
-    }\r
 }
\ No newline at end of file