gstreamermm: padtemplate.h Source File

- Main Page
- Modules
- Namespaces
- Classes
- Files

# padtemplate.h

Go to the documentation of this file.

    00001 // -*- c++ -*-
    00002 // Generated by gtkmmproc -- DO NOT MODIFY!
    00003 #ifndef _GSTREAMERMM_PADTEMPLATE_H
    00004 #define _GSTREAMERMM_PADTEMPLATE_H
    00005
    00006
    00007 #include <glibmm.h>
    00008
    00009 /* gstreamermm - a C++ wrapper for gstreamer
    00010  *
    00011  * Copyright 2008 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/gstpad.h>
    00029 #include <gst/gstpadtemplate.h>
    00030 #include <gstreamermm/object.h>
    00031 #include <gstreamermm/pad.h>
    00032
    00033
    00034 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00035 typedef struct _GstPadTemplate GstPadTemplate;
    00036 typedef struct _GstPadTemplateClass GstPadTemplateClass;
    00037 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
    00038
    00039
    00040 namespace Gst
    00041 { class PadTemplate_Class; } // namespace Gst
    00042 namespace Gst
    00043 {
    00044
    00050 enum PadTemplateFlags
    00051 {
    00052   PAD_TEMPLATE_FIXED = GST_OBJECT_FLAG_LAST << 0,
    00053   PAD_TEMPLATE_LAST = GST_OBJECT_FLAG_LAST << 4
    00054 };
    00055
    00056 } // namespace Gst
    00057
    00058
    00059 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00060 namespace Glib
    00061 {
    00062
    00063 template <>
    00064 class Value<Gst::PadTemplateFlags> : public Glib::Value_Enum<Gst::PadTemplateFlags>
    00065 {
    00066 public:
    00067   static GType value_type() G_GNUC_CONST;
    00068 };
    00069
    00070 } // namespace Glib
    00071 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
    00072
    00073
    00074 namespace Gst
    00075 {
    00076
    00080 enum PadPresence
    00081 {
    00082   PAD_ALWAYS,
    00083   PAD_SOMETIMES,
    00084   PAD_REQUEST
    00085 };
    00086
    00087 } // namespace Gst
    00088
    00089
    00090 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00091 namespace Glib
    00092 {
    00093
    00094 template <>
    00095 class Value<Gst::PadPresence> : public Glib::Value_Enum<Gst::PadPresence>
    00096 {
    00097 public:
    00098   static GType value_type() G_GNUC_CONST;
    00099 };
    00100
    00101 } // namespace Glib
    00102 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
    00103
    00104
    00105 namespace Gst
    00106 {
    00107
    00108
    00109 class Caps;
    00110 class Pad;
    00111
    00137 class PadTemplate  : public Object
    00138 {
    00139
    00140 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00141
    00142 public:
    00143   typedef PadTemplate CppObjectType;
    00144   typedef PadTemplate_Class CppClassType;
    00145   typedef GstPadTemplate BaseObjectType;
    00146   typedef GstPadTemplateClass BaseClassType;
    00147
    00148 private:  friend class PadTemplate_Class;
    00149   static CppClassType padtemplate_class_;
    00150
    00151 private:
    00152   // noncopyable
    00153   PadTemplate(const PadTemplate&);
    00154   PadTemplate& operator=(const PadTemplate&);
    00155
    00156 protected:
    00157   explicit PadTemplate(const Glib::ConstructParams& construct_params);
    00158   explicit PadTemplate(GstPadTemplate* castitem);
    00159
    00160 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
    00161
    00162 public:
    00163   virtual ~PadTemplate();
    00164
    00165 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00166   static GType get_type()      G_GNUC_CONST;
    00167   static GType get_base_type() G_GNUC_CONST;
    00168 #endif
    00169
    00171   GstPadTemplate*       gobj()       { return reinterpret_cast<GstPadTemplate*>(gobject_); }
    00172
    00174   const GstPadTemplate* gobj() const { return reinterpret_cast<GstPadTemplate*>(gobject_); }
    00175
    00177   GstPadTemplate* gobj_copy();
    00178
    00179 private:
    00180
    00181
    00182 protected:
    00183   explicit PadTemplate(const Glib::ustring& name_template, PadDirection direction, PadPresence presence, const Glib::RefPtr<Gst::Caps>& caps);
    00184
    00185 public:
    00198   static Glib::RefPtr<PadTemplate> create(const Glib::ustring& name_template, PadDirection direction, PadPresence presence, const Glib::RefPtr<Gst::Caps>& caps);
    00199
    00200
    00205   Glib::RefPtr<Gst::Caps> get_caps();
    00206
    00211   Glib::RefPtr<const Gst::Caps> get_caps() const;
    00212
    00215    Glib::ustring get_name_template() const;
    00216
    00219    PadDirection get_direction() const;
    00220
    00223    PadPresence get_presence() const;
    00224
    00225
    00232   Glib::SignalProxy1< void,const Glib::RefPtr<Gst::Pad>& > signal_pad_created();
    00233
    00234
    00235   //gst_pad_template_pad_created emits the "pad-created" signal.  It seems
    00236   //internal to C API (it is not found in API docs) so ignore it.
    00237
    00238
    00239 public:
    00240
    00241 public:
    00242   //C++ methods used to invoke GTK+ virtual functions:
    00243 #ifdef GLIBMM_VFUNCS_ENABLED
    00244 #endif //GLIBMM_VFUNCS_ENABLED
    00245
    00246 protected:
    00247   //GTK+ Virtual Functions (override these to change behaviour):
    00248 #ifdef GLIBMM_VFUNCS_ENABLED
    00249 #endif //GLIBMM_VFUNCS_ENABLED
    00250
    00251   //Default Signal Handlers::
    00252 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
    00253   virtual void on_pad_created(const Glib::RefPtr<Gst::Pad>& pad);
    00254 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
    00255
    00256
    00257 };
    00258
    00259 } //namespace Gst
    00260
    00261
    00262 namespace Glib
    00263 {
    00272   Glib::RefPtr<Gst::PadTemplate> wrap(GstPadTemplate* object, bool take_copy = false);
    00273 }
    00274
    00275
    00276 #endif /* _GSTREAMERMM_PADTEMPLATE_H */
    00277