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
00128
00129 static GType get_base_type() G_GNUC_CONST;
00130 #endif
00131
00133 GstPipeline* gobj() { return reinterpret_cast<GstPipeline*>(gobject_); }
00134
00136 const GstPipeline* gobj() const { return reinterpret_cast<GstPipeline*>(gobject_); }
00137
00139 GstPipeline* gobj_copy();
00140
00141 private:
00142
00143
00144 protected:
00145 explicit Pipeline(const Glib::ustring& name);
00146 Pipeline();
00147
00148 public:
00155 static Glib::RefPtr<Pipeline> create(const Glib::ustring& name);
00156
00157
00162 static Glib::RefPtr<Pipeline> create();
00163
00164
00170 Glib::RefPtr<Gst::Bus> get_bus();
00171
00177 Glib::RefPtr<const Gst::Bus> get_bus() const;
00178
00187 bool set_clock(const Glib::RefPtr<Gst::Clock>& clock);
00188
00192 Glib::RefPtr<Gst::Clock> get_clock();
00193
00197 Glib::RefPtr<const Gst::Clock> get_clock() const;
00198
00209 void use_clock(const Glib::RefPtr<Gst::Clock>& clock);
00210
00220 void auto_clock();
00221
00238 void set_new_stream_time(ClockTime time);
00239
00255 ClockTime get_last_stream_time() const;
00256
00276 void set_auto_flush_bus(gboolean auto_flush = true);
00277
00287 bool get_auto_flush_bus() const;
00288
00303 void set_delay(ClockTime delay);
00304
00312 ClockTime get_delay() const;
00313
00314 #ifdef GLIBMM_PROPERTIES_ENABLED
00315
00321 Glib::PropertyProxy<bool> property_auto_flush_bus() ;
00322 #endif //#GLIBMM_PROPERTIES_ENABLED
00323
00324 #ifdef GLIBMM_PROPERTIES_ENABLED
00325
00331 Glib::PropertyProxy_ReadOnly<bool> property_auto_flush_bus() const;
00332 #endif //#GLIBMM_PROPERTIES_ENABLED
00333
00334 #ifdef GLIBMM_PROPERTIES_ENABLED
00335
00341 Glib::PropertyProxy<ClockTime> property_delay() ;
00342 #endif //#GLIBMM_PROPERTIES_ENABLED
00343
00344 #ifdef GLIBMM_PROPERTIES_ENABLED
00345
00351 Glib::PropertyProxy_ReadOnly<ClockTime> property_delay() const;
00352 #endif //#GLIBMM_PROPERTIES_ENABLED
00353
00354
00355 public:
00356
00357 public:
00358
00359 #ifdef GLIBMM_VFUNCS_ENABLED
00360 #endif //GLIBMM_VFUNCS_ENABLED
00361
00362 protected:
00363
00364 #ifdef GLIBMM_VFUNCS_ENABLED
00365 #endif //GLIBMM_VFUNCS_ENABLED
00366
00367
00368 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00369 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00370
00371
00372 };
00373
00374 }
00375
00376
00377 namespace Glib
00378 {
00387 Glib::RefPtr<Gst::Pipeline> wrap(GstPipeline* object, bool take_copy = false);
00388 }
00389
00390
00391 #endif
00392