/* Source.cs $ This file is part of the HandBrake source code. Homepage: . It may be used under the terms of the GNU General Public License. */ namespace HandBrake.ApplicationServices.Parsing { using System.Collections.Generic; using System.IO; /// /// An object representing a scanned DVD /// public class Source { /// /// Initializes a new instance of the class. /// Default constructor for this object /// public Source() { Titles = new List(); } /// <summary> /// Gets or sets ScanPath. /// The Path used by the Scan Service. /// </summary> public string ScanPath { get; set; } /// <summary> /// Gets or sets Titles. A list of titles from the source /// </summary> public List<Title> Titles { get; set; } /// <summary> /// Parse the StreamReader output into a List of Titles /// </summary> /// <param name="output"> /// The output. /// </param> /// <returns> /// A DVD object which contains a list of title inforamtion /// </returns> public static Source Parse(StreamReader output) { var thisDVD = new Source(); while (!output.EndOfStream) { if ((char) output.Peek() == '+') thisDVD.Titles.AddRange(Title.ParseList(output.ReadToEnd())); else output.ReadLine(); } return thisDVD; } /// <summary> /// Copy this Source to another Source Model /// </summary> /// <param name="source"> /// The source. /// </param> public void CopyTo(Source source) { source.Titles = this.Titles; source.ScanPath = this.ScanPath; } } }