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
00093
00094 static GType get_base_type() G_GNUC_CONST;
00095 #endif
00096
00098 GstGhostPad* gobj() { return reinterpret_cast<GstGhostPad*>(gobject_); }
00099
00101 const GstGhostPad* gobj() const { return reinterpret_cast<GstGhostPad*>(gobject_); }
00102
00104 GstGhostPad* gobj_copy();
00105
00106 private:
00107
00108
00109 protected:
00116 GhostPad(const Glib::RefPtr<Gst::Pad>& target, const Glib::ustring& name);
00117
00124 GhostPad(PadDirection direction, const Glib::ustring& name);
00125
00133 GhostPad(const Glib::RefPtr<Gst::Pad>& target,
00134 const Glib::RefPtr<Gst::PadTemplate>& templ, const Glib::ustring& name);
00135
00142 GhostPad(const Glib::RefPtr<Gst::PadTemplate>& templ,
00143 const Glib::ustring& name);
00144
00145
00146 public:
00155 static Glib::RefPtr<GhostPad> create(const Glib::RefPtr<Gst::Pad>& target, const Glib::ustring& name = Glib::ustring());
00156
00157
00169 static Glib::RefPtr<GhostPad> create(PadDirection dir, const Glib::ustring& name = Glib::ustring());
00170
00171
00182 static Glib::RefPtr<GhostPad> create(const Glib::RefPtr<Gst::Pad>& target, const Glib::RefPtr<Gst::PadTemplate>& templ, const Glib::ustring& name = Glib::ustring());
00183
00184
00193 static Glib::RefPtr<GhostPad> create(const Glib::RefPtr<Gst::PadTemplate>& templ, const Glib::ustring& name = Glib::ustring());
00194
00195
00203 bool set_target(const Glib::RefPtr<Gst::Pad>& newtarget);
00204
00205
00210 Glib::RefPtr<Gst::Pad> get_target();
00211
00216 Glib::RefPtr<const Gst::Pad> get_target() const;
00217
00218 private:
00219 void handle_error(const Glib::ustring& message);
00220
00221
00222 public:
00223
00224 public:
00225
00226 #ifdef GLIBMM_VFUNCS_ENABLED
00227 #endif //GLIBMM_VFUNCS_ENABLED
00228
00229 protected:
00230
00231 #ifdef GLIBMM_VFUNCS_ENABLED
00232 #endif //GLIBMM_VFUNCS_ENABLED
00233
00234
00235 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00236 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00237
00238
00239 };
00240
00241 }
00242
00243
00244 namespace Glib
00245 {
00254 Glib::RefPtr<Gst::GhostPad> wrap(GstGhostPad* object, bool take_copy = false);
00255 }
00256
00257
00258 #endif
00259