00001
00002
00003 #ifndef _GSTREAMERMM_QUEUE_H
00004 #define _GSTREAMERMM_QUEUE_H
00005
00006
00007 #include <glibmm.h>
00008
00009 #include <gstreamermm/element.h>
00010
00011
00012 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00013 typedef struct _GstQueue GstQueue;
00014 typedef struct _GstQueueClass GstQueueClass;
00015 #endif
00016
00017
00018 namespace Gst
00019 { class Queue_Class; }
00020 namespace Gst
00021 {
00022
00028 enum QueueLeaky
00029 {
00030 QUEUE_LEAKY_NONE,
00031 QUEUE_LEAKY_UPSTREAM,
00032 QUEUE_LEAKY_DOWNSTREAM
00033 };
00034
00035 }
00036
00037
00038 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00039 namespace Glib
00040 {
00041
00042 template <>
00043 class Value<Gst::QueueLeaky> : public Glib::Value_Enum<Gst::QueueLeaky>
00044 {
00045 public:
00046 static GType value_type() G_GNUC_CONST;
00047 };
00048
00049 }
00050 #endif
00051
00052
00053 namespace Gst
00054 {
00055
00056
00066 class Queue
00067 : public Gst::Element
00068 {
00069
00070 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00071
00072 public:
00073 typedef Queue CppObjectType;
00074 typedef Queue_Class CppClassType;
00075 typedef GstQueue BaseObjectType;
00076 typedef GstQueueClass BaseClassType;
00077
00078 private: friend class Queue_Class;
00079 static CppClassType queue_class_;
00080
00081 private:
00082
00083 Queue(const Queue&);
00084 Queue& operator=(const Queue&);
00085
00086 protected:
00087 explicit Queue(const Glib::ConstructParams& construct_params);
00088 explicit Queue(GstQueue* castitem);
00089
00090 #endif
00091
00092 public:
00093 virtual ~Queue();
00094
00095 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00096 static GType get_type() G_GNUC_CONST;
00097 static GType get_base_type() G_GNUC_CONST;
00098 #endif
00099
00101 GstQueue* gobj() { return reinterpret_cast<GstQueue*>(gobject_); }
00102
00104 const GstQueue* gobj() const { return reinterpret_cast<GstQueue*>(gobject_); }
00105
00107 GstQueue* gobj_copy();
00108
00109 private:
00110
00111
00112 protected:
00113 Queue();
00114 Queue(const Glib::ustring& name);
00115
00116 public:
00120 static Glib::RefPtr<Queue> create();
00121
00122
00126 static Glib::RefPtr<Queue> create(const Glib::ustring& name);
00127
00128
00129 #ifdef GLIBMM_PROPERTIES_ENABLED
00130
00136 Glib::PropertyProxy_ReadOnly<guint> property_current_level_buffers() const;
00137 #endif //#GLIBMM_PROPERTIES_ENABLED
00138
00139
00140 #ifdef GLIBMM_PROPERTIES_ENABLED
00141
00147 Glib::PropertyProxy_ReadOnly<guint> property_current_level_bytes() const;
00148 #endif //#GLIBMM_PROPERTIES_ENABLED
00149
00150
00151 #ifdef GLIBMM_PROPERTIES_ENABLED
00152
00158 Glib::PropertyProxy_ReadOnly<guint64> property_current_level_time() const;
00159 #endif //#GLIBMM_PROPERTIES_ENABLED
00160
00161
00162 #ifdef GLIBMM_PROPERTIES_ENABLED
00163
00169 Glib::PropertyProxy<guint> property_max_size_buffers() ;
00170 #endif //#GLIBMM_PROPERTIES_ENABLED
00171
00172 #ifdef GLIBMM_PROPERTIES_ENABLED
00173
00179 Glib::PropertyProxy_ReadOnly<guint> property_max_size_buffers() const;
00180 #endif //#GLIBMM_PROPERTIES_ENABLED
00181
00182 #ifdef GLIBMM_PROPERTIES_ENABLED
00183
00189 Glib::PropertyProxy<guint> property_max_size_bytes() ;
00190 #endif //#GLIBMM_PROPERTIES_ENABLED
00191
00192 #ifdef GLIBMM_PROPERTIES_ENABLED
00193
00199 Glib::PropertyProxy_ReadOnly<guint> property_max_size_bytes() const;
00200 #endif //#GLIBMM_PROPERTIES_ENABLED
00201
00202 #ifdef GLIBMM_PROPERTIES_ENABLED
00203
00209 Glib::PropertyProxy<guint64> property_max_size_time() ;
00210 #endif //#GLIBMM_PROPERTIES_ENABLED
00211
00212 #ifdef GLIBMM_PROPERTIES_ENABLED
00213
00219 Glib::PropertyProxy_ReadOnly<guint64> property_max_size_time() const;
00220 #endif //#GLIBMM_PROPERTIES_ENABLED
00221
00222 #ifdef GLIBMM_PROPERTIES_ENABLED
00223
00229 Glib::PropertyProxy<guint> property_min_threshold_buffers() ;
00230 #endif //#GLIBMM_PROPERTIES_ENABLED
00231
00232 #ifdef GLIBMM_PROPERTIES_ENABLED
00233
00239 Glib::PropertyProxy_ReadOnly<guint> property_min_threshold_buffers() const;
00240 #endif //#GLIBMM_PROPERTIES_ENABLED
00241
00242 #ifdef GLIBMM_PROPERTIES_ENABLED
00243
00249 Glib::PropertyProxy<guint> property_min_threshold_bytes() ;
00250 #endif //#GLIBMM_PROPERTIES_ENABLED
00251
00252 #ifdef GLIBMM_PROPERTIES_ENABLED
00253
00259 Glib::PropertyProxy_ReadOnly<guint> property_min_threshold_bytes() const;
00260 #endif //#GLIBMM_PROPERTIES_ENABLED
00261
00262 #ifdef GLIBMM_PROPERTIES_ENABLED
00263
00269 Glib::PropertyProxy<guint64> property_min_threshold_time() ;
00270 #endif //#GLIBMM_PROPERTIES_ENABLED
00271
00272 #ifdef GLIBMM_PROPERTIES_ENABLED
00273
00279 Glib::PropertyProxy_ReadOnly<guint64> property_min_threshold_time() const;
00280 #endif //#GLIBMM_PROPERTIES_ENABLED
00281
00282 #ifdef GLIBMM_PROPERTIES_ENABLED
00283
00289 Glib::PropertyProxy<QueueLeaky> property_leaky() ;
00290 #endif //#GLIBMM_PROPERTIES_ENABLED
00291
00292 #ifdef GLIBMM_PROPERTIES_ENABLED
00293
00299 Glib::PropertyProxy_ReadOnly<QueueLeaky> property_leaky() const;
00300 #endif //#GLIBMM_PROPERTIES_ENABLED
00301
00302
00308 Glib::SignalProxy0< void > signal_underrun();
00309
00310
00316 Glib::SignalProxy0< void > signal_running();
00317
00318
00324 Glib::SignalProxy0< void > signal_overrun();
00325
00326
00332 Glib::SignalProxy0< void > signal_pushing();
00333
00334
00335 public:
00336
00337 public:
00338
00339 #ifdef GLIBMM_VFUNCS_ENABLED
00340 #endif //GLIBMM_VFUNCS_ENABLED
00341
00342 protected:
00343
00344 #ifdef GLIBMM_VFUNCS_ENABLED
00345 #endif //GLIBMM_VFUNCS_ENABLED
00346
00347
00348 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00349 virtual void on_underrun();
00350 virtual void on_running();
00351 virtual void on_overrun();
00352 virtual void on_pushing();
00353 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00354
00355
00356 };
00357
00358 }
00359
00360
00361 namespace Glib
00362 {
00371 Glib::RefPtr<Gst::Queue> wrap(GstQueue* object, bool take_copy = false);
00372 }
00373
00374
00375 #endif
00376