diff options
Diffstat (limited to 'win/CS/HandBrake.Interop/Interop/Interfaces')
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; } + } +} |