/* Title.cs $ This file is part of the HandBrake source code. Homepage: . It may be used under the terms of the GNU General Public License. */ using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Text.RegularExpressions; using HandBrake.Interop; namespace HandBrake.SourceData { /// /// An object that represents a single Title of a DVD /// public class Title { private static readonly CultureInfo Culture = new CultureInfo("en-US", false); private readonly List audioTracks; private readonly List chapters; private readonly List subtitles; /// /// The constructor for this object /// public Title() { this.audioTracks = new List(); this.chapters = new List(); this.subtitles = new List(); } /// /// Collection of chapters in this Title /// public List Chapters { get { return this.chapters; } } /// /// Collection of audio tracks associated with this Title /// public List AudioTracks { get { return this.audioTracks; } } /// /// Collection of subtitles associated with this Title /// public List Subtitles { get { return this.subtitles; } } /// /// The track number of this Title (1-based). /// public int TitleNumber { get; set; } /// /// The length in time of this Title /// public TimeSpan Duration { get; set; } /// /// The resolution (width/height) of this Title /// public Size Resolution { get; set; } /// /// The aspect ratio of this Title /// public double AspectRatio { get; set; } public int AngleCount { get; set; } /// /// Par Value /// public Size ParVal { get; set; } /// /// The automatically detected crop region for this Title. /// This is an int array with 4 items in it as so: /// 0: /// 1: /// 2: /// 3: /// public Cropping AutoCropDimensions { get; set; } /// /// Override of the ToString method to provide an easy way to use this object in the UI /// /// A string representing this track in the format: {title #} (00:00:00) public override string ToString() { return string.Format("{0} ({1:00}:{2:00}:{3:00})", this.TitleNumber, this.Duration.Hours, this.Duration.Minutes, this.Duration.Seconds); } public string Display { get { return this.ToString(); } } } }