00001
00002
00003 #ifndef _GSTREAMERMM_PLUGINFEATURE_H
00004 #define _GSTREAMERMM_PLUGINFEATURE_H
00005
00006
00007 #include <glibmm.h>
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include <gst/gstpluginfeature.h>
00029 #include <gstreamermm/object.h>
00030
00031
00032 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00033 typedef struct _GstPluginFeature GstPluginFeature;
00034 typedef struct _GstPluginFeatureClass GstPluginFeatureClass;
00035 #endif
00036
00037
00038 namespace Gst
00039 { class PluginFeature_Class; }
00040 namespace Gst
00041 {
00042
00048 enum Rank
00049 {
00050 RANK_NONE = 0,
00051 RANK_MARGINAL = 64,
00052 RANK_SECONDARY = 128,
00053 RANK_PRIMARY = 256
00054 };
00055
00056 }
00057
00058
00059 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00060 namespace Glib
00061 {
00062
00063 template <>
00064 class Value<Gst::Rank> : public Glib::Value_Enum<Gst::Rank>
00065 {
00066 public:
00067 static GType value_type() G_GNUC_CONST;
00068 };
00069
00070 }
00071 #endif
00072
00073
00074 namespace Gst
00075 {
00076
00077
00082 class PluginFeature : public Object
00083 {
00084
00085 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00086
00087 public:
00088 typedef PluginFeature CppObjectType;
00089 typedef PluginFeature_Class CppClassType;
00090 typedef GstPluginFeature BaseObjectType;
00091 typedef GstPluginFeatureClass BaseClassType;
00092
00093 private: friend class PluginFeature_Class;
00094 static CppClassType pluginfeature_class_;
00095
00096 private:
00097
00098 PluginFeature(const PluginFeature&);
00099 PluginFeature& operator=(const PluginFeature&);
00100
00101 protected:
00102 explicit PluginFeature(const Glib::ConstructParams& construct_params);
00103 explicit PluginFeature(GstPluginFeature* castitem);
00104
00105 #endif
00106
00107 public:
00108 virtual ~PluginFeature();
00109
00110 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00111 static GType get_type() G_GNUC_CONST;
00112 static GType get_base_type() G_GNUC_CONST;
00113 #endif
00114
00116 GstPluginFeature* gobj() { return reinterpret_cast<GstPluginFeature*>(gobject_); }
00117
00119 const GstPluginFeature* gobj() const { return reinterpret_cast<GstPluginFeature*>(gobject_); }
00120
00122 GstPluginFeature* gobj_copy();
00123
00124 private:
00125
00126
00127 public:
00133 typedef sigc::slot< bool, const Glib::RefPtr<Gst::PluginFeature>& > SlotFilter;
00134
00135
00140 void set_rank(guint rank);
00141
00148 void set_name(const Glib::ustring& name);
00149
00153 guint get_rank() const;
00154
00158 Glib::ustring get_name() const;
00159
00174 Glib::RefPtr<Gst::PluginFeature> load();
00175
00176
00177
00178
00179
00188 bool check_version(guint min_major, guint min_minor, guint min_micro) const;
00189
00190
00191
00192
00193
00194 public:
00195
00196 public:
00197
00198 #ifdef GLIBMM_VFUNCS_ENABLED
00199 #endif //GLIBMM_VFUNCS_ENABLED
00200
00201 protected:
00202
00203 #ifdef GLIBMM_VFUNCS_ENABLED
00204 #endif //GLIBMM_VFUNCS_ENABLED
00205
00206
00207 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00208 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00209
00210
00211 };
00212
00213 }
00214
00215
00216 namespace Glib
00217 {
00226 Glib::RefPtr<Gst::PluginFeature> wrap(GstPluginFeature* object, bool take_copy = false);
00227 }
00228
00229
00230 #endif
00231