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


_PINCLUDE(gstreamermm/private/basesink_p.h)

extern "C"
{

static GType gst_fd_set_mode_get_type()
{
  static GType const type = g_type_from_name("GstFDSetMode");
  return type;
}

static GType gst_tcp_unit_type_get_type()
{
  static GType const type = g_type_from_name("GstTCPUnitType");
  return type;
}

static GType gst_recover_policy_get_type()
{
  static GType const type = g_type_from_name("GstRecoverPolicy");
  return type;
}

static GType gst_sync_method_get_type()
{
  static GType const type = g_type_from_name("GstSyncMethod");
  return type;
}

static GType gst_client_status_get_type()
{
  static GType const type = g_type_from_name("GstClientStatus");
  return type;
}

GType gst_multi_fd_sink_gstreamermm_get_type()
{
  static GType type = 0;
  GstElementFactory* factory = 0;
  GstPluginFeature* feature = 0;

  if(!type)
  {
    factory = gst_element_factory_find("multifdsink");
    // Make sure that the feature is actually loaded:
    if(factory)
    {
      feature =
        gst_plugin_feature_load(GST_PLUGIN_FEATURE(factory));

      g_object_unref(factory);
      factory = GST_ELEMENT_FACTORY(feature);
      type = gst_element_factory_get_element_type(factory);
      g_object_unref(factory);

      // Register the new type with wrapping system
      Glib::wrap_register(type, &Gst::MultiFdSink_Class::wrap_new);
    }
  }

  return type;
}

} // extern "C"

namespace Gst
{

MultiFdSink::MultiFdSink()
: _CONSTRUCT("name", static_cast<char*>(0))
{}

MultiFdSink::MultiFdSink(const Glib::ustring& name)
: _CONSTRUCT("name", name.c_str())
{}

void MultiFdSink::add(int arg0)
{
  g_signal_emit_by_name(gobj(), "add", _CONVERT(`int', `gint', `arg0'), static_cast<void*>(0));
}

void MultiFdSink::add_full(int arg0, Gst::SyncMethod arg1, Gst::TCPUnitType arg2, guint64 arg3, Gst::TCPUnitType arg4, guint64 arg5)
{
  g_signal_emit_by_name(gobj(), "add-full", _CONVERT(`int', `gint', `arg0'), _CONVERT(`Gst::SyncMethod', `GstSyncMethod', `arg1'), _CONVERT(`Gst::TCPUnitType', `GstTCPUnitType', `arg2'), _CONVERT(`guint64', `guint64', `arg3'), _CONVERT(`Gst::TCPUnitType', `GstTCPUnitType', `arg4'), _CONVERT(`guint64', `guint64', `arg5'), static_cast<void*>(0));
}

void MultiFdSink::remove(int arg0)
{
  g_signal_emit_by_name(gobj(), "remove", _CONVERT(`int', `gint', `arg0'), static_cast<void*>(0));
}

void MultiFdSink::remove_flush(int arg0)
{
  g_signal_emit_by_name(gobj(), "remove-flush", _CONVERT(`int', `gint', `arg0'), static_cast<void*>(0));
}

void MultiFdSink::clear()
{
  g_signal_emit_by_name(gobj(), "clear", static_cast<void*>(0));
}

Glib::ValueArray MultiFdSink::get_stats(int arg0)
{
  GValueArray* result;
  g_signal_emit_by_name(gobj(), "get-stats", _CONVERT(`int', `gint', `arg0'), &result, static_cast<void*>(0));
  return _CONVERT(`GValueArray*', `Glib::ValueArray', `result');
}

}
namespace Glib
{

Glib::RefPtr<Gst::MultiFdSink> wrap(GstMultiFdSink* object, bool take_copy)
{
  static bool registered_wrap_new = false;
  if(!registered_wrap_new)
  {
    // Call get *_get_type() function which does the registration.
    gst_multi_fd_sink_gstreamermm_get_type();
    registered_wrap_new = true;
  }

  return Glib::RefPtr<Gst::MultiFdSink>( dynamic_cast<Gst::MultiFdSink*> (Glib::wrap_auto ((GObject*)(object), take_copy)) );
}

}
