summaryrefslogtreecommitdiffstats
path: root/win/CS
diff options
context:
space:
mode:
Diffstat (limited to 'win/CS')
-rw-r--r--win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj68
-rw-r--r--win/CS/HandBrake.ApplicationServices/Interop/HandBrakePresetService.cs54
-rw-r--r--win/CS/HandBrake.ApplicationServices/Interop/HbLib/HbFunctions.cs9
-rw-r--r--win/CS/HandBrake.ApplicationServices/Interop/Json/Encode/AudioTrack.cs138
-rw-r--r--win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/AudioList.cs52
-rw-r--r--win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/Preset.cs289
-rw-r--r--win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/PresetCategory.cs44
7 files changed, 553 insertions, 101 deletions
diff --git a/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj b/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj
index bb6fef136..683f133f4 100644
--- a/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj
+++ b/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj
@@ -86,6 +86,7 @@
<Compile Include="Interop\HandBrakeInstance.cs" />
<Compile Include="Interop\HandBrakeInstanceManager.cs" />
<Compile Include="Interop\HandBrakeLanguagesHelper.cs" />
+ <Compile Include="Interop\HandBrakePresetService.cs" />
<Compile Include="Interop\HandBrakeUnitConversionHelpers.cs" />
<Compile Include="Interop\HandBrakeUtils.cs" />
<Compile Include="Interop\HbLib\HBDelegates.cs" />
@@ -109,38 +110,41 @@
<Compile Include="Interop\Interfaces\IHandBrakeInstance.cs" />
<Compile Include="Interop\Json\Anamorphic\AnamorphicGeometry.cs" />
<Compile Include="Interop\Json\Anamorphic\DestSettings.cs" />
- <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" />
+ <Compile Include="Interop\Json\Presets\AudioList.cs" />
+ <Compile Include="Interop\Json\Presets\Preset.cs" />
+ <Compile Include="Interop\Json\Presets\PresetCategory.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\State\WorkDone.cs" />
<Compile Include="Interop\Json\State\Working.cs" />
<Compile Include="Interop\Model\BitrateLimits.cs" />
diff --git a/win/CS/HandBrake.ApplicationServices/Interop/HandBrakePresetService.cs b/win/CS/HandBrake.ApplicationServices/Interop/HandBrakePresetService.cs
new file mode 100644
index 000000000..d49d789c8
--- /dev/null
+++ b/win/CS/HandBrake.ApplicationServices/Interop/HandBrakePresetService.cs
@@ -0,0 +1,54 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="HandBrakePresetService.cs" company="HandBrake Project (http://handbrake.fr)">
+// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
+// </copyright>
+// <summary>
+// The hand brake preset service.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.ApplicationServices.Interop
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Runtime.InteropServices;
+
+ using HandBrake.ApplicationServices.Interop.HbLib;
+ using HandBrake.ApplicationServices.Interop.Json.Presets;
+ using HandBrake.ApplicationServices.Services.Logging;
+ using HandBrake.ApplicationServices.Services.Logging.Model;
+
+ using Newtonsoft.Json;
+
+ /// <summary>
+ /// The hand brake preset service.
+ /// </summary>
+ public class HandBrakePresetService
+ {
+ /// <summary>
+ /// Initializes static members of the <see cref="HandBrakePresetService"/> class.
+ /// </summary>
+ static HandBrakePresetService()
+ {
+ HBFunctions.hb_presets_builtin_init();
+ }
+
+ /// <summary>
+ /// The get built in presets.
+ /// </summary>
+ /// <returns>
+ /// The <see cref="string"/>.
+ /// </returns>
+ public static IList<PresetCategory> GetBuiltInPresets()
+ {
+ IntPtr presets = HBFunctions.hb_presets_builtin_get_json();
+ string presetJson = Marshal.PtrToStringAnsi(presets);
+
+ LogHelper.LogMessage(new LogMessage(presetJson, LogMessageType.progressJson, LogLevel.debug));
+
+ IList<PresetCategory> presetList = JsonConvert.DeserializeObject<IList<PresetCategory>>(presetJson);
+
+ return presetList;
+ }
+ }
+}
diff --git a/win/CS/HandBrake.ApplicationServices/Interop/HbLib/HbFunctions.cs b/win/CS/HandBrake.ApplicationServices/Interop/HbLib/HbFunctions.cs
index d22545c1e..6eb77cac3 100644
--- a/win/CS/HandBrake.ApplicationServices/Interop/HbLib/HbFunctions.cs
+++ b/win/CS/HandBrake.ApplicationServices/Interop/HbLib/HbFunctions.cs
@@ -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)
[DllImport("hb.dll", EntryPoint = "hb_get_preview_params_json", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr hb_get_preview_params_json(int title_idx, int preview_idx, int deinterlace, ref hb_geometry_settings_s settings);
+
+ //void hb_presets_builtin_init(void);
+ [DllImport("hb.dll", EntryPoint = "hb_presets_builtin_init", CallingConvention = CallingConvention.Cdecl)]
+ public static extern void hb_presets_builtin_init();
+
+ // char * hb_presets_builtin_get_json(void); // Get list of HandBrake builtin presets as json string
+ [DllImport("hb.dll", EntryPoint = "hb_presets_builtin_get_json", CallingConvention = CallingConvention.Cdecl)]
+ public static extern IntPtr hb_presets_builtin_get_json();
+
}
}
diff --git a/win/CS/HandBrake.ApplicationServices/Interop/Json/Encode/AudioTrack.cs b/win/CS/HandBrake.ApplicationServices/Interop/Json/Encode/AudioTrack.cs
index 0c628fbb0..2bde4cca4 100644
--- a/win/CS/HandBrake.ApplicationServices/Interop/Json/Encode/AudioTrack.cs
+++ b/win/CS/HandBrake.ApplicationServices/Interop/Json/Encode/AudioTrack.cs
@@ -5,73 +5,73 @@
// <summary>
// Represents an audio track to encode.
// </summary>
-// --------------------------------------------------------------------------------------------------------------------
-
-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; }
- }
+// --------------------------------------------------------------------------------------------------------------------
+
+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; }
+ }
} \ 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
index 000000000..8f4670ba5
--- /dev/null
+++ b/win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/AudioList.cs
@@ -0,0 +1,52 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="AudioList.cs" company="HandBrake Project (http://handbrake.fr)">
+// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
+// </copyright>
+// <summary>
+// The audio list.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.ApplicationServices.Interop.Json.Presets
+{
+ /// <summary>
+ /// The audio list.
+ /// </summary>
+ public class AudioList
+ {
+ /// <summary>
+ /// Gets or sets the audio bitrate.
+ /// </summary>
+ public string AudioBitrate { get; set; }
+
+ /// <summary>
+ /// Gets or sets the audio encoder.
+ /// </summary>
+ public string AudioEncoder { get; set; }
+
+ /// <summary>
+ /// Gets or sets the audio mixdown.
+ /// </summary>
+ public string AudioMixdown { get; set; }
+
+ /// <summary>
+ /// Gets or sets the audio samplerate.
+ /// </summary>
+ public string AudioSamplerate { get; set; }
+
+ /// <summary>
+ /// Gets or sets the audio track.
+ /// </summary>
+ public int AudioTrack { get; set; }
+
+ /// <summary>
+ /// Gets or sets the audio track drc slider.
+ /// </summary>
+ public double AudioTrackDRCSlider { get; set; }
+
+ /// <summary>
+ /// Gets or sets the audio track gain slider.
+ /// </summary>
+ public double AudioTrackGainSlider { get; set; }
+ }
+}
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
index 000000000..a90410c54
--- /dev/null
+++ b/win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/Preset.cs
@@ -0,0 +1,289 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="Preset.cs" company="HandBrake Project (http://handbrake.fr)">
+// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
+// </copyright>
+// <summary>
+// The preset.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.ApplicationServices.Interop.Json.Presets
+{
+ using System.Collections.Generic;
+
+ /// <summary>
+ /// The preset.
+ /// </summary>
+ public class Preset
+ {
+ /// <summary>
+ /// Gets or sets the audio allow aac pass.
+ /// </summary>
+ public int AudioAllowAACPass { get; set; }
+
+ /// <summary>
+ /// Gets or sets the audio allow a c 3 pass.
+ /// </summary>
+ public int AudioAllowAC3Pass { get; set; }
+
+ /// <summary>
+ /// Gets or sets the audio allow dtshd pass.
+ /// </summary>
+ public int AudioAllowDTSHDPass { get; set; }
+
+ /// <summary>
+ /// Gets or sets the audio allow dts pass.
+ /// </summary>
+ public int AudioAllowDTSPass { get; set; }
+
+ /// <summary>
+ /// Gets or sets the audio allow m p 3 pass.
+ /// </summary>
+ public int AudioAllowMP3Pass { get; set; }
+
+ /// <summary>
+ /// Gets or sets the audio encoder fallback.
+ /// </summary>
+ public string AudioEncoderFallback { get; set; }
+
+ /// <summary>
+ /// Gets or sets the audio list.
+ /// </summary>
+ public List<AudioList> AudioList { get; set; }
+
+ /// <summary>
+ /// Gets or sets the chapter markers.
+ /// </summary>
+ public int ChapterMarkers { get; set; }
+
+ /// <summary>
+ /// Gets or sets the default.
+ /// </summary>
+ public int Default { get; set; }
+
+ /// <summary>
+ /// Gets or sets the file format.
+ /// </summary>
+ public string FileFormat { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether folder.
+ /// </summary>
+ public bool Folder { get; set; }
+
+ /// <summary>
+ /// Gets or sets the mp 4 http optimize.
+ /// </summary>
+ public int Mp4HttpOptimize { get; set; }
+
+ /// <summary>
+ /// Gets or sets the mp 4 i pod compatible.
+ /// </summary>
+ public int Mp4iPodCompatible { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture auto crop.
+ /// </summary>
+ public int PictureAutoCrop { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture bottom crop.
+ /// </summary>
+ public int PictureBottomCrop { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture deblock.
+ /// </summary>
+ public int PictureDeblock { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture decomb.
+ /// </summary>
+ public int PictureDecomb { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture decomb custom.
+ /// </summary>
+ public string PictureDecombCustom { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture decomb deinterlace.
+ /// </summary>
+ public int PictureDecombDeinterlace { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture deinterlace.
+ /// </summary>
+ public int PictureDeinterlace { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture deinterlace custom.
+ /// </summary>
+ public string PictureDeinterlaceCustom { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture denoise custom.
+ /// </summary>
+ public string PictureDenoiseCustom { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture denoise filter.
+ /// </summary>
+ public string PictureDenoiseFilter { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture detelecine.
+ /// </summary>
+ public int PictureDetelecine { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture detelecine custom.
+ /// </summary>
+ public string PictureDetelecineCustom { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture height.
+ /// </summary>
+ public int PictureHeight { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture keep ratio.
+ /// </summary>
+ public int PictureKeepRatio { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture left crop.
+ /// </summary>
+ public int PictureLeftCrop { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture modulus.
+ /// </summary>
+ public int PictureModulus { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture par.
+ /// </summary>
+ public string PicturePAR { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture right crop.
+ /// </summary>
+ public int PictureRightCrop { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture top crop.
+ /// </summary>
+ public int PictureTopCrop { get; set; }
+
+ /// <summary>
+ /// Gets or sets the picture width.
+ /// </summary>
+ public int PictureWidth { get; set; }
+
+ /// <summary>
+ /// Gets or sets the preset description.
+ /// </summary>
+ public string PresetDescription { get; set; }
+
+ /// <summary>
+ /// Gets or sets the preset name.
+ /// </summary>
+ public string PresetName { get; set; }
+
+ /// <summary>
+ /// Gets or sets the type.
+ /// </summary>
+ public int Type { get; set; }
+
+ /// <summary>
+ /// Gets or sets the uses picture filters.
+ /// </summary>
+ public int UsesPictureFilters { get; set; }
+
+ /// <summary>
+ /// Gets or sets the uses picture settings.
+ /// </summary>
+ public int UsesPictureSettings { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video avg bitrate.
+ /// </summary>
+ public string VideoAvgBitrate { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video encoder.
+ /// </summary>
+ public string VideoEncoder { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video framerate.
+ /// </summary>
+ public string VideoFramerate { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video framerate mode.
+ /// </summary>
+ public string VideoFramerateMode { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video gray scale.
+ /// </summary>
+ public int VideoGrayScale { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video level.
+ /// </summary>
+ public string VideoLevel { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video option extra.
+ /// </summary>
+ public string VideoOptionExtra { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video preset.
+ /// </summary>
+ public string VideoPreset { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video profile.
+ /// </summary>
+ public string VideoProfile { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video quality slider.
+ /// </summary>
+ public double VideoQualitySlider { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video quality type.
+ /// </summary>
+ public int VideoQualityType { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video tune.
+ /// </summary>
+ public string VideoTune { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video turbo two pass.
+ /// </summary>
+ public int VideoTurboTwoPass { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video two pass.
+ /// </summary>
+ public int VideoTwoPass { get; set; }
+
+ /// <summary>
+ /// Gets or sets the x 264 option.
+ /// </summary>
+ public string x264Option { get; set; }
+
+ /// <summary>
+ /// Gets or sets the x 264 use advanced options.
+ /// </summary>
+ public int x264UseAdvancedOptions { get; set; }
+ }
+}
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
index 000000000..be31e888e
--- /dev/null
+++ b/win/CS/HandBrake.ApplicationServices/Interop/Json/Presets/PresetCategory.cs
@@ -0,0 +1,44 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="PresetCategory.cs" company="HandBrake Project (http://handbrake.fr)">
+// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
+// </copyright>
+// <summary>
+// The preset category.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.ApplicationServices.Interop.Json.Presets
+{
+ using System.Collections.Generic;
+
+ /// <summary>
+ /// The preset category.
+ /// </summary>
+ public class PresetCategory
+ {
+ /// <summary>
+ /// Gets or sets the children array.
+ /// </summary>
+ public List<Preset> ChildrenArray { get; set; }
+
+ /// <summary>
+ /// Gets or sets the default.
+ /// </summary>
+ public int Default { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether folder.
+ /// </summary>
+ public bool Folder { get; set; }
+
+ /// <summary>
+ /// Gets or sets the preset name.
+ /// </summary>
+ public string PresetName { get; set; }
+
+ /// <summary>
+ /// Gets or sets the type.
+ /// </summary>
+ public int Type { get; set; }
+ }
+}