// --------------------------------------------------------------------------------------------------------------------
//
// 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);
}
}
}