00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _GSTREAMERMM_OBJECT_H
00021 #define _GSTREAMERMM_OBJECT_H
00022
00023
00024 #include <glibmm.h>
00025 #include <glibmm/object.h>
00026
00027
00028 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00029 typedef struct _GstObject GstObject;
00030 typedef struct _GstObjectClass GstObjectClass;
00031 #endif
00032
00033
00034 namespace Gst
00035 {
00036 class Object_Class;
00037 }
00038
00039 namespace Gst
00040 {
00041
00042
00043
00044
00045
00049 class Object : public Glib::Object
00050 {
00051
00052 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00053
00054 public:
00055 typedef Object CppObjectType;
00056 typedef Object_Class CppClassType;
00057 typedef GstObject BaseObjectType;
00058 typedef GstObjectClass BaseClassType;
00059
00060 private: friend class Object_Class;
00061 static CppClassType object_class_;
00062
00063 private:
00064
00065 Object(const Object&);
00066 Object& operator=(const Object&);
00067
00068 protected:
00069 explicit Object(const Glib::ConstructParams& construct_params);
00070 explicit Object(GstObject* castitem);
00071
00072 #endif
00073
00074 public:
00075 virtual ~Object();
00076
00077 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00078 static GType get_type() G_GNUC_CONST;
00079 static GType get_base_type() G_GNUC_CONST;
00080 #endif
00081
00083 GstObject* gobj() { return reinterpret_cast<GstObject*>(gobject_); }
00084
00086 const GstObject* gobj() const { return reinterpret_cast<GstObject*>(gobject_); }
00087
00089 GstObject* gobj_copy();
00090
00091 protected:
00092 Object();
00093
00094 public:
00095
00096
00097 void reference() const;
00098 void unreference() const;
00099
00100
00101 bool set_name(const Glib::ustring& name);
00102 Glib::ustring get_name() const;
00103
00104 bool set_parent(const Glib::RefPtr<Object>& parent);
00105 Glib::RefPtr<Object> get_parent();
00106 Glib::RefPtr<const Object> get_parent() const;
00107
00108
00109 void unparent();
00110
00111 Glib::ustring get_name_prefix() const;
00112 void set_name_prefix(const Glib::ustring& prefix);
00113
00114
00115
00116
00117
00118
00119 #ifdef GLIBMM_PROPERTIES_ENABLED
00120
00126 Glib::PropertyProxy<Glib::ustring> property_name() ;
00127 #endif //#GLIBMM_PROPERTIES_ENABLED
00128
00129 #ifdef GLIBMM_PROPERTIES_ENABLED
00130
00136 Glib::PropertyProxy_ReadOnly<Glib::ustring> property_name() const;
00137 #endif //#GLIBMM_PROPERTIES_ENABLED
00138
00139 };
00140
00141 }
00142
00143
00144 namespace Glib
00145 {
00154 Glib::RefPtr<Gst::Object> wrap(GstObject* object, bool take_copy = false);
00155 }
00156
00157
00158 #endif
00159