// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.

namespace Gst.Rtsp {

	using System;
	using System.Collections;
	using System.Collections.Generic;
	using System.Runtime.InteropServices;

#region Autogenerated code
	[StructLayout(LayoutKind.Sequential)]
	public partial struct RTSPTimeRange : IEquatable<RTSPTimeRange> {

		public Gst.Rtsp.RTSPRangeUnit Unit;
		public Gst.Rtsp.RTSPTime Min;
		public Gst.Rtsp.RTSPTime Max;
		public Gst.Rtsp.RTSPTime2 Min2;
		public Gst.Rtsp.RTSPTime2 Max2;

		public static Gst.Rtsp.RTSPTimeRange Zero = new Gst.Rtsp.RTSPTimeRange ();

		public static Gst.Rtsp.RTSPTimeRange New(IntPtr raw) {
			if (raw == IntPtr.Zero)
				return Gst.Rtsp.RTSPTimeRange.Zero;
			return (Gst.Rtsp.RTSPTimeRange) Marshal.PtrToStructure (raw, typeof (Gst.Rtsp.RTSPTimeRange));
		}

		public bool Equals (RTSPTimeRange other)
		{
			return true && Unit.Equals (other.Unit) && Min.Equals (other.Min) && Max.Equals (other.Max) && Min2.Equals (other.Min2) && Max2.Equals (other.Max2);
		}

		public override bool Equals (object other)
		{
			return other is RTSPTimeRange && Equals ((RTSPTimeRange) other);
		}

		public override int GetHashCode ()
		{
			return this.GetType ().FullName.GetHashCode () ^ Unit.GetHashCode () ^ Min.GetHashCode () ^ Max.GetHashCode () ^ Min2.GetHashCode () ^ Max2.GetHashCode ();
		}

		private static GLib.GType GType {
			get { return GLib.GType.Pointer; }
		}
#endregion
	}
}
