00001
00002
00003 #ifndef _GSTREAMERMM_GHOSTPAD_H
00004 #define _GSTREAMERMM_GHOSTPAD_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 <gstreamermm/pad.h>
00029
00030
00031 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00032 typedef struct _GstGhostPad GstGhostPad;
00033 typedef struct _GstGhostPadClass GstGhostPadClass;
00034 #endif
00035
00036
00037 namespace Gst
00038 { class GhostPad_Class; }
00039 namespace Gst
00040 {
00041
00062 class GhostPad : public Pad
00063 {
00064
00065 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00066
00067 public:
00068 typedef GhostPad CppObjectType;
00069 typedef GhostPad_Class CppClassType;
00070 typedef GstGhostPad BaseObjectType;
00071 typedef GstGhostPadClass BaseClassType;
00072
00073 private: friend class GhostPad_Class;
00074 static CppClassType ghostpad_class_;
00075
00076 private:
00077
00078 GhostPad(const GhostPad&);
00079 GhostPad& operator=(const GhostPad&);
00080
00081 protected:
00082 explicit GhostPad(const Glib::ConstructParams& construct_params);
00083 explicit GhostPad(GstGhostPad* castitem);
00084
00085 #endif
00086
00087 public:
00088 virtual ~GhostPad();
00089
00090 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00091 static GType get_type() G_GNUC_CONST;
00092 static GType get_base_type() G_GNUC_CONST;
00093 #endif
00094
00096 GstGhostPad* gobj() { return reinterpret_cast<GstGhostPad*>(gobject_); }
00097
00099 const GstGhostPad* gobj() const { return reinterpret_cast<GstGhostPad*>(gobject_); }
00100
00102 GstGhostPad* gobj_copy();
00103
00104 private:
00105
00106
00107 protected:
00108 GhostPad(const Glib::ustring& name, const Glib::RefPtr<Gst::Pad>& target);
00109 GhostPad(const Glib::ustring& name, PadDirection direction);
00110 GhostPad(const Glib::ustring& name, const Glib::RefPtr<Gst::Pad>& target, const Glib::RefPtr<Gst::PadTemplate>& templ);
00111 GhostPad(const Glib::ustring& name, const Glib::RefPtr<Gst::PadTemplate>& templ);
00112
00113 public:
00122 static Glib::RefPtr<GhostPad> create(const Glib::ustring& name, const Glib::RefPtr<Gst::Pad>& target);
00123
00124
00135 static Glib::RefPtr<GhostPad> create(const Glib::ustring& name, PadDirection dir);
00136
00137
00148 static Glib::RefPtr<GhostPad> create(const Glib::ustring& name, const Glib::RefPtr<Gst::Pad>& target, const Glib::RefPtr<Gst::PadTemplate>& templ);
00149
00150
00159 static Glib::RefPtr<GhostPad> create(const Glib::ustring& name, const Glib::RefPtr<Gst::PadTemplate>& templ);
00160
00161
00169 bool set_target(const Glib::RefPtr<Gst::Pad>& newtarget);
00170
00171
00176 Glib::RefPtr<Gst::Pad> get_target();
00177
00182 Glib::RefPtr<const Gst::Pad> get_target() const;
00183
00184
00185 public:
00186
00187 public:
00188
00189 #ifdef GLIBMM_VFUNCS_ENABLED
00190 #endif //GLIBMM_VFUNCS_ENABLED
00191
00192 protected:
00193
00194 #ifdef GLIBMM_VFUNCS_ENABLED
00195 #endif //GLIBMM_VFUNCS_ENABLED
00196
00197
00198 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00199 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00200
00201
00202 };
00203
00204 }
00205
00206
00207 namespace Glib
00208 {
00217 Glib::RefPtr<Gst::GhostPad> wrap(GstGhostPad* object, bool take_copy = false);
00218 }
00219
00220
00221 #endif
00222