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:
00114 GhostPad(const Glib::ustring& name, const Glib::RefPtr<Gst::Pad>& target);
00115
00122 GhostPad(const Glib::ustring& name, PadDirection direction);
00123
00131 GhostPad(const Glib::ustring& name, const Glib::RefPtr<Gst::Pad>& target, const Glib::RefPtr<Gst::PadTemplate>& templ);
00132
00139 GhostPad(const Glib::ustring& name, const Glib::RefPtr<Gst::PadTemplate>& templ);
00140
00141
00142 public:
00151 static Glib::RefPtr<GhostPad> create(const Glib::ustring& name, const Glib::RefPtr<Gst::Pad>& target);
00152
00153
00165 static Glib::RefPtr<GhostPad> create(const Glib::ustring& name, PadDirection dir);
00166
00167
00178 static Glib::RefPtr<GhostPad> create(const Glib::ustring& name, const Glib::RefPtr<Gst::Pad>& target, const Glib::RefPtr<Gst::PadTemplate>& templ);
00179
00180
00189 static Glib::RefPtr<GhostPad> create(const Glib::ustring& name, const Glib::RefPtr<Gst::PadTemplate>& templ);
00190
00191
00199 bool set_target(const Glib::RefPtr<Gst::Pad>& newtarget);
00200
00201
00206 Glib::RefPtr<Gst::Pad> get_target();
00207
00212 Glib::RefPtr<const Gst::Pad> get_target() const;
00213
00214 private:
00215 void handle_error(const Glib::ustring& message);
00216
00217
00218 public:
00219
00220 public:
00221
00222 #ifdef GLIBMM_VFUNCS_ENABLED
00223 #endif //GLIBMM_VFUNCS_ENABLED
00224
00225 protected:
00226
00227 #ifdef GLIBMM_VFUNCS_ENABLED
00228 #endif //GLIBMM_VFUNCS_ENABLED
00229
00230
00231 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00232 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00233
00234
00235 };
00236
00237 }
00238
00239
00240 namespace Glib
00241 {
00250 Glib::RefPtr<Gst::GhostPad> wrap(GstGhostPad* object, bool take_copy = false);
00251 }
00252
00253
00254 #endif
00255