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 

Generated on Wed Aug 19 15:53:25 2009 for gstreamermm by  doxygen 1.5.4