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

namespace Gst.RtspServer {

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

#region Autogenerated code
	public partial class Global {

		[DllImport("gstrtspserver-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern IntPtr gst_rtsp_context_get_type();

		public static GLib.GType RtspContextGetType() {
			IntPtr raw_ret = gst_rtsp_context_get_type();
			GLib.GType ret = new GLib.GType(raw_ret);
			return ret;
		}

		[DllImport("gstrtspserver-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern int gst_rtsp_params_get(IntPtr client, IntPtr ctx);

		public static Gst.Rtsp.RTSPResult RtspParamsGet(Gst.RtspServer.RTSPClient client, Gst.RtspServer.RTSPContext ctx) {
			IntPtr native_ctx = GLib.Marshaller.StructureToPtrAlloc (ctx);
			int raw_ret = gst_rtsp_params_get(client == null ? IntPtr.Zero : client.Handle, native_ctx);
			Gst.Rtsp.RTSPResult ret = (Gst.Rtsp.RTSPResult) raw_ret;
			Marshal.FreeHGlobal (native_ctx);
			return ret;
		}

		[DllImport("gstrtspserver-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern int gst_rtsp_params_set(IntPtr client, IntPtr ctx);

		public static Gst.Rtsp.RTSPResult RtspParamsSet(Gst.RtspServer.RTSPClient client, Gst.RtspServer.RTSPContext ctx) {
			IntPtr native_ctx = GLib.Marshaller.StructureToPtrAlloc (ctx);
			int raw_ret = gst_rtsp_params_set(client == null ? IntPtr.Zero : client.Handle, native_ctx);
			Gst.Rtsp.RTSPResult ret = (Gst.Rtsp.RTSPResult) raw_ret;
			Marshal.FreeHGlobal (native_ctx);
			return ret;
		}

		[DllImport("gstrtspserver-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern bool gst_rtsp_sdp_from_media(IntPtr sdp, IntPtr info, IntPtr media);

		public static bool RtspSdpFromMedia(Gst.Sdp.SDPMessage sdp, Gst.RtspServer.SDPInfo info, Gst.RtspServer.RTSPMedia media) {
			IntPtr native_info = GLib.Marshaller.StructureToPtrAlloc (info);
			bool raw_ret = gst_rtsp_sdp_from_media(sdp == null ? IntPtr.Zero : sdp.Handle, native_info, media == null ? IntPtr.Zero : media.Handle);
			bool ret = raw_ret;
			Marshal.FreeHGlobal (native_info);
			return ret;
		}

		[DllImport("gstrtspserver-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern bool gst_rtsp_sdp_from_stream(IntPtr sdp, IntPtr info, IntPtr stream);

		public static bool RtspSdpFromStream(Gst.Sdp.SDPMessage sdp, Gst.RtspServer.SDPInfo info, Gst.RtspServer.RTSPStream stream) {
			IntPtr native_info = GLib.Marshaller.StructureToPtrAlloc (info);
			bool raw_ret = gst_rtsp_sdp_from_stream(sdp == null ? IntPtr.Zero : sdp.Handle, native_info, stream == null ? IntPtr.Zero : stream.Handle);
			bool ret = raw_ret;
			Marshal.FreeHGlobal (native_info);
			return ret;
		}

		[DllImport("gstrtspserver-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern bool gst_rtsp_sdp_make_media(IntPtr sdp, IntPtr info, IntPtr stream, IntPtr caps, int profile);

		public static bool RtspSdpMakeMedia(Gst.Sdp.SDPMessage sdp, Gst.RtspServer.SDPInfo info, Gst.RtspServer.RTSPStream stream, Gst.Caps caps, Gst.Rtsp.RTSPProfile profile) {
			IntPtr native_info = GLib.Marshaller.StructureToPtrAlloc (info);
			bool raw_ret = gst_rtsp_sdp_make_media(sdp == null ? IntPtr.Zero : sdp.Handle, native_info, stream == null ? IntPtr.Zero : stream.Handle, caps == null ? IntPtr.Zero : caps.Handle, (int) profile);
			bool ret = raw_ret;
			Marshal.FreeHGlobal (native_info);
			return ret;
		}

#endregion
	}
}
