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