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();
00126
00135 Glib::RefPtr<Gst::Object> get_child(const Glib::ustring& name);
00136
00144 Glib::RefPtr<Gst::Object> get_child(guint index);
00145
00146
00147
00153 Glib::RefPtr<ChildProxy> get_proxy_property(const Glib::ustring& name, Glib::ValueBase& value);
00154
00160 void get_proxy_valist(const Glib::ustring& first_prop_name, va_list& var_args);
00161
00167 Glib::RefPtr<ChildProxy> set_proxy_property(const Glib::ustring& name, const Glib::ValueBase& value);
00168
00174 void set_proxy_valist(const Glib::ustring& first_prop_name, const va_list& var_args);
00175
00179 void child_added(const Glib::RefPtr<Gst::Object>& child);
00180
00184 void child_removed(const Glib::RefPtr<Gst::Object>& child);
00185
00186
00193 Glib::SignalProxy1< void,const Glib::RefPtr<Gst::Object>& > signal_child_added();
00194
00195
00202 Glib::SignalProxy1< void,const Glib::RefPtr<Gst::Object>& > signal_child_removed();
00203
00204
00207 #ifdef GLIBMM_VFUNCS_ENABLED
00208 virtual Glib::RefPtr<Gst::Object> get_child_by_index_vfunc(guint index) const;
00209 #endif //GLIBMM_VFUNCS_ENABLED
00210
00211
00214 #ifdef GLIBMM_VFUNCS_ENABLED
00215 virtual guint get_children_count_vfunc() const;
00216 #endif //GLIBMM_VFUNCS_ENABLED
00217
00218
00219 public:
00220
00221 public:
00222
00223 #ifdef GLIBMM_VFUNCS_ENABLED
00224 #endif //GLIBMM_VFUNCS_ENABLED
00225
00226 protected:
00227
00228 #ifdef GLIBMM_VFUNCS_ENABLED
00229 #endif //GLIBMM_VFUNCS_ENABLED
00230
00231
00232 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00233 virtual void on_child_added(const Glib::RefPtr<Gst::Object>& object);
00234 virtual void on_child_removed(const Glib::RefPtr<Gst::Object>& object);
00235 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00236
00237
00238 };
00239
00240 }
00241
00242
00243 namespace Glib
00244 {
00253 Glib::RefPtr<Gst::ChildProxy> wrap(GstChildProxy* object, bool take_copy = false);
00254
00255 }
00256
00257
00258 #endif
00259