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
00029
00030 #include <gstreamermm/pad.h>
00031
00032
00033 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00034 typedef struct _GstGhostPad GstGhostPad;
00035 typedef struct _GstGhostPadClass GstGhostPadClass;
00036 #endif
00037
00038
00039 namespace Gst
00040 { class GhostPad_Class; }
00041 namespace Gst
00042 {
00043
00063 class GhostPad : public Pad
00064 {
00065
00066 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00067
00068 public:
00069 typedef GhostPad CppObjectType;
00070 typedef GhostPad_Class CppClassType;
00071 typedef GstGhostPad BaseObjectType;
00072 typedef GstGhostPadClass BaseClassType;
00073
00074 private: friend class GhostPad_Class;
00075 static CppClassType ghostpad_class_;
00076
00077 private:
00078
00079 GhostPad(const GhostPad&);
00080 GhostPad& operator=(const GhostPad&);
00081
00082 protected:
00083 explicit GhostPad(const Glib::ConstructParams& construct_params);
00084 explicit GhostPad(GstGhostPad* castitem);
00085
00086 #endif
00087
00088 public:
00089 virtual ~GhostPad();
00090
00091 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00092 static GType get_type() G_GNUC_CONST;
00093 static GType get_base_type() G_GNUC_CONST;
00094 #endif
00095
00097 GstGhostPad* gobj() { return reinterpret_cast<GstGhostPad*>(gobject_); }
00098
00100 const GstGhostPad* gobj() const { return reinterpret_cast<GstGhostPad*>(gobject_); }
00101
00103 GstGhostPad* gobj_copy();
00104
00105 private:
00106
00107
00108 protected:
00109 explicit GhostPad(const Glib::ustring& name, const Glib::RefPtr<Pad>& target);
00110 explicit GhostPad(const Glib::ustring& name, PadDirection dir);
00111 explicit GhostPad(const Glib::ustring& name, const Glib::RefPtr<Pad>& target, const Glib::RefPtr<PadTemplate>& templ);
00112 explicit GhostPad(const Glib::ustring& name, const Glib::RefPtr<PadTemplate>& templ);
00113
00114 public:
00125 static Glib::RefPtr<GhostPad> create(const Glib::ustring& name, const Glib::RefPtr<Pad>& target);
00126
00127
00138 static Glib::RefPtr<GhostPad> create(const Glib::ustring& name, PadDirection dir);
00139
00140
00153 static Glib::RefPtr<GhostPad> create(const Glib::ustring& name, const Glib::RefPtr<Pad>& target, const Glib::RefPtr<PadTemplate>& templ);
00154
00155
00164 static Glib::RefPtr<GhostPad> create(const Glib::ustring& name, const Glib::RefPtr<PadTemplate>& templ);
00165
00166
00173 bool set_target(const Glib::RefPtr<Pad>& newtarget);
00174
00179 Glib::RefPtr<Pad> get_target();
00180
00181
00182 public:
00183
00184 public:
00185
00186 #ifdef GLIBMM_VFUNCS_ENABLED
00187 #endif //GLIBMM_VFUNCS_ENABLED
00188
00189 protected:
00190
00191 #ifdef GLIBMM_VFUNCS_ENABLED
00192 #endif //GLIBMM_VFUNCS_ENABLED
00193
00194
00195 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00196 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00197
00198
00199 };
00200
00201 }
00202
00203
00204 namespace Glib
00205 {
00214 Glib::RefPtr<Gst::GhostPad> wrap(GstGhostPad* object, bool take_copy = false);
00215 }
00216
00217
00218 #endif
00219