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

namespace Gst {

	using System;

	public delegate void StreamNotifyHandler(object o, StreamNotifyArgs args);

	public class StreamNotifyArgs : GLib.SignalArgs {
		public Gst.Stream Object{
			get {
				return (Gst.Stream) Args [0];
			}
		}

		public IntPtr P0{
			get {
				return (IntPtr) Args [1];
			}
		}

	}
}
