- Main Page
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

# typefind.h

Go to the documentation of this file.

    00001 // -*- c++ -*-
    00002 // Generated by gtkmmproc -- DO NOT MODIFY!
    00003 #ifndef _GSTREAMERMM_TYPEFIND_H
    00004 #define _GSTREAMERMM_TYPEFIND_H
    00005
    00006
    00007 #include <glibmm.h>
    00008
    00009 /* gstreamermm - a C++ wrapper for gstreamer
    00010  *
    00011  * Copyright 2009 The gstreamermm Development Team
    00012  *
    00013  * This library is free software; you can redistribute it and/or
    00014  * modify it under the terms of the GNU Lesser General Public
    00015  * License as published by the Free Software Foundation; either
    00016  * version 2.1 of the License, or (at your option) any later version.
    00017  *
    00018  * This library is distributed in the hope that it will be useful,
    00019  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    00020  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00021  * Lesser General Public License for more details.
    00022  *
    00023  * You should have received a copy of the GNU Lesser General Public
    00024  * License along with this library; if not, write to the Free
    00025  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
    00026  */
    00027
    00028 #include <gst/gsttypefind.h>
    00029
    00030
    00031 namespace Gst
    00032 {
    00033
    00039 enum TypeFindProbability
    00040 {
    00041   TYPE_FIND_MINIMUM = 1,
    00042   TYPE_FIND_POSSIBLE = 50,
    00043   TYPE_FIND_LIKELY = 80,
    00044   TYPE_FIND_NEARLY_CERTAIN = 99,
    00045   TYPE_FIND_MAXIMUM = 100
    00046 };
    00047
    00048 } // namespace Gst
    00049
    00050
    00051 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00052 namespace Glib
    00053 {
    00054
    00055 template <>
    00056 class Value<Gst::TypeFindProbability> : public Glib::Value_Enum<Gst::TypeFindProbability>
    00057 {
    00058 public:
    00059   static GType value_type() G_GNUC_CONST;
    00060 };
    00061
    00062 } // namespace Glib
    00063 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
    00064
    00065
    00066 namespace Gst
    00067 {
    00068
    00069
    00070 class Caps;
    00071 class Plugin;
    00072
    00079 class TypeFind
    00080 {
    00081   //TODO: Maybe file a GStreamer bug about GstTypeFind not being a GObject
    00082   //making it difficult for C++ developers to write their own TypeFind classes
    00083   //(see the Gst::TypeFindFactory class docs for more info).
    00084   public:
    00085 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00086   typedef TypeFind CppObjectType;
    00087   typedef GstTypeFind BaseObjectType;
    00088
    00089   static GType get_type() G_GNUC_CONST;
    00090 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
    00091
    00092   TypeFind();
    00093
    00094   explicit TypeFind(const GstTypeFind* gobject); // always takes a copy
    00095
    00097   GstTypeFind*       gobj()       { return &gobject_; }
    00098
    00100   const GstTypeFind* gobj() const { return &gobject_; }
    00101
    00102 protected:
    00103   GstTypeFind gobject_;
    00104
    00105 private:
    00106
    00107
    00108 public:
    00112   typedef sigc::slot<void> SlotFind;
    00113
    00114 public:
    00115
    00116
    00128   Glib::ArrayHandle<guint8> peek(gint64 offset, guint size) const;
    00129
    00130
    00139   void suggest(guint probability, const Glib::RefPtr<const Gst::Caps>& caps) const;
    00140
    00141
    00145   guint64 get_length() const;
    00146
    00163   static bool register_slot(const Glib::RefPtr<Gst::Plugin>& plugin, const Glib::ustring& name, guint rank, const SlotFind& find_slot, const Glib::StringArrayHandle& extensions, const Glib::RefPtr<const Gst::Caps>& caps);
    00164
    00179   static bool register_slot(const Glib::RefPtr<Gst::Plugin>& plugin, const Glib::ustring& name, guint rank, const SlotFind& find_slot, const Glib::RefPtr<const Gst::Caps>& caps);
    00180
    00195   static bool register_slot(const Glib::RefPtr<Gst::Plugin>& plugin, const Glib::ustring& name, guint rank, const SlotFind& find_slot, const Glib::StringArrayHandle& extensions);
    00196
    00209   static bool register_slot(const Glib::RefPtr<Gst::Plugin>& plugin, const Glib::ustring& name, guint rank, const SlotFind& find_slot);
    00210
    00224   static bool register_slot(const Glib::ustring& name, guint rank, const SlotFind& find_slot, const Glib::StringArrayHandle& extensions, const Glib::RefPtr<const Gst::Caps>& caps);
    00225
    00237   static bool register_slot(const Glib::ustring& name, guint rank, const SlotFind& find_slot, const Glib::RefPtr<const Gst::Caps>& caps);
    00238
    00250   static bool register_slot(const Glib::ustring& name, guint rank, const SlotFind& find_slot, const Glib::StringArrayHandle& extensions);
    00251
    00261   static bool register_slot(const Glib::ustring& name, guint rank, const SlotFind& find_slot);
    00262
    00263
    00264 };
    00265
    00266 } // namespace Gst
    00267
    00268
    00269 namespace Glib
    00270 {
    00271
    00276 Gst::TypeFind& wrap(GstTypeFind* object);
    00277
    00282 const Gst::TypeFind& wrap(const GstTypeFind* object);
    00283
    00284 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00285 template <>
    00286 class Value<Gst::TypeFind> : public Glib::Value_Boxed<Gst::TypeFind>
    00287 {};
    00288 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
    00289
    00290 } // namespace Glib
    00291
    00292
    00293 #endif /* _GSTREAMERMM_TYPEFIND_H */
    00294