00001
00002
00003 #ifndef _GSTREAMERMM_CHILDPROXY_H
00004 #define _GSTREAMERMM_CHILDPROXY_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 <gst/gstchildproxy.h>
00031 #include <glibmm/interface.h>
00032 #include <gstreamermm/object.h>
00033
00034
00035 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00036 typedef struct _GstChildProxy GstChildProxy;
00037 typedef struct _GstChildProxyClass GstChildProxyClass;
00038 #endif
00039
00040
00041 namespace Gst
00042 { class ChildProxy_Class; }
00043 namespace Gst
00044 {
00045
00060 class ChildProxy : public Glib::Interface
00061 {
00062
00063 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00064
00065 public:
00066 typedef ChildProxy CppObjectType;
00067 typedef ChildProxy_Class CppClassType;
00068 typedef GstChildProxy BaseObjectType;
00069 typedef GstChildProxyInterface BaseClassType;
00070
00071 private:
00072 friend class ChildProxy_Class;
00073 static CppClassType childproxy_class_;
00074
00075
00076 ChildProxy(const ChildProxy&);
00077 ChildProxy& operator=(const ChildProxy&);
00078
00079 protected:
00080 ChildProxy();
00081
00088 explicit ChildProxy(const Glib::Interface_Class& interface_class);
00089
00090 public:
00091
00092
00093
00094 explicit ChildProxy(GstChildProxy* castitem);
00095
00096 protected:
00097 #endif
00098
00099 public:
00100 virtual ~ChildProxy();
00101
00102 static void add_interface(GType gtype_implementer);
00103
00104 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00105 static GType get_type() G_GNUC_CONST;
00106 static GType get_base_type() G_GNUC_CONST;
00107 #endif
00108
00110 GstChildProxy* gobj() { return reinterpret_cast<GstChildProxy*>(gobject_); }
00111
00113 const GstChildProxy* gobj() const { return reinterpret_cast<GstChildProxy*>(gobject_); }
00114
00115 private:
00116
00117
00118 public:
00119
00125 guint get_children_count() const;
00126
00135 Glib::RefPtr<Gst::Object> get_child(const Glib::ustring& name);
00136
00145 Glib::RefPtr<const Gst::Object> get_child(const Glib::ustring& name) const;
00146
00147
00155 Glib::RefPtr<Gst::Object> get_child(guint index);
00156
00164 Glib::RefPtr<const Gst::Object> get_child(guint index) const;
00165
00166
00167
00174 Glib::RefPtr<Gst::ChildProxy> get_proxy_property(const Glib::ustring& name, Glib::ValueBase& value);
00175
00176
00182 Glib::RefPtr<Gst::ChildProxy> set_proxy_property(const Glib::ustring& name, const Glib::ValueBase& value);
00183
00184
00188 void child_added(const Glib::RefPtr<Gst::Object>& child);
00189
00190
00194 void child_removed(const Glib::RefPtr<Gst::Object>& child);
00195
00196
00203 Glib::SignalProxy1< void,const Glib::RefPtr<Gst::Object>& > signal_child_added();
00204
00205
00212 Glib::SignalProxy1< void,const Glib::RefPtr<Gst::Object>& > signal_child_removed();
00213
00214
00217 #ifdef GLIBMM_VFUNCS_ENABLED
00218 virtual Glib::RefPtr<Gst::Object> get_child_by_index_vfunc(guint index) const;
00219 #endif //GLIBMM_VFUNCS_ENABLED
00220
00221
00224 #ifdef GLIBMM_VFUNCS_ENABLED
00225 virtual guint get_children_count_vfunc() const;
00226 #endif //GLIBMM_VFUNCS_ENABLED
00227
00228
00229 public:
00230
00231 public:
00232
00233 #ifdef GLIBMM_VFUNCS_ENABLED
00234 #endif //GLIBMM_VFUNCS_ENABLED
00235
00236 protected:
00237
00238 #ifdef GLIBMM_VFUNCS_ENABLED
00239 #endif //GLIBMM_VFUNCS_ENABLED
00240
00241
00242 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00243 virtual void on_child_added(const Glib::RefPtr<Gst::Object>& object);
00244 virtual void on_child_removed(const Glib::RefPtr<Gst::Object>& object);
00245 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00246
00247
00248 };
00249
00250 }
00251
00252
00253 namespace Glib
00254 {
00263 Glib::RefPtr<Gst::ChildProxy> wrap(GstChildProxy* object, bool take_copy = false);
00264
00265 }
00266
00267
00268 #endif
00269