// Generated by generate_plugin_gmmproc_file. Don't edit this file.


#include <gstreamermm/basesrc.h>
#include <gstreamermm/format.h>
#include <gstreamermm/buffer.h>
#include <gstreamermm/pad.h>
_DEFS(gstreamermm,gst)

namespace Gst
{

_WRAP_ENUM(FakeSrcDataType,GstFakeSrcDataType)
_CONV_ENUM(Gst,FakeSrcDataType)

_WRAP_ENUM(FakeSrcSizeType,GstFakeSrcSizeType)
_CONV_ENUM(Gst,FakeSrcSizeType)

_WRAP_ENUM(FakeSrcFillType,GstFakeSrcFillType)
_CONV_ENUM(Gst,FakeSrcFillType)

/** A Wrapper for the fakesrc plugin.
 * Please note that not all plug-ins are available on all systems so care
 * must be taken that they exist before they are used otherwise there will
 * be errors and possibly a crash.
 *
 * @ingroup GstPlugins
 */
class FakeSrc
: public Gst::BaseSrc
{
  _CLASS_GOBJECT(FakeSrc, GstFakeSrc, GST_FAKE_SRC_GSTREAMERMM, Gst::BaseSrc, GstBaseSrc)
  _IS_GSTREAMERMM_PLUGIN
  _NO_WRAP_INIT_REGISTRATION
  _CUSTOM_WRAP_FUNCTION

protected:
  FakeSrc();
  explicit FakeSrc(const Glib::ustring& name);

public:
  /** Creates a new fakesrc plugin with a unique name.
   */
  _WRAP_CREATE()

  /** Creates a new fakesrc plugin with the given name.
   */
  _WRAP_CREATE(const Glib::ustring& name)

  _WRAP_PROPERTY("data", Gst::FakeSrcDataType)
  _WRAP_PROPERTY("sizetype", Gst::FakeSrcSizeType)
  _WRAP_PROPERTY("sizemin", int)
  _WRAP_PROPERTY("sizemax", int)
  _WRAP_PROPERTY("filltype", Gst::FakeSrcFillType)
  _WRAP_PROPERTY("datarate", int)
  _WRAP_PROPERTY("sync", bool)
  _WRAP_PROPERTY("pattern", Glib::ustring)
  _WRAP_PROPERTY("signal-handoffs", bool)
  _WRAP_PROPERTY("silent", bool)
  _WRAP_PROPERTY("dump", bool)
  _WRAP_PROPERTY("parentsize", int)
  _WRAP_PROPERTY("last-message", Glib::ustring)
  _WRAP_PROPERTY("can-activate-pull", bool)
  _WRAP_PROPERTY("can-activate-push", bool)
  _WRAP_PROPERTY("is-live", bool)
  _WRAP_PROPERTY("format", Gst::Format)

#m4 _CONVERSION(`GstBuffer*', `const Glib::RefPtr<Gst::Buffer>&', `Glib::wrap($3, true)')
#m4 _CONVERSION(`GstPad*', `const Glib::RefPtr<Gst::Pad>&', `Glib::wrap($3, true)')
  _WRAP_SIGNAL(void handoff(const Glib::RefPtr<Gst::Buffer>& arg0, const Glib::RefPtr<Gst::Pad>& arg1), "handoff", no_default_handler)
};

} // namespace Gst
