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 Pipeline();
00146
00147 public:
00154 static Glib::RefPtr<Pipeline> create(const Glib::ustring& name);
00155
00156
00161 static Glib::RefPtr<Pipeline> create();
00162
00163
00169 Glib::RefPtr<Gst::Bus> get_bus();
00170
00176 Glib::RefPtr<const Gst::Bus> get_bus() const;
00177
00186 bool set_clock(const Glib::RefPtr<Gst::Clock>& clock);
00187
00191 Glib::RefPtr<Gst::Clock> get_clock();
00192
00196 Glib::RefPtr<const Gst::Clock> get_clock() const;
00197
00208 void use_clock(const Glib::RefPtr<Gst::Clock>& clock);
00209
00219 void auto_clock();
00220
00234 void set_new_stream_time(ClockTime time);
00235
00248 ClockTime get_last_stream_time() const;
00249
00269 void set_auto_flush_bus(gboolean auto_flush = true);
00270
00280 bool get_auto_flush_bus() const;
00281
00296 void set_delay(ClockTime delay);
00297
00305 ClockTime get_delay() const;
00306
00307 #ifdef GLIBMM_PROPERTIES_ENABLED
00308
00314 Glib::PropertyProxy<bool> property_auto_flush_bus() ;
00315 #endif //#GLIBMM_PROPERTIES_ENABLED
00316
00317 #ifdef GLIBMM_PROPERTIES_ENABLED
00318
00324 Glib::PropertyProxy_ReadOnly<bool> property_auto_flush_bus() const;
00325 #endif //#GLIBMM_PROPERTIES_ENABLED
00326
00327 #ifdef GLIBMM_PROPERTIES_ENABLED
00328
00334 Glib::PropertyProxy<ClockTime> property_delay() ;
00335 #endif //#GLIBMM_PROPERTIES_ENABLED
00336
00337 #ifdef GLIBMM_PROPERTIES_ENABLED
00338
00344 Glib::PropertyProxy_ReadOnly<ClockTime> property_delay() const;
00345 #endif //#GLIBMM_PROPERTIES_ENABLED
00346
00347
00348 public:
00349
00350 public:
00351
00352 #ifdef GLIBMM_VFUNCS_ENABLED
00353 #endif //GLIBMM_VFUNCS_ENABLED
00354
00355 protected:
00356
00357 #ifdef GLIBMM_VFUNCS_ENABLED
00358 #endif //GLIBMM_VFUNCS_ENABLED
00359
00360
00361 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00362 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00363
00364
00365 };
00366
00367 }
00368
00369
00370 namespace Glib
00371 {
00380 Glib::RefPtr<Gst::Pipeline> wrap(GstPipeline* object, bool take_copy = false);
00381 }
00382
00383
00384 #endif
00385