summaryrefslogtreecommitdiffstats
path: root/win/CS/HandBrake.Interop/Interop/Interfaces
diff options
context:
space:
mode:
Diffstat (limited to 'win/CS/HandBrake.Interop/Interop/Interfaces')
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/IHandBrakeInstance.cs3
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/BitrateLimits.cs42
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBAudioEncoder.cs131
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBMixdown.cs51
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBRate.cs42
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBVideoEncoder.cs106
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/RangeLimits.cs60
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/VideoQualityLimits.cs60
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Filters/HBPresetTune.cs58
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/HBContainer.cs60
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Language.cs67
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/Anamorphic.cs32
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/AnamorphicResult.cs (renamed from win/CS/HandBrake.Interop/Interop/Interfaces/Model/AnamorphicResult.cs)2
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/Cropping.cs99
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/PictureSettingsJob.cs (renamed from win/CS/HandBrake.Interop/Interop/Interfaces/Model/PictureSettingsJob.cs)5
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/PictureSettingsTitle.cs (renamed from win/CS/HandBrake.Interop/Interop/Interfaces/Model/PictureSettingsTitle.cs)2
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Presets/PresetVersion.cs27
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Preview/PreviewSettings.cs (renamed from win/CS/HandBrake.Interop/Interop/Interfaces/Model/PreviewSettings.cs)5
-rw-r--r--win/CS/HandBrake.Interop/Interop/Interfaces/Model/Preview/RawPreviewData.cs30
19 files changed, 872 insertions, 10 deletions
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/IHandBrakeInstance.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/IHandBrakeInstance.cs
index ea162ce5b..283dfe01f 100644
--- a/win/CS/HandBrake.Interop/Interop/Interfaces/IHandBrakeInstance.cs
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/IHandBrakeInstance.cs
@@ -13,8 +13,9 @@ namespace HandBrake.Interop.Interop.Interfaces
using HandBrake.Interop.Interop.EventArgs;
using HandBrake.Interop.Interop.Interfaces.Model;
+ using HandBrake.Interop.Interop.Interfaces.Model.Picture;
+ using HandBrake.Interop.Interop.Interfaces.Model.Preview;
using HandBrake.Interop.Interop.Json.Scan;
- using HandBrake.Interop.Interop.Model.Preview;
/// <summary>
/// The Interface for HandBrakeInstance
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/BitrateLimits.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/BitrateLimits.cs
new file mode 100644
index 000000000..dc2043aff
--- /dev/null
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/BitrateLimits.cs
@@ -0,0 +1,42 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="BitrateLimits.cs" company="HandBrake Project (https://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>
+// Defines the BitrateLimits type.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.Interop.Interop.Interfaces.Model.Encoders
+{
+ /// <summary>
+ /// Represents bitrate limits as a range.
+ /// </summary>
+ public class BitrateLimits
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="BitrateLimits"/> class.
+ /// </summary>
+ /// <param name="low">
+ /// The low.
+ /// </param>
+ /// <param name="high">
+ /// The high.
+ /// </param>
+ public BitrateLimits(int low, int high)
+ {
+ this.Low = low;
+ this.High = high;
+ }
+
+ /// <summary>
+ /// Gets the inclusive lower limit for the bitrate.
+ /// </summary>
+ public int Low { get; private set; }
+
+ /// <summary>
+ /// Gets the inclusive upper limit for the bitrate.
+ /// </summary>
+ public int High { get; private set; }
+ }
+}
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBAudioEncoder.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBAudioEncoder.cs
new file mode 100644
index 000000000..bb9d0fd72
--- /dev/null
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBAudioEncoder.cs
@@ -0,0 +1,131 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="HBAudioEncoder.cs" company="HandBrake Project (https://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 hb audio encoder.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.Interop.Interop.Interfaces.Model.Encoders
+{
+ using HandBrake.Interop.Interop.HbLib;
+
+ /// <summary>
+ /// The hb audio encoder.
+ /// </summary>
+ public class HBAudioEncoder
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="HBAudioEncoder"/> class.
+ /// </summary>
+ /// <param name="compatibleContainers">
+ /// The compatible containers.
+ /// </param>
+ /// <param name="compressionLimits">
+ /// The compression limits.
+ /// </param>
+ /// <param name="defaultCompression">
+ /// The default compression.
+ /// </param>
+ /// <param name="defaultQuality">
+ /// The default quality.
+ /// </param>
+ /// <param name="displayName">
+ /// The display name.
+ /// </param>
+ /// <param name="id">
+ /// The id.
+ /// </param>
+ /// <param name="qualityLimits">
+ /// The quality limits.
+ /// </param>
+ /// <param name="shortName">
+ /// The short name.
+ /// </param>
+ public HBAudioEncoder(int compatibleContainers, RangeLimits compressionLimits, float defaultCompression, float defaultQuality, string displayName, int id, RangeLimits qualityLimits, string shortName)
+ {
+ this.CompatibleContainers = compatibleContainers;
+ this.CompressionLimits = compressionLimits;
+ this.DefaultCompression = defaultCompression;
+ this.DefaultQuality = defaultQuality;
+ this.DisplayName = displayName;
+ this.Id = id;
+ this.QualityLimits = qualityLimits;
+ this.ShortName = shortName;
+ }
+
+ /// <summary>
+ /// Gets the compatible containers.
+ /// </summary>
+ public int CompatibleContainers { get; private set; }
+
+ /// <summary>
+ /// Gets the compression limits.
+ /// </summary>
+ public RangeLimits CompressionLimits { get; private set; }
+
+ /// <summary>
+ /// Gets the default compression.
+ /// </summary>
+ public float DefaultCompression { get; private set; }
+
+ /// <summary>
+ /// Gets the default quality.
+ /// </summary>
+ public float DefaultQuality { get; private set; }
+
+ /// <summary>
+ /// Gets the display name.
+ /// </summary>
+ public string DisplayName { get; private set; }
+
+ /// <summary>
+ /// Gets the id.
+ /// </summary>
+ public int Id { get; private set; }
+
+ /// <summary>
+ /// Gets a value indicating whether the encoder is passthrough.
+ /// </summary>
+ public bool IsPassthrough
+ {
+ get
+ {
+ return (this.Id & NativeConstants.HB_ACODEC_PASS_FLAG) > 0;
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the quality limits.
+ /// </summary>
+ public RangeLimits QualityLimits { get; set; }
+
+ /// <summary>
+ /// Gets or sets the short name.
+ /// </summary>
+ public string ShortName { get; set; }
+
+ /// <summary>
+ /// Gets a value indicating whether the encoder supports compression.
+ /// </summary>
+ public bool SupportsCompression
+ {
+ get
+ {
+ return this.CompressionLimits.High >= 0;
+ }
+ }
+
+ /// <summary>
+ /// Gets a value indicating whether the encoder supports quality.
+ /// </summary>
+ public bool SupportsQuality
+ {
+ get
+ {
+ return this.QualityLimits.High >= 0;
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBMixdown.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBMixdown.cs
new file mode 100644
index 000000000..6ca487ec5
--- /dev/null
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBMixdown.cs
@@ -0,0 +1,51 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="HBMixdown.cs" company="HandBrake Project (https://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 hb mixdown.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.Interop.Interop.Interfaces.Model.Encoders
+{
+ /// <summary>
+ /// The hb mixdown.
+ /// </summary>
+ public class HBMixdown
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="HBMixdown"/> class.
+ /// </summary>
+ /// <param name="displayName">
+ /// The display name.
+ /// </param>
+ /// <param name="id">
+ /// The id.
+ /// </param>
+ /// <param name="shortName">
+ /// The short name.
+ /// </param>
+ public HBMixdown(string displayName, int id, string shortName)
+ {
+ this.DisplayName = displayName;
+ this.Id = id;
+ this.ShortName = shortName;
+ }
+
+ /// <summary>
+ /// Gets the display name.
+ /// </summary>
+ public string DisplayName { get; private set; }
+
+ /// <summary>
+ /// Gets the id.
+ /// </summary>
+ public int Id { get; private set; }
+
+ /// <summary>
+ /// Gets the short name.
+ /// </summary>
+ public string ShortName { get; private set; }
+ }
+} \ No newline at end of file
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBRate.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBRate.cs
new file mode 100644
index 000000000..192c14aca
--- /dev/null
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBRate.cs
@@ -0,0 +1,42 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="HBRate.cs" company="HandBrake Project (https://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>
+// Represents a rate in HandBrake: audio sample rate or video framerate.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.Interop.Interop.Interfaces.Model.Encoders
+{
+ /// <summary>
+ /// Represents a rate in HandBrake: audio sample rate or video framerate.
+ /// </summary>
+ public class HBRate
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="HBRate"/> class.
+ /// </summary>
+ /// <param name="name">
+ /// The name.
+ /// </param>
+ /// <param name="rate">
+ /// The rate.
+ /// </param>
+ public HBRate(string name, int rate)
+ {
+ this.Name = name;
+ this.Rate = rate;
+ }
+
+ /// <summary>
+ /// Gets the name to use for this rate.
+ /// </summary>
+ public string Name { get; private set; }
+
+ /// <summary>
+ /// Gets the raw rate.
+ /// </summary>
+ public int Rate { get; private set; }
+ }
+}
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBVideoEncoder.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBVideoEncoder.cs
new file mode 100644
index 000000000..79aae277c
--- /dev/null
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBVideoEncoder.cs
@@ -0,0 +1,106 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="HBVideoEncoder.cs" company="HandBrake Project (https://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 hb video encoder.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.Interop.Interop.Interfaces.Model.Encoders
+{
+ using System.Collections.Generic;
+
+ using HandBrake.Interop.Interop.HbLib;
+ using HandBrake.Interop.Interop.Helpers;
+
+ public class HBVideoEncoder
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="HBVideoEncoder"/> class.
+ /// </summary>
+ /// <param name="compatibleContainers">
+ /// The compatible containers.
+ /// </param>
+ /// <param name="displayName">
+ /// The display name.
+ /// </param>
+ /// <param name="id">
+ /// The id.
+ /// </param>
+ /// <param name="shortName">
+ /// The short name.
+ /// </param>
+ public HBVideoEncoder(int compatibleContainers, string displayName, int id, string shortName)
+ {
+ this.CompatibleContainers = compatibleContainers;
+ this.DisplayName = displayName;
+ this.Id = id;
+ this.ShortName = shortName;
+ }
+
+ /// <summary>
+ /// Gets the compatible containers.
+ /// </summary>
+ public int CompatibleContainers { get; private set; }
+
+ /// <summary>
+ /// Gets the display name.
+ /// </summary>
+ public string DisplayName { get; private set; }
+
+ /// <summary>
+ /// Gets the id.
+ /// </summary>
+ public int Id { get; private set; }
+
+ /// <summary>
+ /// Gets the short name.
+ /// </summary>
+ public string ShortName { get; private set; }
+
+ /// <summary>
+ /// Gets the list of presets this encoder supports. (null if the encoder doesn't support presets)
+ /// </summary>
+ public List<string> Presets
+ {
+ get
+ {
+ return InteropUtilities.ToStringListFromArrayPtr(HBFunctions.hb_video_encoder_get_presets(this.Id));
+ }
+ }
+
+ /// <summary>
+ /// Gets the list of tunes this encoder supports. (null if the encoder doesn't support tunes)
+ /// </summary>
+ public List<string> Tunes
+ {
+ get
+ {
+ return InteropUtilities.ToStringListFromArrayPtr(HBFunctions.hb_video_encoder_get_tunes(this.Id));
+ }
+ }
+
+ /// <summary>
+ /// Gets the list of profiles this encoder supports. (null if the encoder doesn't support profiles)
+ /// </summary>
+ public List<string> Profiles
+ {
+ get
+ {
+ return InteropUtilities.ToStringListFromArrayPtr(HBFunctions.hb_video_encoder_get_profiles(this.Id));
+ }
+ }
+
+ /// <summary>
+ /// Gets the list of levels this encoder supports. (null if the encoder doesn't support levels)
+ /// </summary>
+ public List<string> Levels
+ {
+ get
+ {
+ return InteropUtilities.ToStringListFromArrayPtr(HBFunctions.hb_video_encoder_get_levels(this.Id));
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/RangeLimits.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/RangeLimits.cs
new file mode 100644
index 000000000..e1c97c24c
--- /dev/null
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/RangeLimits.cs
@@ -0,0 +1,60 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="RangeLimits.cs" company="HandBrake Project (https://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 range limits.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.Interop.Interop.Interfaces.Model.Encoders
+{
+ /// <summary>
+ /// The range limits.
+ /// </summary>
+ public class RangeLimits
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="RangeLimits"/> class.
+ /// </summary>
+ /// <param name="ascending">
+ /// The ascending.
+ /// </param>
+ /// <param name="granularity">
+ /// The granularity.
+ /// </param>
+ /// <param name="high">
+ /// The high.
+ /// </param>
+ /// <param name="low">
+ /// The low.
+ /// </param>
+ public RangeLimits(bool @ascending, float granularity, float high, float low)
+ {
+ this.Ascending = @ascending;
+ this.Granularity = granularity;
+ this.High = high;
+ this.Low = low;
+ }
+
+ /// <summary>
+ /// Gets a value indicating whether ascending.
+ /// </summary>
+ public bool Ascending { get; private set; }
+
+ /// <summary>
+ /// Gets the granularity.
+ /// </summary>
+ public float Granularity { get; private set; }
+
+ /// <summary>
+ /// Gets the high.
+ /// </summary>
+ public float High { get; private set; }
+
+ /// <summary>
+ /// Gets the low.
+ /// </summary>
+ public float Low { get; private set; }
+ }
+} \ No newline at end of file
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/VideoQualityLimits.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/VideoQualityLimits.cs
new file mode 100644
index 000000000..2dcc64af4
--- /dev/null
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/VideoQualityLimits.cs
@@ -0,0 +1,60 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="VideoQualityLimits.cs" company="HandBrake Project (https://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>
+// Defines the VideoQualityLimits type.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.Interop.Interop.Interfaces.Model.Encoders
+{
+ /// <summary>
+ /// Represents limits on video quality for a particular encoder.
+ /// </summary>
+ public class VideoQualityLimits
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="VideoQualityLimits"/> class.
+ /// </summary>
+ /// <param name="low">
+ /// The low.
+ /// </param>
+ /// <param name="high">
+ /// The high.
+ /// </param>
+ /// <param name="granularity">
+ /// The granularity.
+ /// </param>
+ /// <param name="ascending">
+ /// The ascending.
+ /// </param>
+ public VideoQualityLimits(float low, float high, float granularity, bool @ascending)
+ {
+ this.Low = low;
+ this.High = high;
+ this.Granularity = granularity;
+ this.Ascending = @ascending;
+ }
+
+ /// <summary>
+ /// Gets the inclusive lower limit for the quality.
+ /// </summary>
+ public float Low { get; private set; }
+
+ /// <summary>
+ /// Gets the inclusive upper limit for the quality.
+ /// </summary>
+ public float High { get; private set; }
+
+ /// <summary>
+ /// Gets the granularity for the quality.
+ /// </summary>
+ public float Granularity { get; private set; }
+
+ /// <summary>
+ /// Gets a value indicating whether the quality increases as the number increases.
+ /// </summary>
+ public bool Ascending { get; private set; }
+ }
+}
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Filters/HBPresetTune.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Filters/HBPresetTune.cs
new file mode 100644
index 000000000..6a964b019
--- /dev/null
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Filters/HBPresetTune.cs
@@ -0,0 +1,58 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="HBPresetTune.cs" company="HandBrake Project (https://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>
+// An object representing the key and name of a Filter Preset or Tune option.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.Interop.Interop.Interfaces.Model.Filters
+{
+ public class HBPresetTune
+ {
+ public HBPresetTune()
+ {
+ }
+
+ public HBPresetTune(string name, string shortName)
+ {
+ this.Name = name;
+ this.ShortName = shortName;
+ }
+
+ public string Name { get; set; }
+
+ public string ShortName { get; set; }
+
+ public override bool Equals(object obj)
+ {
+ if (ReferenceEquals(null, obj))
+ {
+ return false;
+ }
+
+ if (ReferenceEquals(this, obj))
+ {
+ return true;
+ }
+
+ if (obj.GetType() != this.GetType())
+ {
+ return false;
+ }
+
+ return this.Equals((HBPresetTune)obj);
+ }
+
+ public override int GetHashCode()
+ {
+ return this.ShortName != null ? this.ShortName.GetHashCode() : 0;
+ }
+
+ protected bool Equals(HBPresetTune other)
+ {
+ return string.Equals(this.ShortName, other.ShortName);
+ }
+ }
+}
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/HBContainer.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/HBContainer.cs
new file mode 100644
index 000000000..3a71117d6
--- /dev/null
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/HBContainer.cs
@@ -0,0 +1,60 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="HBContainer.cs" company="HandBrake Project (https://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 hb container.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.Interop.Interop.Interfaces.Model
+{
+ /// <summary>
+ /// The hb container.
+ /// </summary>
+ public class HBContainer
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="HBContainer"/> class.
+ /// </summary>
+ /// <param name="defaultExtension">
+ /// The default extension.
+ /// </param>
+ /// <param name="displayName">
+ /// The display name.
+ /// </param>
+ /// <param name="id">
+ /// The id.
+ /// </param>
+ /// <param name="shortName">
+ /// The short name.
+ /// </param>
+ public HBContainer(string defaultExtension, string displayName, int id, string shortName)
+ {
+ this.DefaultExtension = defaultExtension;
+ this.DisplayName = displayName;
+ this.Id = id;
+ this.ShortName = shortName;
+ }
+
+ /// <summary>
+ /// Gets the default extension.
+ /// </summary>
+ public string DefaultExtension { get; private set; }
+
+ /// <summary>
+ /// Gets the display name.
+ /// </summary>
+ public string DisplayName { get; private set; }
+
+ /// <summary>
+ /// Gets the id.
+ /// </summary>
+ public int Id { get; private set; }
+
+ /// <summary>
+ /// Gets the short name.
+ /// </summary>
+ public string ShortName { get; private set; }
+ }
+} \ No newline at end of file
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Language.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Language.cs
new file mode 100644
index 000000000..0da6d4352
--- /dev/null
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Language.cs
@@ -0,0 +1,67 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="Language.cs" company="HandBrake Project (https://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>
+// Represents a language.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.Interop.Interop.Interfaces.Model
+{
+ /// <summary>
+ /// Represents a language.
+ /// </summary>
+ public class Language
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="Language"/> class.
+ /// </summary>
+ /// <param name="englishName">
+ /// The english name.
+ /// </param>
+ /// <param name="nativeName">
+ /// The native name.
+ /// </param>
+ /// <param name="code">
+ /// The code.
+ /// </param>
+ public Language(string englishName, string nativeName, string code)
+ {
+ this.EnglishName = englishName;
+ this.NativeName = nativeName;
+ this.Code = code;
+ }
+
+ /// <summary>
+ /// Gets the english name of the language.
+ /// </summary>
+ public string EnglishName { get; private set; }
+
+ /// <summary>
+ /// Gets the native name of the language.
+ /// </summary>
+ public string NativeName { get; private set; }
+
+ /// <summary>
+ /// Gets the language code.
+ /// </summary>
+ public string Code { get; private set; }
+
+ /// <summary>
+ /// Gets the display string for the language.
+ /// </summary>
+ public string Display
+ {
+ get
+ {
+ if (!string.IsNullOrEmpty(this.NativeName) && this.NativeName != this.EnglishName)
+ {
+ return this.EnglishName + " (" + this.NativeName + ")";
+ }
+
+ return this.EnglishName;
+ }
+ }
+ }
+}
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/Anamorphic.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/Anamorphic.cs
new file mode 100644
index 000000000..dbb14beb4
--- /dev/null
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/Anamorphic.cs
@@ -0,0 +1,32 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="Anamorphic.cs" company="HandBrake Project (https://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>
+// Defines the Anamorphic type.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.Interop.Interop.Interfaces.Model.Picture
+{
+ using HandBrake.Interop.Attributes;
+
+ /// <summary>
+ /// The anamorphic.
+ /// </summary>
+ public enum Anamorphic
+ {
+ [DisplayName("None")]
+ [ShortName("none")]
+ None = 0,
+ [DisplayName("Automatic")]
+ [ShortName("auto")]
+ Automatic = 4,
+ [DisplayName("Loose")]
+ [ShortName("loose")]
+ Loose = 2,
+ [DisplayName("Custom")]
+ [ShortName("custom")]
+ Custom = 3
+ }
+} \ No newline at end of file
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/AnamorphicResult.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/AnamorphicResult.cs
index d949eb354..efb736f78 100644
--- a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/AnamorphicResult.cs
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/AnamorphicResult.cs
@@ -4,7 +4,7 @@
// </copyright>
// --------------------------------------------------------------------------------------------------------------------
-namespace HandBrake.Interop.Interop.Interfaces.Model
+namespace HandBrake.Interop.Interop.Interfaces.Model.Picture
{
public class AnamorphicResult
{
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/Cropping.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/Cropping.cs
new file mode 100644
index 000000000..b3314a24c
--- /dev/null
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/Cropping.cs
@@ -0,0 +1,99 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="Cropping.cs" company="HandBrake Project (https://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>
+// Defines the Cropping type.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.Interop.Interop.Interfaces.Model.Picture
+{
+ /// <summary>
+ /// The Cropping Model
+ /// </summary>
+ public class Cropping
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="Cropping"/> class.
+ /// </summary>
+ public Cropping()
+ {
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="Cropping"/> class.
+ /// Copy Constructor
+ /// </summary>
+ /// <param name="cropping">
+ /// The cropping.
+ /// </param>
+ public Cropping(Cropping cropping)
+ {
+ this.Top = cropping.Top;
+ this.Bottom = cropping.Bottom;
+ this.Left = cropping.Left;
+ this.Right = cropping.Right;
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="Cropping"/> class.
+ /// </summary>
+ /// <param name="top">
+ /// The Top Value
+ /// </param>
+ /// <param name="bottom">
+ /// The Bottom Value
+ /// </param>
+ /// <param name="left">
+ /// The Left Value
+ /// </param>
+ /// <param name="right">
+ /// The Right Value
+ /// </param>
+ public Cropping(int top, int bottom, int left, int right)
+ {
+ this.Top = top;
+ this.Bottom = bottom;
+ this.Left = left;
+ this.Right = right;
+ }
+
+ /// <summary>
+ /// Gets or sets Top.
+ /// </summary>
+ public int Top { get; set; }
+
+ /// <summary>
+ /// Gets or sets Bottom.
+ /// </summary>
+ public int Bottom { get; set; }
+
+ /// <summary>
+ /// Gets or sets Left.
+ /// </summary>
+ public int Left { get; set; }
+
+ /// <summary>
+ /// Gets or sets Right.
+ /// </summary>
+ public int Right { get; set; }
+
+ /// <summary>
+ /// Clone this model
+ /// </summary>
+ /// <returns>
+ /// A Cloned copy
+ /// </returns>
+ public Cropping Clone()
+ {
+ return new Cropping
+ {
+ Top = this.Top,
+ Bottom = this.Bottom,
+ Left = this.Left,
+ Right = this.Right
+ };
+ }
+ }
+}
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/PictureSettingsJob.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/PictureSettingsJob.cs
index e090522cb..519070545 100644
--- a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/PictureSettingsJob.cs
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/PictureSettingsJob.cs
@@ -4,11 +4,8 @@
// </copyright>
// --------------------------------------------------------------------------------------------------------------------
-namespace HandBrake.Interop.Interop.Interfaces.Model
+namespace HandBrake.Interop.Interop.Interfaces.Model.Picture
{
- using HandBrake.Interop.Interop.Model;
- using HandBrake.Interop.Interop.Model.Encoding;
-
public class PictureSettingsJob
{
public Cropping Crop { get; set; }
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/PictureSettingsTitle.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/PictureSettingsTitle.cs
index e90ae709a..e0345fba9 100644
--- a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/PictureSettingsTitle.cs
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Picture/PictureSettingsTitle.cs
@@ -4,7 +4,7 @@
// </copyright>
// --------------------------------------------------------------------------------------------------------------------
-namespace HandBrake.Interop.Interop.Interfaces.Model
+namespace HandBrake.Interop.Interop.Interfaces.Model.Picture
{
public class PictureSettingsTitle
{
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Presets/PresetVersion.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Presets/PresetVersion.cs
new file mode 100644
index 000000000..8319b38d2
--- /dev/null
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Presets/PresetVersion.cs
@@ -0,0 +1,27 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="PresetVersion.cs" company="HandBrake Project (https://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>
+// Defines the PresetVersion type.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.Interop.Interop.Interfaces.Model.Presets
+{
+ public class PresetVersion
+ {
+ public PresetVersion(int major, int minor, int micro)
+ {
+ this.Major = major;
+ this.Minor = minor;
+ this.Micro = micro;
+ }
+
+ public int Major { get; }
+
+ public int Minor { get; }
+
+ public int Micro { get; }
+ }
+}
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/PreviewSettings.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Preview/PreviewSettings.cs
index 5304610ff..a8b1a69bc 100644
--- a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/PreviewSettings.cs
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Preview/PreviewSettings.cs
@@ -7,10 +7,9 @@
// </summary>
// --------------------------------------------------------------------------------------------------------------------
-namespace HandBrake.Interop.Interop.Interfaces.Model
+namespace HandBrake.Interop.Interop.Interfaces.Model.Preview
{
- using HandBrake.Interop.Interop.Model;
- using HandBrake.Interop.Interop.Model.Encoding;
+ using HandBrake.Interop.Interop.Interfaces.Model.Picture;
/// <summary>
/// The preview settings.
diff --git a/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Preview/RawPreviewData.cs b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Preview/RawPreviewData.cs
new file mode 100644
index 000000000..c552c2b1a
--- /dev/null
+++ b/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Preview/RawPreviewData.cs
@@ -0,0 +1,30 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="RawPreviewData.cs" company="HandBrake Project (https://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>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrake.Interop.Interop.Interfaces.Model.Preview
+{
+ public class RawPreviewData
+ {
+ public RawPreviewData(byte[] rawBitmapData, int strideWidth, int strideHeight, int width, int height)
+ {
+ this.RawBitmapData = rawBitmapData;
+ this.StrideWidth = strideWidth;
+ this.StrideHeight = strideHeight;
+ this.Width = width;
+ this.Height = height;
+ }
+
+ public byte[] RawBitmapData { get; }
+
+ public int StrideWidth { get; }
+
+ public int StrideHeight { get; }
+
+ public int Width { get; }
+
+ public int Height { get; }
+ }
+}