]> granicus.if.org Git - handbrake/commitdiff
WinGui: Pad out some initial infrastructure to read built-in presets from libhb.
authorsr55 <sr55.hb@outlook.com>
Sat, 9 May 2015 18:22:11 +0000 (18:22 +0000)
committersr55 <sr55.hb@outlook.com>
Sat, 9 May 2015 18:22:11 +0000 (18:22 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7167 b64f7644-9d1e-0410-96f1-a4d463321fa5

win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj
win/CS/HandBrake.ApplicationServices/Interop/HandBrakePresetService.cs [new file with mode: 0644]
win/CS/HandBrake.ApplicationServices/Interop/HbLib/HbFunctions.cs
win/CS/HandBrake.ApplicationServices/Interop/Json/Encode/AudioTrack.cs
win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/AudioList.cs [new file with mode: 0644]
win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/Preset.cs [new file with mode: 0644]
win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/PresetCategory.cs [new file with mode: 0644]

index bb6fef13676e2442b43fa42f3032a560dea1e91a..683f133f486196b53726c11690a281c772ac1323 100644 (file)
@@ -86,6 +86,7 @@
     <Compile Include="Interop\HandBrakeInstance.cs" />\r
     <Compile Include="Interop\HandBrakeInstanceManager.cs" />\r
     <Compile Include="Interop\HandBrakeLanguagesHelper.cs" />\r
+    <Compile Include="Interop\HandBrakePresetService.cs" />\r
     <Compile Include="Interop\HandBrakeUnitConversionHelpers.cs" />\r
     <Compile Include="Interop\HandBrakeUtils.cs" />\r
     <Compile Include="Interop\HbLib\HBDelegates.cs" />\r
     <Compile Include="Interop\Interfaces\IHandBrakeInstance.cs" />\r
     <Compile Include="Interop\Json\Anamorphic\AnamorphicGeometry.cs" />\r
     <Compile Include="Interop\Json\Anamorphic\DestSettings.cs" />\r
-    <Compile Include="Interop\Json\Encode\QSV.cs" />
-    <Compile Include="Interop\Json\Shared\PAR.cs" />
-    <Compile Include="Interop\Json\Encode\Audio.cs" />
-    <Compile Include="Interop\Json\Encode\AudioTrack.cs" />
-    <Compile Include="Interop\Json\Encode\Chapter.cs" />
-    <Compile Include="Interop\Json\Encode\Destination.cs" />
-    <Compile Include="Interop\Json\Encode\Filters.cs" />
-    <Compile Include="Interop\Json\Encode\Filter.cs" />
-    <Compile Include="Interop\Json\Encode\JsonEncodeObject.cs" />
-    <Compile Include="Interop\Json\Encode\Metadata.cs" />
-    <Compile Include="Interop\Json\Encode\Mp4Options.cs" />
-    <Compile Include="Interop\Json\Encode\Range.cs" />
-    <Compile Include="Interop\Json\Encode\SubtitleSearch.cs" />
-    <Compile Include="Interop\Json\Encode\Source.cs" />
-    <Compile Include="Interop\Json\Encode\SRT.cs" />
-    <Compile Include="Interop\Json\Encode\Subtitles.cs" />
-    <Compile Include="Interop\Json\Encode\SubtitleTrack.cs" />
-    <Compile Include="Interop\Json\Encode\Video.cs" />
-    <Compile Include="Interop\Factories\AnamorphicFactory.cs" />
-    <Compile Include="Services\Encode\Factories\EncodeFactory.cs" />
-    <Compile Include="Interop\Json\Scan\SourceAudioTrack.cs" />
-    <Compile Include="Interop\Json\Scan\SourceChapter.cs" />
-    <Compile Include="Interop\Json\Scan\Color.cs" />
-    <Compile Include="Interop\Json\Scan\Duration.cs" />
-    <Compile Include="Interop\Json\Scan\FrameRate.cs" />
-    <Compile Include="Interop\Json\Shared\Geometry.cs" />
-    <Compile Include="Interop\Json\Scan\JsonScanObject.cs" />
-    <Compile Include="Interop\Json\Scan\SourceMetadata.cs" />
-    <Compile Include="Interop\Json\Scan\SourceSubtitleTrack.cs" />
-    <Compile Include="Interop\Json\Scan\SourceTitle.cs" />
-    <Compile Include="Interop\Json\State\JsonState.cs" />
-    <Compile Include="Interop\Json\State\Scanning.cs" />
+    <Compile Include="Interop\Json\Encode\QSV.cs" />\r
+    <Compile Include="Interop\Json\Presets\AudioList.cs" />\r
+    <Compile Include="Interop\Json\Presets\Preset.cs" />\r
+    <Compile Include="Interop\Json\Presets\PresetCategory.cs" />\r
+    <Compile Include="Interop\Json\Shared\PAR.cs" />\r
+    <Compile Include="Interop\Json\Encode\Audio.cs" />\r
+    <Compile Include="Interop\Json\Encode\AudioTrack.cs" />\r
+    <Compile Include="Interop\Json\Encode\Chapter.cs" />\r
+    <Compile Include="Interop\Json\Encode\Destination.cs" />\r
+    <Compile Include="Interop\Json\Encode\Filters.cs" />\r
+    <Compile Include="Interop\Json\Encode\Filter.cs" />\r
+    <Compile Include="Interop\Json\Encode\JsonEncodeObject.cs" />\r
+    <Compile Include="Interop\Json\Encode\Metadata.cs" />\r
+    <Compile Include="Interop\Json\Encode\Mp4Options.cs" />\r
+    <Compile Include="Interop\Json\Encode\Range.cs" />\r
+    <Compile Include="Interop\Json\Encode\SubtitleSearch.cs" />\r
+    <Compile Include="Interop\Json\Encode\Source.cs" />\r
+    <Compile Include="Interop\Json\Encode\SRT.cs" />\r
+    <Compile Include="Interop\Json\Encode\Subtitles.cs" />\r
+    <Compile Include="Interop\Json\Encode\SubtitleTrack.cs" />\r
+    <Compile Include="Interop\Json\Encode\Video.cs" />\r
+    <Compile Include="Interop\Factories\AnamorphicFactory.cs" />\r
+    <Compile Include="Services\Encode\Factories\EncodeFactory.cs" />\r
+    <Compile Include="Interop\Json\Scan\SourceAudioTrack.cs" />\r
+    <Compile Include="Interop\Json\Scan\SourceChapter.cs" />\r
+    <Compile Include="Interop\Json\Scan\Color.cs" />\r
+    <Compile Include="Interop\Json\Scan\Duration.cs" />\r
+    <Compile Include="Interop\Json\Scan\FrameRate.cs" />\r
+    <Compile Include="Interop\Json\Shared\Geometry.cs" />\r
+    <Compile Include="Interop\Json\Scan\JsonScanObject.cs" />\r
+    <Compile Include="Interop\Json\Scan\SourceMetadata.cs" />\r
+    <Compile Include="Interop\Json\Scan\SourceSubtitleTrack.cs" />\r
+    <Compile Include="Interop\Json\Scan\SourceTitle.cs" />\r
+    <Compile Include="Interop\Json\State\JsonState.cs" />\r
+    <Compile Include="Interop\Json\State\Scanning.cs" />\r
     <Compile Include="Interop\Json\State\WorkDone.cs" />\r
     <Compile Include="Interop\Json\State\Working.cs" />\r
     <Compile Include="Interop\Model\BitrateLimits.cs" />\r
diff --git a/win/CS/HandBrake.ApplicationServices/Interop/HandBrakePresetService.cs b/win/CS/HandBrake.ApplicationServices/Interop/HandBrakePresetService.cs
new file mode 100644 (file)
index 0000000..d49d789
--- /dev/null
@@ -0,0 +1,54 @@
+// --------------------------------------------------------------------------------------------------------------------\r
+// <copyright file="HandBrakePresetService.cs" company="HandBrake Project (http://handbrake.fr)">\r
+//   This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.\r
+// </copyright>\r
+// <summary>\r
+//   The hand brake preset service.\r
+// </summary>\r
+// --------------------------------------------------------------------------------------------------------------------\r
+\r
+namespace HandBrake.ApplicationServices.Interop\r
+{\r
+    using System;\r
+    using System.Collections.Generic;\r
+    using System.Runtime.InteropServices;\r
+\r
+    using HandBrake.ApplicationServices.Interop.HbLib;\r
+    using HandBrake.ApplicationServices.Interop.Json.Presets;\r
+    using HandBrake.ApplicationServices.Services.Logging;\r
+    using HandBrake.ApplicationServices.Services.Logging.Model;\r
+\r
+    using Newtonsoft.Json;\r
+\r
+    /// <summary>\r
+    /// The hand brake preset service.\r
+    /// </summary>\r
+    public class HandBrakePresetService\r
+    {\r
+        /// <summary>\r
+        /// Initializes static members of the <see cref="HandBrakePresetService"/> class.\r
+        /// </summary>\r
+        static HandBrakePresetService()\r
+        {\r
+            HBFunctions.hb_presets_builtin_init();\r
+        }\r
+\r
+        /// <summary>\r
+        /// The get built in presets.\r
+        /// </summary>\r
+        /// <returns>\r
+        /// The <see cref="string"/>.\r
+        /// </returns>\r
+        public static IList<PresetCategory> GetBuiltInPresets()\r
+        {\r
+            IntPtr presets = HBFunctions.hb_presets_builtin_get_json();\r
+            string presetJson = Marshal.PtrToStringAnsi(presets);\r
+\r
+            LogHelper.LogMessage(new LogMessage(presetJson, LogMessageType.progressJson, LogLevel.debug));\r
+\r
+            IList<PresetCategory> presetList = JsonConvert.DeserializeObject<IList<PresetCategory>>(presetJson);\r
+\r
+            return presetList;\r
+        }\r
+    }\r
+}\r
index d22545c1ee41b864bbc02301270c5f2686d3186c..6eb77cac3feea5613a1cb6b99d3a7fa36050b26a 100644 (file)
@@ -432,5 +432,14 @@ namespace HandBrake.ApplicationServices.Interop.HbLib
         // char* hb_get_preview_params_json(int title_idx, int preview_idx, int deinterlace, hb_geometry_settings_t *settings)\r
         [DllImport("hb.dll", EntryPoint = "hb_get_preview_params_json", CallingConvention = CallingConvention.Cdecl)]\r
         public static extern IntPtr hb_get_preview_params_json(int title_idx, int preview_idx, int deinterlace, ref hb_geometry_settings_s settings);\r
+        \r
+        //void         hb_presets_builtin_init(void);\r
+        [DllImport("hb.dll", EntryPoint = "hb_presets_builtin_init", CallingConvention = CallingConvention.Cdecl)]\r
+        public static extern void hb_presets_builtin_init();\r
+\r
+        // char       * hb_presets_builtin_get_json(void); // Get list of HandBrake builtin presets as json string\r
+        [DllImport("hb.dll", EntryPoint = "hb_presets_builtin_get_json", CallingConvention = CallingConvention.Cdecl)]\r
+        public static extern IntPtr hb_presets_builtin_get_json();\r
+\r
     }\r
 }\r
