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


#include <gstreamermm/bin.h>
#include <gstreamermm/enums.h>
#include <gstreamermm/element.h>
#include <gstreamermm/sample.h>
#include <gstreamermm/caps.h>
#include <gstreamermm/streamvolume.h>
#include <gstreamermm/videooverlay.h>
#include <gstreamermm/navigation.h>
#include <gstreamermm/colorbalance.h>
_DEFS(gstreamermm,gst)

namespace Gst
{

_WRAP_ENUM(PlaySinkSendEventMode,GstPlaySinkSendEventMode)
_CONV_ENUM(Gst,PlaySinkSendEventMode)

/** A Wrapper for the playsink 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
 * @deprecated Plugins API is deprecated, and should not be used in a new code.
 */
class PlaySink
: public Gst::Bin, public Gst::StreamVolume, public Gst::VideoOverlay, public Gst::Navigation, public Gst::ColorBalance
{
  _CLASS_GOBJECT(PlaySink, GstPlaySink, GST_PLAY_SINK_GSTREAMERMM, Gst::Bin, GstBin)
  _IMPLEMENTS_INTERFACE(Gst::StreamVolume)
  _IMPLEMENTS_INTERFACE(Gst::VideoOverlay)
  _IMPLEMENTS_INTERFACE(Gst::Navigation)
  _IMPLEMENTS_INTERFACE(Gst::ColorBalance)

  _IS_GSTREAMERMM_PLUGIN
protected:
  PlaySink();
  explicit PlaySink(const Glib::ustring& name);

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

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

  /** This is a convenience method for the action signal
   * signal_reconfigure().
   */
  bool reconfigure();

  /** This is a convenience method for the action signal
   * signal_convert_sample().
   */
  Glib::RefPtr<Gst::Sample> convert_sample(const Glib::RefPtr<Gst::Caps>& arg0);


  _WRAP_PROPERTY("flags", Gst::PlayFlags)
  _WRAP_PROPERTY("mute", bool)
  _WRAP_PROPERTY("volume", double)
  _WRAP_PROPERTY("subtitle-font-desc", Glib::ustring)
  _WRAP_PROPERTY("subtitle-encoding", Glib::ustring)
  _WRAP_PROPERTY("vis-plugin", Glib::RefPtr<Gst::Element>)
  _WRAP_PROPERTY("sample", Glib::RefPtr<Gst::Sample>)
  _WRAP_PROPERTY("av-offset", gint64)
  _WRAP_PROPERTY("video-sink", Glib::RefPtr<Gst::Element>)
  _WRAP_PROPERTY("audio-sink", Glib::RefPtr<Gst::Element>)
  _WRAP_PROPERTY("text-sink", Glib::RefPtr<Gst::Element>)
  _WRAP_PROPERTY("send-event-mode", Gst::PlaySinkSendEventMode)
  _WRAP_PROPERTY("force-aspect-ratio", bool)
  _WRAP_PROPERTY("video-filter", Glib::RefPtr<Gst::Element>)
  _WRAP_PROPERTY("audio-filter", Glib::RefPtr<Gst::Element>)


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


#m4 _CONVERSION(`Glib::RefPtr<Gst::Sample>', `GstSample*', `($3)->gobj_copy()')
#m4 _CONVERSION(`GstSample*', `Glib::RefPtr<Gst::Sample>', `Glib::wrap($3)')
#m4 _CONVERSION(`GstCaps*', `const Glib::RefPtr<Gst::Caps>&', `Glib::wrap($3, true)')
  /** This is an action signal which is designed to be used as a method.  To 
   * do that, use its convenience method, convert_sample().
   */
  _WRAP_SIGNAL(Glib::RefPtr<Gst::Sample> convert_sample(const Glib::RefPtr<Gst::Caps>& arg0), "convert-sample", no_default_handler)

};

} // namespace Gst
