00001
00002
00003 #ifndef _GSTREAMERMM_PADTEMPLATE_H
00004 #define _GSTREAMERMM_PADTEMPLATE_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
00029
00030 #include <gst/gstpad.h>
00031 #include <gst/gstpadtemplate.h>
00032 #include <gstreamermm/object.h>
00033 #include <gstreamermm/pad.h>
00034
00035
00036 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00037 typedef struct _GstPadTemplate GstPadTemplate;
00038 typedef struct _GstPadTemplateClass GstPadTemplateClass;
00039 #endif
00040
00041
00042 namespace Gst
00043 { class PadTemplate_Class; }
00044 namespace Gst
00045 {
00046
00052 enum PadTemplateFlags
00053 {
00054 PAD_TEMPLATE_FIXED = GST_OBJECT_FLAG_LAST << 0,
00055 PAD_TEMPLATE_LAST = GST_OBJECT_FLAG_LAST << 4
00056 };
00057
00058 }
00059
00060
00061 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00062 namespace Glib
00063 {
00064
00065 template <>
00066 class Value<Gst::PadTemplateFlags> : public Glib::Value_Enum<Gst::PadTemplateFlags>
00067 {
00068 public:
00069 static GType value_type() G_GNUC_CONST;
00070 };
00071
00072 }
00073 #endif
00074
00075
00076 namespace Gst
00077 {
00078
00082 enum PadPresence
00083 {
00084 PAD_ALWAYS,
00085 PAD_SOMETIMES,
00086 PAD_REQUEST
00087 };
00088
00089 }
00090
00091
00092 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00093 namespace Glib
00094 {
00095
00096 template <>
00097 class Value<Gst::PadPresence> : public Glib::Value_Enum<Gst::PadPresence>
00098 {
00099 public:
00100 static GType value_type() G_GNUC_CONST;
00101 };
00102
00103 }
00104 #endif
00105
00106
00107 namespace Gst
00108 {
00109
00110
00111 class Caps;
00112 class Pad;
00113
00139 class PadTemplate : public Object
00140 {
00141
00142 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00143
00144 public:
00145 typedef PadTemplate CppObjectType;
00146 typedef PadTemplate_Class CppClassType;
00147 typedef GstPadTemplate BaseObjectType;
00148 typedef GstPadTemplateClass BaseClassType;
00149
00150 private: friend class PadTemplate_Class;
00151 static CppClassType padtemplate_class_;
00152
00153 private:
00154
00155 PadTemplate(const PadTemplate&);
00156 PadTemplate& operator=(const PadTemplate&);
00157
00158 protected:
00159 explicit PadTemplate(const Glib::ConstructParams& construct_params);
00160 explicit PadTemplate(GstPadTemplate* castitem);
00161
00162 #endif
00163
00164 public:
00165 virtual ~PadTemplate();
00166
00167 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00168 static GType get_type() G_GNUC_CONST;
00169 static GType get_base_type() G_GNUC_CONST;
00170 #endif
00171
00173 GstPadTemplate* gobj() { return reinterpret_cast<GstPadTemplate*>(gobject_); }
00174
00176 const GstPadTemplate* gobj() const { return reinterpret_cast<GstPadTemplate*>(gobject_); }
00177
00179 GstPadTemplate* gobj_copy();
00180
00181 private:
00182
00183
00184 protected:
00185 explicit PadTemplate(const Glib::ustring& name_template, PadDirection direction, PadPresence presence, const Glib::RefPtr<Gst::Caps>& caps);
00186
00187 public:
00200 static Glib::RefPtr<PadTemplate> create(const Glib::ustring& name_template, PadDirection direction, PadPresence presence, const Glib::RefPtr<Gst::Caps>& caps);
00201
00202
00207 Glib::RefPtr<Gst::Caps> get_caps();
00208
00213 Glib::RefPtr<const Gst::Caps> get_caps() const;
00214
00217 Glib::ustring get_name_template() const;
00218
00221 PadDirection get_direction() const;
00222
00225 PadPresence get_presence() const;
00226
00227
00234 Glib::SignalProxy1< void,const Glib::RefPtr<Gst::Pad>& > signal_pad_created();
00235
00236
00237
00238
00239
00240
00241 public:
00242
00243 public:
00244
00245 #ifdef GLIBMM_VFUNCS_ENABLED
00246 #endif //GLIBMM_VFUNCS_ENABLED
00247
00248 protected:
00249
00250 #ifdef GLIBMM_VFUNCS_ENABLED
00251 #endif //GLIBMM_VFUNCS_ENABLED
00252
00253
00254 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00255 virtual void on_pad_created(const Glib::RefPtr<Gst::Pad>& pad);
00256 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00257
00258
00259 };
00260
00261 }
00262
00263
00264 namespace Glib
00265 {
00274 Glib::RefPtr<Gst::PadTemplate> wrap(GstPadTemplate* object, bool take_copy = false);
00275 }
00276
00277
00278 #endif
00279