// -------------------------------------------------------------------------------------------------------------------- // // This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. // // // Defines the encode portions of the IHandBrakeInstance // // -------------------------------------------------------------------------------------------------------------------- namespace HandBrake.Interop.Interop.Interfaces { using System; using HandBrake.Interop.Interop.EventArgs; using HandBrake.Interop.Interop.Json.Encode; using HandBrake.Interop.Interop.Json.State; public interface IEncodeInstance { /// /// Fires when an encode has completed. /// event EventHandler EncodeCompleted; /// /// Fires for progress updates when encoding. /// event EventHandler EncodeProgress; bool IsRemoteInstance { get; } /// /// Initializes this instance. /// /// /// The code for the logging verbosity to use. /// /// /// Turn off Hardware Acceleration /// void Initialize(int verbosity, bool noHardware); /// /// Frees any resources associated with this object. /// void Dispose(); /// /// Pauses the current encode. /// void PauseEncode(); /// /// Resumes a paused encode. /// void ResumeEncode(); /// /// Starts an encode with the given job. /// /// /// The job to start. /// void StartEncode(JsonEncodeObject jobToStart); /// /// Stops the current encode. /// void StopEncode(); /// /// Get the current Encode State. /// /// A JsonState object JsonState GetEncodeProgress(); } }