// -*- c++ -*-
// Generated by gmmproc 2.42.0 -- DO NOT MODIFY!
#ifndef _GSTREAMERMM_ENUMS_H
#define _GSTREAMERMM_ENUMS_H


#include <glibmm/ustring.h>
#include <sigc++/sigc++.h>

/* gstreamermm - a C++ wrapper for gstreamer
 *
 * Copyright 2008 The gstreamermm Development Team
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free
 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include <gst/gst.h>


// Plug-in C enums used in the plug-in signals that are shared need to be
// declared.  This one is is shared between decodebin2 and uridecodebin so it
// is difficult for it to be generated.
enum GstAutoplugSelectResult
{
  GST_AUTOPLUG_SELECT_TRY,
  GST_AUTOPLUG_SELECT_EXPOSE,
  GST_AUTOPLUG_SELECT_SKIP
};

namespace Gst
{

/** @addtogroup gstreamermmEnums gstreamermm Enums and Flags */

/** 
 *  @var State STATE_VOID_PENDING
 *  No pending state.
 * 
 *  @var State STATE_NULL
 *  The <tt>0</tt> state or initial state of an element.
 * 
 *  @var State STATE_READY
 *  The element is ready to go to PAUSED.
 * 
 *  @var State STATE_PAUSED
 *  The element is PAUSED, it is ready to accept and process data. Sink elements however only accept one buffer and then block.
 * 
 *  @var State STATE_PLAYING
 *  The element is PLAYING, the Gst::Clock is running and the data is flowing.
 * 
 *  @enum State
 * 
 * The possible states an element can be in. States can be changed using
 * Gst::Element::set_state() and checked using Gst::Element::get_state().
 * @ingroup gstreamermmEnums
 */
enum State
{
  STATE_VOID_PENDING,
  STATE_NULL,
  STATE_READY,
  STATE_PAUSED,
  STATE_PLAYING
};

} // namespace Gst


#ifndef DOXYGEN_SHOULD_SKIP_THIS
namespace Glib
{

template <>
class Value<Gst::State> : public Glib::Value_Enum<Gst::State>
{
public:
  static GType value_type() G_GNUC_CONST;
};

} // namespace Glib
#endif /* DOXYGEN_SHOULD_SKIP_THIS */


namespace Gst
{


// Plug-in non-genereated enums.  Handled manually and not generated because
// they are shared by more than one plug-in:
/** 
 * 
 * @ingroup gstreamermmEnums
 */
enum AutoplugSelectResult
{
  AUTOPLUG_SELECT_TRY,
  AUTOPLUG_SELECT_EXPOSE,
  AUTOPLUG_SELECT_SKIP
};

} // namespace Gst


#ifndef DOXYGEN_SHOULD_SKIP_THIS
namespace Glib
{

template <>
class Value<Gst::AutoplugSelectResult> : public Glib::Value_Enum<Gst::AutoplugSelectResult>
{
public:
  static GType value_type() G_GNUC_CONST;
};

} // namespace Glib
#endif /* DOXYGEN_SHOULD_SKIP_THIS */


namespace Gst
{


} //namespace Gst


#endif /* _GSTREAMERMM_ENUMS_H */

