/* 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>

_DEFS(gstreamermm,gst)

// 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
};

enum GstMultiHandleSinkClientStatus
{
  GST_CLIENT_STATUS_OK,
  GST_CLIENT_STATUS_CLOSED,
  GST_CLIENT_STATUS_REMOVED,
  GST_CLIENT_STATUS_SLOW,
  GST_CLIENT_STATUS_ERROR,
  GST_CLIENT_STATUS_DUPLICATE,
  GST_CLIENT_STATUS_FLUSHING
};

enum GstMultiHandleSinkSyncMethod
{
  GST_SYNC_METHOD_LATEST,
  GST_SYNC_METHOD_NEXT_KEYFRAME,
  GST_SYNC_METHOD_LATEST_KEYFRAME,
  GST_SYNC_METHOD_BURST,
  GST_SYNC_METHOD_BURST_KEYFRAME,
  GST_SYNC_METHOD_BURST_WITH_KEYFRAME
};

namespace Gst
{

_WRAP_ENUM(State, GstState)

// Plug-in non-genereated enums.  Handled manually and not generated because
// they are shared by more than one plug-in:
_WRAP_ENUM(AutoplugSelectResult, GstAutoplugSelectResult)

_WRAP_ENUM(MultiHandleSinkClientStatus, GstMultiHandleSinkClientStatus)

_WRAP_ENUM(MultiHandleSinkSyncMethod, GstMultiHandleSinkSyncMethod)

_WRAP_ENUM(PlayFlags, GstPlayFlags)

} //namespace Gst
