// --------------------------------------------------------------------------------------------------------------------
// <copyright file="hb_state_s.cs" company="HandBrake Project (http://handbrake.fr)">
//   This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
// </copyright>
// <auto-generated>Disable Stylecop Warnings for this file</auto-generated>
// --------------------------------------------------------------------------------------------------------------------

namespace HandBrake.Interop.HbLib
{
	using System.Runtime.InteropServices;

	[StructLayout(LayoutKind.Sequential)]
	public struct hb_state_s
	{
		/// int
		public int state;
		public hb_state_param_u param;
	}

	[StructLayout(LayoutKind.Explicit)]
	public struct hb_state_param_u
	{
		[FieldOffset(0)]
		public hb_state_scanning_anon scanning;

		[FieldOffset(0)]
		public hb_state_working_anon working;

		[FieldOffset(0)]
		public hb_state_workdone_anon workdone;

		[FieldOffset(0)]
		public hb_state_muxing_anon muxing;
	}

	[StructLayout(LayoutKind.Sequential)]
	public struct hb_state_scanning_anon
	{
		public float progress;

		public int preview_cur;

		public int preview_count;

		/// int
		public int title_cur;

		/// int
		public int title_count;
	}

	[StructLayout(LayoutKind.Sequential)]
	public struct hb_state_working_anon
	{
		/// float
		public float progress;

		/// int
		public int job_cur;

		/// int
		public int job_count;

		/// float
		public float rate_cur;

		/// float
		public float rate_avg;

		/// int
		public int hours;

		/// int
		public int minutes;

		/// int
		public int seconds;

		/// int
		public int sequence_id;
	}

	[StructLayout(LayoutKind.Sequential)]
	public struct hb_state_workdone_anon
	{
		/// int
		public hb_error_code error;
	}

	[StructLayout(LayoutKind.Sequential)]
	public struct hb_state_muxing_anon
	{
		/// float
		public float progress;
	}
}
