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 #include <gstreamermm/element.h>
00029
00030
00031 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00032 typedef struct _GstQueue GstQueue;
00033 typedef struct _GstQueueClass GstQueueClass;
00034 #endif
00035
00036
00037 namespace Gst
00038 { class Queue_Class; }
00039 namespace Gst
00040 {
00041
00047 enum QueueLeaky
00048 {
00049 QUEUE_LEAKY_NONE,
00050 QUEUE_LEAKY_UPSTREAM,
00051 QUEUE_LEAKY_DOWNSTREAM
00052 };
00053
00054 }
00055
00056
00057 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00058 namespace Glib
00059 {
00060
00061 template <>
00062 class Value<Gst::QueueLeaky> : public Glib::Value_Enum<Gst::QueueLeaky>
00063 {
00064 public:
00065 static GType value_type() G_GNUC_CONST;
00066 };
00067
00068 }
00069 #endif
00070
00071
00072 namespace Gst
00073 {
00074
00075
00086 class Queue
00087 : public Gst::Element
00088 {
00089
00090 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00091
00092 public:
00093 typedef Queue CppObjectType;
00094 typedef Queue_Class CppClassType;
00095 typedef GstQueue BaseObjectType;
00096 typedef GstQueueClass BaseClassType;
00097
00098 private: friend class Queue_Class;
00099 static CppClassType queue_class_;
00100
00101 private:
00102
00103 Queue(const Queue&);
00104 Queue& operator=(const Queue&);
00105
00106 protected:
00107 explicit Queue(const Glib::ConstructParams& construct_params);
00108 explicit Queue(GstQueue* castitem);
00109
00110 #endif
00111
00112 public:
00113 virtual ~Queue();
00114
00115 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00116 static GType get_type() G_GNUC_CONST;
00117 static GType get_base_type() G_GNUC_CONST;
00118 #endif
00119
00121 GstQueue* gobj() { return reinterpret_cast<GstQueue*>(gobject_); }
00122
00124 const GstQueue* gobj() const { return reinterpret_cast<GstQueue*>(gobject_); }
00125
00127 GstQueue* gobj_copy();
00128
00129 private:
00130
00131
00132 protected:
00133 Queue();
00134 Queue(const Glib::ustring& name);
00135
00136 public:
00140 static Glib::RefPtr<Queue> create();
00141
00142
00146 static Glib::RefPtr<Queue> create(const Glib::ustring& name);
00147
00148
00149 #ifdef GLIBMM_PROPERTIES_ENABLED
00150
00156 Glib::PropertyProxy_ReadOnly<guint> property_current_level_buffers() const;
00157 #endif //#GLIBMM_PROPERTIES_ENABLED
00158
00159
00160 #ifdef GLIBMM_PROPERTIES_ENABLED
00161
00167 Glib::PropertyProxy_ReadOnly<guint> property_current_level_bytes() const;
00168 #endif //#GLIBMM_PROPERTIES_ENABLED
00169
00170
00171 #ifdef GLIBMM_PROPERTIES_ENABLED
00172
00178 Glib::PropertyProxy_ReadOnly<guint64> property_current_level_time() const;
00179 #endif //#GLIBMM_PROPERTIES_ENABLED
00180
00181
00182 #ifdef GLIBMM_PROPERTIES_ENABLED
00183
00189 Glib::PropertyProxy<guint> property_max_size_buffers() ;
00190 #endif //#GLIBMM_PROPERTIES_ENABLED
00191
00192 #ifdef GLIBMM_PROPERTIES_ENABLED
00193
00199 Glib::PropertyProxy_ReadOnly<guint> property_max_size_buffers() const;
00200 #endif //#GLIBMM_PROPERTIES_ENABLED
00201
00202 #ifdef GLIBMM_PROPERTIES_ENABLED
00203
00209 Glib::PropertyProxy<guint> property_max_size_bytes() ;
00210 #endif //#GLIBMM_PROPERTIES_ENABLED
00211
00212 #ifdef GLIBMM_PROPERTIES_ENABLED
00213
00219 Glib::PropertyProxy_ReadOnly<guint> property_max_size_bytes() const;
00220 #endif //#GLIBMM_PROPERTIES_ENABLED
00221
00222 #ifdef GLIBMM_PROPERTIES_ENABLED
00223
00229 Glib::PropertyProxy<guint64> property_max_size_time() ;
00230 #endif //#GLIBMM_PROPERTIES_ENABLED
00231
00232 #ifdef GLIBMM_PROPERTIES_ENABLED
00233
00239 Glib::PropertyProxy_ReadOnly<guint64> property_max_size_time() const;
00240 #endif //#GLIBMM_PROPERTIES_ENABLED
00241
00242 #ifdef GLIBMM_PROPERTIES_ENABLED
00243
00249 Glib::PropertyProxy<guint> property_min_threshold_buffers() ;
00250 #endif //#GLIBMM_PROPERTIES_ENABLED
00251
00252 #ifdef GLIBMM_PROPERTIES_ENABLED
00253
00259 Glib::PropertyProxy_ReadOnly<guint> property_min_threshold_buffers() const;
00260 #endif //#GLIBMM_PROPERTIES_ENABLED
00261
00262 #ifdef GLIBMM_PROPERTIES_ENABLED
00263
00269 Glib::PropertyProxy<guint> property_min_threshold_bytes() ;
00270 #endif //#GLIBMM_PROPERTIES_ENABLED
00271
00272 #ifdef GLIBMM_PROPERTIES_ENABLED
00273
00279 Glib::PropertyProxy_ReadOnly<guint> property_min_threshold_bytes() const;
00280 #endif //#GLIBMM_PROPERTIES_ENABLED
00281
00282 #ifdef GLIBMM_PROPERTIES_ENABLED
00283
00289 Glib::PropertyProxy<guint64> property_min_threshold_time() ;
00290 #endif //#GLIBMM_PROPERTIES_ENABLED
00291
00292 #ifdef GLIBMM_PROPERTIES_ENABLED
00293
00299 Glib::PropertyProxy_ReadOnly<guint64> property_min_threshold_time() const;
00300 #endif //#GLIBMM_PROPERTIES_ENABLED
00301
00302 #ifdef GLIBMM_PROPERTIES_ENABLED
00303
00309 Glib::PropertyProxy<QueueLeaky> property_leaky() ;
00310 #endif //#GLIBMM_PROPERTIES_ENABLED
00311
00312 #ifdef GLIBMM_PROPERTIES_ENABLED
00313
00319 Glib::PropertyProxy_ReadOnly<QueueLeaky> property_leaky() const;
00320 #endif //#GLIBMM_PROPERTIES_ENABLED
00321
00322
00328 Glib::SignalProxy0< void > signal_underrun();
00329
00330
00336 Glib::SignalProxy0< void > signal_running();
00337
00338
00344 Glib::SignalProxy0< void > signal_overrun();
00345
00346
00352 Glib::SignalProxy0< void > signal_pushing();
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 virtual void on_underrun();
00370 virtual void on_running();
00371 virtual void on_overrun();
00372 virtual void on_pushing();
00373 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00374
00375
00376 };
00377
00378 }
00379
00380
00381 namespace Glib
00382 {
00391 Glib::RefPtr<Gst::Queue> wrap(GstQueue* object, bool take_copy = false);
00392 }
00393
00394
00395 #endif
00396