00001
00002
00003 #ifndef _GSTREAMERMM_PIPELINE_H
00004 #define _GSTREAMERMM_PIPELINE_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/bin.h>
00029 #include <gstreamermm/clock.h>
00030
00031
00032 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00033 typedef struct _GstPipeline GstPipeline;
00034 typedef struct _GstPipelineClass GstPipelineClass;
00035 #endif
00036
00037
00038 namespace Gst
00039 { class Pipeline_Class; }
00040 namespace Gst
00041 {
00042
00043 class Bus;
00044
00097 class Pipeline : public Bin
00098 {
00099
00100 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00101
00102 public:
00103 typedef Pipeline CppObjectType;
00104 typedef Pipeline_Class CppClassType;
00105 typedef GstPipeline BaseObjectType;
00106 typedef GstPipelineClass BaseClassType;
00107
00108 private: friend class Pipeline_Class;
00109 static CppClassType pipeline_class_;
00110
00111 private:
00112
00113 Pipeline(const Pipeline&);
00114 Pipeline& operator=(const Pipeline&);
00115
00116 protected:
00117 explicit Pipeline(const Glib::ConstructParams& construct_params);
00118 explicit Pipeline(GstPipeline* castitem);
00119
00120 #endif
00121
00122 public:
00123 virtual ~Pipeline();
00124
00125 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00126 static GType get_type() G_GNUC_CONST;
00127 static GType get_base_type() G_GNUC_CONST;
00128 #endif
00129
00131 GstPipeline* gobj() { return reinterpret_cast<GstPipeline*>(gobject_); }
00132
00134 const GstPipeline* gobj() const { return reinterpret_cast<GstPipeline*>(gobject_); }
00135
00137 GstPipeline* gobj_copy();
00138
00139 private:
00140
00141
00142 protected:
00143 explicit Pipeline(const Glib::ustring& name);
00144 Pipeline();
00145
00146 public:
00153 static Glib::RefPtr<Pipeline> create(const Glib::ustring& name);
00154
00155
00160 static Glib::RefPtr<Pipeline> create();
00161
00162
00168 Glib::RefPtr<Gst::Bus> get_bus();
00169
00175 Glib::RefPtr<const Gst::Bus> get_bus() const;
00176
00185 bool set_clock(const Glib::RefPtr<Gst::Clock>& clock);
00186
00190 Glib::RefPtr<Gst::Clock> get_clock();
00191
00195 Glib::RefPtr<const Gst::Clock> get_clock() const;
00196
00207 void use_clock(const Glib::RefPtr<Gst::Clock>& clock);
00208
00218 void auto_clock();
00219
00233 void set_new_stream_time(ClockTime time);
00234
00247 ClockTime get_last_stream_time() const;
00248
00268 void set_auto_flush_bus(gboolean auto_flush = true);
00269
00279 bool get_auto_flush_bus() const;
00280
00295 void set_delay(ClockTime delay);
00296
00304 ClockTime get_delay() const;
00305
00306 #ifdef GLIBMM_PROPERTIES_ENABLED
00307
00313 Glib::PropertyProxy<bool> property_auto_flush_bus() ;
00314 #endif //#GLIBMM_PROPERTIES_ENABLED
00315
00316 #ifdef GLIBMM_PROPERTIES_ENABLED
00317
00323 Glib::PropertyProxy_ReadOnly<bool> property_auto_flush_bus() const;
00324 #endif //#GLIBMM_PROPERTIES_ENABLED
00325
00326 #ifdef GLIBMM_PROPERTIES_ENABLED
00327
00333 Glib::PropertyProxy<ClockTime> property_delay() ;
00334 #endif //#GLIBMM_PROPERTIES_ENABLED
00335
00336 #ifdef GLIBMM_PROPERTIES_ENABLED
00337
00343 Glib::PropertyProxy_ReadOnly<ClockTime> property_delay() const;
00344 #endif //#GLIBMM_PROPERTIES_ENABLED
00345
00346
00347 public:
00348
00349 public:
00350
00351 #ifdef GLIBMM_VFUNCS_ENABLED
00352 #endif //GLIBMM_VFUNCS_ENABLED
00353
00354 protected:
00355
00356 #ifdef GLIBMM_VFUNCS_ENABLED
00357 #endif //GLIBMM_VFUNCS_ENABLED
00358
00359
00360 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00361 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00362
00363
00364 };
00365
00366 }
00367
00368
00369 namespace Glib
00370 {
00379 Glib::RefPtr<Gst::Pipeline> wrap(GstPipeline* object, bool take_copy = false);
00380 }
00381
00382
00383 #endif
00384