00001
00002
00003 #ifndef _GSTREAMERMM_QUEUE_H
00004 #define _GSTREAMERMM_QUEUE_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
00032
00033 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00034 typedef struct _GstQueue GstQueue;
00035 typedef struct _GstQueueClass GstQueueClass;
00036 #endif
00037
00038
00039 namespace Gst
00040 { class Queue_Class; }
00041 namespace Gst
00042 {
00043
00049 enum QueueLeaky
00050 {
00051 QUEUE_LEAKY_NONE,
00052 QUEUE_LEAKY_UPSTREAM,
00053 QUEUE_LEAKY_DOWNSTREAM
00054 };
00055
00056 }
00057
00058
00059 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00060 namespace Glib
00061 {
00062
00063 template <>
00064 class Value<Gst::QueueLeaky> : public Glib::Value_Enum<Gst::QueueLeaky>
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 Queue
00089 : public Gst::Element
00090 {
00091
00092 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00093
00094 public:
00095 typedef Queue CppObjectType;
00096 typedef Queue_Class CppClassType;
00097 typedef GstQueue BaseObjectType;
00098 typedef GstQueueClass BaseClassType;
00099
00100 private: friend class Queue_Class;
00101 static CppClassType queue_class_;
00102
00103 private:
00104
00105 Queue(const Queue&);
00106 Queue& operator=(const Queue&);
00107
00108 protected:
00109 explicit Queue(const Glib::ConstructParams& construct_params);
00110 explicit Queue(GstQueue* castitem);
00111
00112 #endif
00113
00114 public:
00115 virtual ~Queue();
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 GstQueue* gobj() { return reinterpret_cast<GstQueue*>(gobject_); }
00126
00128 const GstQueue* gobj() const { return reinterpret_cast<GstQueue*>(gobject_); }
00129
00131 GstQueue* gobj_copy();
00132
00133 private:
00134
00135
00136 protected:
00137 Queue();
00138 Queue(const Glib::ustring& name);
00139
00140 public:
00144 static Glib::RefPtr<Queue> create();
00145
00146
00150 static Glib::RefPtr<Queue> create(const Glib::ustring& name);
00151
00152
00153 #ifdef GLIBMM_PROPERTIES_ENABLED
00154
00160 Glib::PropertyProxy_ReadOnly<guint> property_current_level_buffers() const;
00161 #endif //#GLIBMM_PROPERTIES_ENABLED
00162
00163
00164 #ifdef GLIBMM_PROPERTIES_ENABLED
00165
00171 Glib::PropertyProxy_ReadOnly<guint> property_current_level_bytes() const;
00172 #endif //#GLIBMM_PROPERTIES_ENABLED
00173
00174
00175 #ifdef GLIBMM_PROPERTIES_ENABLED
00176
00182 Glib::PropertyProxy_ReadOnly<guint64> property_current_level_time() const;
00183 #endif //#GLIBMM_PROPERTIES_ENABLED
00184
00185
00186 #ifdef GLIBMM_PROPERTIES_ENABLED
00187
00193 Glib::PropertyProxy<guint> property_max_size_buffers() ;
00194 #endif //#GLIBMM_PROPERTIES_ENABLED
00195
00196 #ifdef GLIBMM_PROPERTIES_ENABLED
00197
00203 Glib::PropertyProxy_ReadOnly<guint> property_max_size_buffers() const;
00204 #endif //#GLIBMM_PROPERTIES_ENABLED
00205
00206 #ifdef GLIBMM_PROPERTIES_ENABLED
00207
00213 Glib::PropertyProxy<guint> property_max_size_bytes() ;
00214 #endif //#GLIBMM_PROPERTIES_ENABLED
00215
00216 #ifdef GLIBMM_PROPERTIES_ENABLED
00217
00223 Glib::PropertyProxy_ReadOnly<guint> property_max_size_bytes() const;
00224 #endif //#GLIBMM_PROPERTIES_ENABLED
00225
00226 #ifdef GLIBMM_PROPERTIES_ENABLED
00227
00233 Glib::PropertyProxy<guint64> property_max_size_time() ;
00234 #endif //#GLIBMM_PROPERTIES_ENABLED
00235
00236 #ifdef GLIBMM_PROPERTIES_ENABLED
00237
00243 Glib::PropertyProxy_ReadOnly<guint64> property_max_size_time() const;
00244 #endif //#GLIBMM_PROPERTIES_ENABLED
00245
00246 #ifdef GLIBMM_PROPERTIES_ENABLED
00247
00253 Glib::PropertyProxy<guint> property_min_threshold_buffers() ;
00254 #endif //#GLIBMM_PROPERTIES_ENABLED
00255
00256 #ifdef GLIBMM_PROPERTIES_ENABLED
00257
00263 Glib::PropertyProxy_ReadOnly<guint> property_min_threshold_buffers() const;
00264 #endif //#GLIBMM_PROPERTIES_ENABLED
00265
00266 #ifdef GLIBMM_PROPERTIES_ENABLED
00267
00273 Glib::PropertyProxy<guint> property_min_threshold_bytes() ;
00274 #endif //#GLIBMM_PROPERTIES_ENABLED
00275
00276 #ifdef GLIBMM_PROPERTIES_ENABLED
00277
00283 Glib::PropertyProxy_ReadOnly<guint> property_min_threshold_bytes() const;
00284 #endif //#GLIBMM_PROPERTIES_ENABLED
00285
00286 #ifdef GLIBMM_PROPERTIES_ENABLED
00287
00293 Glib::PropertyProxy<guint64> property_min_threshold_time() ;
00294 #endif //#GLIBMM_PROPERTIES_ENABLED
00295
00296 #ifdef GLIBMM_PROPERTIES_ENABLED
00297
00303 Glib::PropertyProxy_ReadOnly<guint64> property_min_threshold_time() const;
00304 #endif //#GLIBMM_PROPERTIES_ENABLED
00305
00306 #ifdef GLIBMM_PROPERTIES_ENABLED
00307
00313 Glib::PropertyProxy<Gst::QueueLeaky> property_leaky() ;
00314 #endif //#GLIBMM_PROPERTIES_ENABLED
00315
00316 #ifdef GLIBMM_PROPERTIES_ENABLED
00317
00323 Glib::PropertyProxy_ReadOnly<Gst::QueueLeaky> property_leaky() const;
00324 #endif //#GLIBMM_PROPERTIES_ENABLED
00325
00326
00332 Glib::SignalProxy0< void > signal_underrun();
00333
00334
00340 Glib::SignalProxy0< void > signal_running();
00341
00342
00348 Glib::SignalProxy0< void > signal_overrun();
00349
00350
00356 Glib::SignalProxy0< void > signal_pushing();
00357
00358
00359 public:
00360
00361 public:
00362
00363 #ifdef GLIBMM_VFUNCS_ENABLED
00364 #endif //GLIBMM_VFUNCS_ENABLED
00365
00366 protected:
00367
00368 #ifdef GLIBMM_VFUNCS_ENABLED
00369 #endif //GLIBMM_VFUNCS_ENABLED
00370
00371
00372 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00373 virtual void on_underrun();
00374 virtual void on_running();
00375 virtual void on_overrun();
00376 virtual void on_pushing();
00377 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00378
00379
00380 };
00381
00382 }
00383
00384
00385 namespace Glib
00386 {
00395 Glib::RefPtr<Gst::Queue> wrap(GstQueue* object, bool take_copy = false);
00396 }
00397
00398
00399 #endif
00400