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


#include <gstreamermm/element.h>
#include <gstreamermm/pad.h>
_DEFS(gstreamermm,gst)

namespace Gst
{

/** A Wrapper for the input-selector plugin.
 * Please note that, though using the underlying GObject is fine, using its C
 * <B>type</B> is not guaranteed to be API stable across releases because it is
 * not guaranteed to always remain the same.  Also, 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 InputSelector
: public Gst::Element
{
  _CLASS_GOBJECT(InputSelector, GstInputSelector, GST_INPUT_SELECTOR, Gst::Element, GstElement)
  _IS_GSTREAMERMM_PLUGIN

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

public:
  /** Creates a new input-selector plugin with a unique name.
   */
  _WRAP_CREATE()

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

  /** This is a convenience method for the action signal
   * signal_block().
   */
  gint64 block();


  _WRAP_PROPERTY("n-pads", guint)
  _WRAP_PROPERTY("active-pad", Glib::RefPtr<Gst::Pad>)
  _WRAP_PROPERTY("sync-streams", bool)


  /** This is an action signal which is designed to be used as a method.  To 
   * do that, use its convenience method, block().
   */
  _WRAP_SIGNAL(gint64 block(), "block", no_default_handler)

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

} // namespace Gst
