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
00029
00030 #include <gstreamermm/bin.h>
00031 #include <gstreamermm/clock.h>
00032
00033
00034 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00035 typedef struct _GstPipeline GstPipeline;
00036 typedef struct _GstPipelineClass GstPipelineClass;
00037 #endif
00038
00039
00040 namespace Gst
00041 { class Pipeline_Class; }
00042 namespace Gst
00043 {
00044
00045 class Bus;
00046
00098 class Pipeline : public Bin
00099 {
00100
00101 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00102
00103 public:
00104 typedef Pipeline CppObjectType;
00105 typedef Pipeline_Class CppClassType;
00106 typedef GstPipeline BaseObjectType;
00107 typedef GstPipelineClass BaseClassType;
00108
00109 private: friend class Pipeline_Class;
00110 static CppClassType pipeline_class_;
00111
00112 private:
00113
00114 Pipeline(const Pipeline&);
00115 Pipeline& operator=(const Pipeline&);
00116
00117 protected:
00118 explicit Pipeline(const Glib::ConstructParams& construct_params);
00119 explicit Pipeline(GstPipeline* castitem);
00120
00121 #endif
00122
00123 public:
00124 virtual ~Pipeline();
00125
00126 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00127 static GType get_type() G_GNUC_CONST;
00128 static GType get_base_type() G_GNUC_CONST;
00129 #endif
00130
00132 GstPipeline* gobj() { return reinterpret_cast<GstPipeline*>(gobject_); }
00133
00135 const GstPipeline* gobj() const { return reinterpret_cast<GstPipeline*>(gobject_); }
00136
00138 GstPipeline* gobj_copy();
00139
00140 private:
00141
00142
00143 protected:
00144 explicit Pipeline(const Glib::ustring& name);
00145
00146 public:
00153 static Glib::RefPtr<Pipeline> create(const Glib::ustring& name);
00154
00155
00161 Glib::RefPtr<Bus> get_bus();
00162
00168 Glib::RefPtr<const Bus> get_bus() const;
00169
00178 bool set_clock(const Glib::RefPtr<Clock>& clock);
00179
00183 Glib::RefPtr<Clock> get_clock();
00184
00188 Glib::RefPtr<const Clock> get_clock() const;
00189
00200 void use_clock(const Glib::RefPtr<Clock>& clock);
00201
00211 void auto_clock();
00212
00226 void set_new_stream_time(ClockTime time);
00227
00240 ClockTime get_last_stream_time() const;
00241
00261 void set_auto_flush_bus(gboolean auto_flush = true);
00262
00272 bool get_auto_flush_bus() const;
00273
00288 void set_delay(ClockTime delay);
00289
00297 ClockTime get_delay() const;
00298
00299 #ifdef GLIBMM_PROPERTIES_ENABLED
00300
00306 Glib::PropertyProxy<bool> property_auto_flush_bus() ;
00307 #endif //#GLIBMM_PROPERTIES_ENABLED
00308
00309 #ifdef GLIBMM_PROPERTIES_ENABLED
00310
00316 Glib::PropertyProxy_ReadOnly<bool> property_auto_flush_bus() const;
00317 #endif //#GLIBMM_PROPERTIES_ENABLED
00318
00319 #ifdef GLIBMM_PROPERTIES_ENABLED
00320
00326 Glib::PropertyProxy<ClockTime> property_delay() ;
00327 #endif //#GLIBMM_PROPERTIES_ENABLED
00328
00329 #ifdef GLIBMM_PROPERTIES_ENABLED
00330
00336 Glib::PropertyProxy_ReadOnly<ClockTime> property_delay() const;
00337 #endif //#GLIBMM_PROPERTIES_ENABLED
00338
00339
00340 public:
00341
00342 public:
00343
00344 #ifdef GLIBMM_VFUNCS_ENABLED
00345 #endif //GLIBMM_VFUNCS_ENABLED
00346
00347 protected:
00348
00349 #ifdef GLIBMM_VFUNCS_ENABLED
00350 #endif //GLIBMM_VFUNCS_ENABLED
00351
00352
00353 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00354 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00355
00356
00357 };
00358
00359 }
00360
00361
00362 namespace Glib
00363 {
00372 Glib::RefPtr<Gst::Pipeline> wrap(GstPipeline* object, bool take_copy = false);
00373 }
00374
00375
00376 #endif
00377