index 0c628fbb0a6fa0e250cfd2e4c46dfa57f54e3046..2bde4cca401a6944bec78d580374ad8b7552aa51 100644 (file)
@@ -5,73 +5,73 @@
 // <summary>\r
 //   Represents an audio track to encode.\r
 // </summary>\r
-// --------------------------------------------------------------------------------------------------------------------
-
-namespace HandBrake.ApplicationServices.Interop.Json.Encode
-{
-    /// <summary>
-    /// Represents an audio track to encode.
-    /// </summary>
-    public class AudioTrack
-    {
-        /// <summary>
-        /// Gets or sets the bitrate.
-        /// </summary>
-        public int? Bitrate { get; set; }
-
-        /// <summary>
-        /// Gets or sets the compression level.
-        /// </summary>
-        public double? CompressionLevel { get; set; }
-
-        /// <summary>
-        /// Gets or sets the drc.
-        /// </summary>
-        public double DRC { get; set; }
-
-        /// <summary>
-        /// Gets or sets the encoder.
-        /// </summary>
-        public int Encoder { get; set; }
-
-        /// <summary>
-        /// Gets or sets the gain.
-        /// </summary>
-        public double Gain { get; set; }
-
-        /// <summary>
-        /// Gets or sets the mixdown.
-        /// </summary>
-        public int Mixdown { get; set; }
-
-        /// <summary>
-        /// Gets or sets a value indicating whether normalize mix level.
-        /// </summary>
-        public bool NormalizeMixLevel { get; set; }
-
-        /// <summary>
-        /// Gets or sets the quality.
-        /// </summary>
-        public double? Quality { get; set; }
-
-        /// <summary>
-        /// Gets or sets the samplerate.
-        /// </summary>
-        public int Samplerate { get; set; }
-
-        /// <summary>
-        /// Gets or sets the Name of the audio track.
-        /// </summary>
-        public string Name { get; set; }
-
-        /// <summary>
-        /// Gets or sets the track.
-        /// </summary>
-        public int Track { get; set; }
-
-        /// <summary>
-        /// Gets or sets the dither method.
-        /// </summary>
-        public int DitherMethod { get; set; }
-    }
+// --------------------------------------------------------------------------------------------------------------------\r
+\r
+namespace HandBrake.ApplicationServices.Interop.Json.Encode\r
+{\r
+    /// <summary>\r
+    /// Represents an audio track to encode.\r
+    /// </summary>\r
+    public class AudioTrack\r
+    {\r
+        /// <summary>\r
+        /// Gets or sets the bitrate.\r
+        /// </summary>\r
+        public int? Bitrate { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the compression level.\r
+        /// </summary>\r
+        public double? CompressionLevel { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the drc.\r
+        /// </summary>\r
+        public double DRC { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the encoder.\r
+        /// </summary>\r
+        public int Encoder { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the gain.\r
+        /// </summary>\r
+        public double Gain { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the mixdown.\r
+        /// </summary>\r
+        public int Mixdown { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets a value indicating whether normalize mix level.\r
+        /// </summary>\r
+        public bool NormalizeMixLevel { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the quality.\r
+        /// </summary>\r
+        public double? Quality { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the samplerate.\r
+        /// </summary>\r
+        public int Samplerate { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the Name of the audio track.\r
+        /// </summary>\r
+        public string Name { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the track.\r
+        /// </summary>\r
+        public int Track { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the dither method.\r
+        /// </summary>\r
+        public int DitherMethod { get; set; }\r
+    }\r
 }
\ No newline at end of file
diff --git a/win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/AudioList.cs b/win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/AudioList.cs
new file mode 100644 (file)
index 0000000..8f4670b
--- /dev/null
@@ -0,0 +1,52 @@
+// --------------------------------------------------------------------------------------------------------------------\r
+// <copyright file="AudioList.cs" company="HandBrake Project (http://handbrake.fr)">\r
+//   This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.\r
+// </copyright>\r
+// <summary>\r
+//   The audio list.\r
+// </summary>\r
+// --------------------------------------------------------------------------------------------------------------------\r
+\r
+namespace HandBrake.ApplicationServices.Interop.Json.Presets\r
+{\r
+    /// <summary>\r
+    /// The audio list.\r
+    /// </summary>\r
+    public class AudioList\r
+    {\r
+        /// <summary>\r
+        /// Gets or sets the audio bitrate.\r
+        /// </summary>\r
+        public string AudioBitrate { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the audio encoder.\r
+        /// </summary>\r
+        public string AudioEncoder { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the audio mixdown.\r
+        /// </summary>\r
+        public string AudioMixdown { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the audio samplerate.\r
+        /// </summary>\r
+        public string AudioSamplerate { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the audio track.\r
+        /// </summary>\r
+        public int AudioTrack { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the audio track drc slider.\r
+        /// </summary>\r
+        public double AudioTrackDRCSlider { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the audio track gain slider.\r
+        /// </summary>\r
+        public double AudioTrackGainSlider { get; set; }\r
+    }\r
+}\r
diff --git a/win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/Preset.cs b/win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/Preset.cs
new file mode 100644 (file)
index 0000000..a90410c
--- /dev/null
@@ -0,0 +1,289 @@
+// --------------------------------------------------------------------------------------------------------------------\r
+// <copyright file="Preset.cs" company="HandBrake Project (http://handbrake.fr)">\r
+//   This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.\r
+// </copyright>\r
+// <summary>\r
+//   The preset.\r
+// </summary>\r
+// --------------------------------------------------------------------------------------------------------------------\r
+\r
+namespace HandBrake.ApplicationServices.Interop.Json.Presets\r
+{\r
+    using System.Collections.Generic;\r
+\r
+    /// <summary>\r
+    /// The preset.\r
+    /// </summary>\r
+    public class Preset\r
+    {\r
+        /// <summary>\r
+        /// Gets or sets the audio allow aac pass.\r
+        /// </summary>\r
+        public int AudioAllowAACPass { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the audio allow a c 3 pass.\r
+        /// </summary>\r
+        public int AudioAllowAC3Pass { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the audio allow dtshd pass.\r
+        /// </summary>\r
+        public int AudioAllowDTSHDPass { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the audio allow dts pass.\r
+        /// </summary>\r
+        public int AudioAllowDTSPass { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the audio allow m p 3 pass.\r
+        /// </summary>\r
+        public int AudioAllowMP3Pass { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the audio encoder fallback.\r
+        /// </summary>\r
+        public string AudioEncoderFallback { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the audio list.\r
+        /// </summary>\r
+        public List<AudioList> AudioList { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the chapter markers.\r
+        /// </summary>\r
+        public int ChapterMarkers { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the default.\r
+        /// </summary>\r
+        public int Default { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the file format.\r
+        /// </summary>\r
+        public string FileFormat { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets a value indicating whether folder.\r
+        /// </summary>\r
+        public bool Folder { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the mp 4 http optimize.\r
+        /// </summary>\r
+        public int Mp4HttpOptimize { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the mp 4 i pod compatible.\r
+        /// </summary>\r
+        public int Mp4iPodCompatible { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture auto crop.\r
+        /// </summary>\r
+        public int PictureAutoCrop { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture bottom crop.\r
+        /// </summary>\r
+        public int PictureBottomCrop { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture deblock.\r
+        /// </summary>\r
+        public int PictureDeblock { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture decomb.\r
+        /// </summary>\r
+        public int PictureDecomb { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture decomb custom.\r
+        /// </summary>\r
+        public string PictureDecombCustom { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture decomb deinterlace.\r
+        /// </summary>\r
+        public int PictureDecombDeinterlace { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture deinterlace.\r
+        /// </summary>\r
+        public int PictureDeinterlace { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture deinterlace custom.\r
+        /// </summary>\r
+        public string PictureDeinterlaceCustom { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture denoise custom.\r
+        /// </summary>\r
+        public string PictureDenoiseCustom { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture denoise filter.\r
+        /// </summary>\r
+        public string PictureDenoiseFilter { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture detelecine.\r
+        /// </summary>\r
+        public int PictureDetelecine { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture detelecine custom.\r
+        /// </summary>\r
+        public string PictureDetelecineCustom { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture height.\r
+        /// </summary>\r
+        public int PictureHeight { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture keep ratio.\r
+        /// </summary>\r
+        public int PictureKeepRatio { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture left crop.\r
+        /// </summary>\r
+        public int PictureLeftCrop { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture modulus.\r
+        /// </summary>\r
+        public int PictureModulus { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture par.\r
+        /// </summary>\r
+        public string PicturePAR { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture right crop.\r
+        /// </summary>\r
+        public int PictureRightCrop { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture top crop.\r
+        /// </summary>\r
+        public int PictureTopCrop { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the picture width.\r
+        /// </summary>\r
+        public int PictureWidth { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the preset description.\r
+        /// </summary>\r
+        public string PresetDescription { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the preset name.\r
+        /// </summary>\r
+        public string PresetName { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the type.\r
+        /// </summary>\r
+        public int Type { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the uses picture filters.\r
+        /// </summary>\r
+        public int UsesPictureFilters { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the uses picture settings.\r
+        /// </summary>\r
+        public int UsesPictureSettings { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the video avg bitrate.\r
+        /// </summary>\r
+        public string VideoAvgBitrate { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the video encoder.\r
+        /// </summary>\r
+        public string VideoEncoder { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the video framerate.\r
+        /// </summary>\r
+        public string VideoFramerate { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the video framerate mode.\r
+        /// </summary>\r
+        public string VideoFramerateMode { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the video gray scale.\r
+        /// </summary>\r
+        public int VideoGrayScale { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the video level.\r
+        /// </summary>\r
+        public string VideoLevel { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the video option extra.\r
+        /// </summary>\r
+        public string VideoOptionExtra { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the video preset.\r
+        /// </summary>\r
+        public string VideoPreset { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the video profile.\r
+        /// </summary>\r
+        public string VideoProfile { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the video quality slider.\r
+        /// </summary>\r
+        public double VideoQualitySlider { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the video quality type.\r
+        /// </summary>\r
+        public int VideoQualityType { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the video tune.\r
+        /// </summary>\r
+        public string VideoTune { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the video turbo two pass.\r
+        /// </summary>\r
+        public int VideoTurboTwoPass { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the video two pass.\r
+        /// </summary>\r
+        public int VideoTwoPass { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the x 264 option.\r
+        /// </summary>\r
+        public string x264Option { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the x 264 use advanced options.\r
+        /// </summary>\r
+        public int x264UseAdvancedOptions { get; set; }\r
+    }\r
+}\r
diff --git a/win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/PresetCategory.cs b/win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/PresetCategory.cs
new file mode 100644 (file)
index 0000000..be31e88
--- /dev/null
@@ -0,0 +1,44 @@
+// --------------------------------------------------------------------------------------------------------------------\r
+// <copyright file="PresetCategory.cs" company="HandBrake Project (http://handbrake.fr)">\r
+//   This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.\r
+// </copyright>\r
+// <summary>\r
+//   The preset category.\r
+// </summary>\r
+// --------------------------------------------------------------------------------------------------------------------\r
+\r
+namespace HandBrake.ApplicationServices.Interop.Json.Presets\r
+{\r
+    using System.Collections.Generic;\r
+\r
+    /// <summary>\r
+    /// The preset category.\r
+    /// </summary>\r
+    public class PresetCategory\r
+    {\r
+        /// <summary>\r
+        /// Gets or sets the children array.\r
+        /// </summary>\r
+        public List<Preset> ChildrenArray { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the default.\r
+        /// </summary>\r
+        public int Default { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets a value indicating whether folder.\r
+        /// </summary>\r
+        public bool Folder { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the preset name.\r
+        /// </summary>\r
+        public string PresetName { get; set; }\r
+\r
+        /// <summary>\r
+        /// Gets or sets the type.\r
+        /// </summary>\r
+        public int Type { get; set; }\r
+    }\r
+}\r