00001
00002
00003 #ifndef _GSTREAMERMM_TEE_H
00004 #define _GSTREAMERMM_TEE_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 <gstreamermm/element.h>
00031 #include <gstreamermm/pad.h>
00032
00033
00034 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00035 typedef struct _GstTee GstTee;
00036 typedef struct _GstTeeClass GstTeeClass;
00037 #endif
00038
00039
00040 namespace Gst
00041 { class Tee_Class; }
00042 namespace Gst
00043 {
00044
00050 enum TeePullMode
00051 {
00052 TEE_PULL_MODE_NEVER,
00053 TEE_PULL_MODE_SINGLE
00054 };
00055
00056 }
00057
00058
00059 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00060 namespace Glib
00061 {
00062
00063 template <>
00064 class Value<Gst::TeePullMode> : public Glib::Value_Enum<Gst::TeePullMode>
00065 {
00066 public:
00067 static GType value_type() G_GNUC_CONST;
00068 };
00069
00070 }
00071 #endif
00072
00073
00074 namespace Gst
00075 {
00076
00077
00088 class Tee
00089 : public Gst::Element
00090 {
00091
00092 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00093
00094 public:
00095 typedef Tee CppObjectType;
00096 typedef Tee_Class CppClassType;
00097 typedef GstTee BaseObjectType;
00098 typedef GstTeeClass BaseClassType;
00099
00100 private: friend class Tee_Class;
00101 static CppClassType tee_class_;
00102
00103 private:
00104
00105 Tee(const Tee&);
00106 Tee& operator=(const Tee&);
00107
00108 protected:
00109 explicit Tee(const Glib::ConstructParams& construct_params);
00110 explicit Tee(GstTee* castitem);
00111
00112 #endif
00113
00114 public:
00115 virtual ~Tee();
00116
00117 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00118 static GType get_type() G_GNUC_CONST;
00119
00120
00121 static GType get_base_type() G_GNUC_CONST;
00122 #endif
00123
00125 GstTee* gobj() { return reinterpret_cast<GstTee*>(gobject_); }
00126
00128 const GstTee* gobj() const { return reinterpret_cast<GstTee*>(gobject_); }
00129
00131 GstTee* gobj_copy();
00132
00133 private:
00134
00135
00136 protected:
00137 Tee();
00138 Tee(const Glib::ustring& name);
00139
00140 public:
00144 static Glib::RefPtr<Tee> create();
00145
00146
00150 static Glib::RefPtr<Tee> create(const Glib::ustring& name);
00151
00152
00153 #ifdef GLIBMM_PROPERTIES_ENABLED
00154
00160 Glib::PropertyProxy_ReadOnly<int> property_num_src_pads() const;
00161 #endif //#GLIBMM_PROPERTIES_ENABLED
00162
00163
00164 #ifdef GLIBMM_PROPERTIES_ENABLED
00165
00171 Glib::PropertyProxy<bool> property_has_sink_loop() ;
00172 #endif //#GLIBMM_PROPERTIES_ENABLED
00173
00174 #ifdef GLIBMM_PROPERTIES_ENABLED
00175
00181 Glib::PropertyProxy_ReadOnly<bool> property_has_sink_loop() const;
00182 #endif //#GLIBMM_PROPERTIES_ENABLED
00183
00184 #ifdef GLIBMM_PROPERTIES_ENABLED
00185
00191 Glib::PropertyProxy<bool> property_has_chain() ;
00192 #endif //#GLIBMM_PROPERTIES_ENABLED
00193
00194 #ifdef GLIBMM_PROPERTIES_ENABLED
00195
00201 Glib::PropertyProxy_ReadOnly<bool> property_has_chain() const;
00202 #endif //#GLIBMM_PROPERTIES_ENABLED
00203
00204 #ifdef GLIBMM_PROPERTIES_ENABLED
00205
00211 Glib::PropertyProxy<bool> property_silent() ;
00212 #endif //#GLIBMM_PROPERTIES_ENABLED
00213
00214 #ifdef GLIBMM_PROPERTIES_ENABLED
00215
00221 Glib::PropertyProxy_ReadOnly<bool> property_silent() const;
00222 #endif //#GLIBMM_PROPERTIES_ENABLED
00223
00224 #ifdef GLIBMM_PROPERTIES_ENABLED
00225
00231 Glib::PropertyProxy_ReadOnly<Glib::ustring> property_last_message() const;
00232 #endif //#GLIBMM_PROPERTIES_ENABLED
00233
00234
00235 #ifdef GLIBMM_PROPERTIES_ENABLED
00236
00242 Glib::PropertyProxy<Gst::TeePullMode> property_pull_mode() ;
00243 #endif //#GLIBMM_PROPERTIES_ENABLED
00244
00245 #ifdef GLIBMM_PROPERTIES_ENABLED
00246
00252 Glib::PropertyProxy_ReadOnly<Gst::TeePullMode> property_pull_mode() const;
00253 #endif //#GLIBMM_PROPERTIES_ENABLED
00254
00255 #ifdef GLIBMM_PROPERTIES_ENABLED
00256
00262 Glib::PropertyProxy< Glib::RefPtr<Gst::Pad> > property_alloc_pad() ;
00263 #endif //#GLIBMM_PROPERTIES_ENABLED
00264
00265 #ifdef GLIBMM_PROPERTIES_ENABLED
00266
00272 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Gst::Pad> > property_alloc_pad() const;
00273 #endif //#GLIBMM_PROPERTIES_ENABLED
00274
00275
00276 public:
00277
00278 public:
00279
00280 #ifdef GLIBMM_VFUNCS_ENABLED
00281 #endif //GLIBMM_VFUNCS_ENABLED
00282
00283 protected:
00284
00285 #ifdef GLIBMM_VFUNCS_ENABLED
00286 #endif //GLIBMM_VFUNCS_ENABLED
00287
00288
00289 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00290 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00291
00292
00293 };
00294
00295 }
00296
00297
00298 namespace Glib
00299 {
00308 Glib::RefPtr<Gst::Tee> wrap(GstTee* object, bool take_copy = false);
00309 }
00310
00311
00312 #endif
00313