// -------------------------------------------------------------------------------------------------------------------- // // This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. // // // The video level. // // -------------------------------------------------------------------------------------------------------------------- namespace HandBrakeWPF.Services.Encode.Model.Models.Video { using VideoLevelFactory = HandBrakeWPF.Services.Encode.Factories.VideoLevelFactory; /// /// The video level. /// public class VideoLevel { /// /// An internal representation of the Auto Selection. /// public static VideoLevel Auto = new VideoLevel("Auto", "auto"); /// /// Initializes a new instance of the class. /// public VideoLevel() { } /// /// Initializes a new instance of the class. /// /// /// The display name. /// /// /// The short name. /// public VideoLevel(string displayName, string shortName) { this.DisplayName = VideoLevelFactory.GetDisplayName(displayName); this.ShortName = shortName; } /// /// Gets or sets the display name. /// public string DisplayName { get; set; } /// /// Gets or sets the short name. /// public string ShortName { get; set; } /// /// The clone. /// /// /// The . /// public VideoLevel Clone() { return new VideoLevel(this.DisplayName, this.ShortName); } /// /// The equals. /// /// /// The other. /// /// /// The . /// protected bool Equals(VideoLevel other) { return string.Equals(this.ShortName, other.ShortName); } /// /// The equals. /// /// /// The obj. /// /// /// The . /// 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((VideoLevel)obj); } /// /// The get hash code. /// /// /// The . /// public override int GetHashCode() { return (this.ShortName != null ? this.ShortName.GetHashCode() : 0); } } }