00001
00002
00003 #ifndef _GSTREAMERMM_PADTEMPLATE_H
00004 #define _GSTREAMERMM_PADTEMPLATE_H
00005
00006
00007 #include <glibmm.h>
00008
00009 #include <gstreamermm/object.h>
00010 #include <gstreamermm/enums.h>
00011
00012
00013 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00014 typedef struct _GstPadTemplate GstPadTemplate;
00015 typedef struct _GstPadTemplateClass GstPadTemplateClass;
00016 #endif
00017
00018
00019 namespace Gst
00020 { class PadTemplate_Class; }
00021 namespace Gst
00022 {
00023
00024 class Caps;
00025 class Pad;
00026
00027
00028 class PadTemplate : public Object
00029 {
00030
00031 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00032
00033 public:
00034 typedef PadTemplate CppObjectType;
00035 typedef PadTemplate_Class CppClassType;
00036 typedef GstPadTemplate BaseObjectType;
00037 typedef GstPadTemplateClass BaseClassType;
00038
00039 private: friend class PadTemplate_Class;
00040 static CppClassType padtemplate_class_;
00041
00042 private:
00043
00044 PadTemplate(const PadTemplate&);
00045 PadTemplate& operator=(const PadTemplate&);
00046
00047 protected:
00048 explicit PadTemplate(const Glib::ConstructParams& construct_params);
00049 explicit PadTemplate(GstPadTemplate* castitem);
00050
00051 #endif
00052
00053 public:
00054 virtual ~PadTemplate();
00055
00056 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00057 static GType get_type() G_GNUC_CONST;
00058 static GType get_base_type() G_GNUC_CONST;
00059 #endif
00060
00062 GstPadTemplate* gobj() { return reinterpret_cast<GstPadTemplate*>(gobject_); }
00063
00065 const GstPadTemplate* gobj() const { return reinterpret_cast<GstPadTemplate*>(gobject_); }
00066
00068 GstPadTemplate* gobj_copy();
00069
00070 private:
00071
00072
00073 protected:
00074 PadTemplate();
00075
00076 public:
00077 Glib::RefPtr<PadTemplate> create(const Glib::ustring& name_template, PadDirection direction, PadPresence presence, const Glib::RefPtr<Caps>& caps);
00078
00079 Glib::RefPtr<Caps> get_caps();
00080
00081 Glib::RefPtr<const Caps> get_caps() const;
00082
00083
00089 Glib::SignalProxy1< void,const Glib::RefPtr<Pad>& > signal_pad_created();
00090
00091
00092 public:
00093
00094 public:
00095
00096 #ifdef GLIBMM_VFUNCS_ENABLED
00097 #endif //GLIBMM_VFUNCS_ENABLED
00098
00099 protected:
00100
00101 #ifdef GLIBMM_VFUNCS_ENABLED
00102 #endif //GLIBMM_VFUNCS_ENABLED
00103
00104
00105 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00106 virtual void on_pad_created(const Glib::RefPtr<Pad>& pad);
00107 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00108
00109
00110 };
00111
00112 }
00113
00114
00115 namespace Glib
00116 {
00125 Glib::RefPtr<Gst::PadTemplate> wrap(GstPadTemplate* object, bool take_copy = false);
00126 }
00127
00128
00129 #endif
00130