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

namespace Gst.RtspServer {

	using System;

	public delegate void TargetStateHandler(object o, TargetStateArgs args);

	public class TargetStateArgs : GLib.SignalArgs {
		public int Object{
			get {
				return (int) Args [0];
			}
		}

	}
}
