/* IEncode.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.Services.Interfaces { using System; using HandBrake.ApplicationServices.EventArgs; using HandBrake.ApplicationServices.Model; /// /// Encode Progess Status /// /// /// The sender. /// /// /// The EncodeProgressEventArgs. /// public delegate void EncodeProgessStatus(object sender, EncodeProgressEventArgs e); /// /// Encode Progess Status /// /// /// The sender. /// /// /// The EncodeProgressEventArgs. /// public delegate void EncodeCompletedStatus(object sender, EncodeCompletedEventArgs e); /// /// The IEncode Interface /// public interface IEncode { /// /// Fires when a new CLI Job starts /// event EventHandler EncodeStarted; /// /// Fires when a CLI job finishes. /// event EncodeCompletedStatus EncodeCompleted; /// /// Encode process has progressed /// event EncodeProgessStatus EncodeStatusChanged; /// /// Gets a value indicating whether IsEncoding. /// bool IsEncoding { get; } /// /// Gets ActivityLog. /// string ActivityLog { get; } /// /// Start with a LibHb EncodeJob Object /// /// /// The job. /// /// /// The enable Logging. /// void Start(QueueTask job, bool enableLogging); /// /// Kill the CLI process /// void Stop(); /// /// Attempt to Safely kill a DirectRun() CLI /// NOTE: This will not work with a MinGW CLI /// Note: http://www.cygwin.com/ml/cygwin/2006-03/msg00330.html /// void SafelyStop(); /// /// Copy the log file to the desired destinations /// /// /// The destination. /// void ProcessLogs(string destination); } }