00001
00002
00003 #ifndef _GSTREAMERMM_BASEAUDIOSRC_H
00004 #define _GSTREAMERMM_BASEAUDIOSRC_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 <gst/audio/gstringbuffer.h>
00029 #include <gstreamermm/pushsrc.h>
00030
00031
00032 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00033 typedef struct _GstBaseAudioSrc GstBaseAudioSrc;
00034 typedef struct _GstBaseAudioSrcClass GstBaseAudioSrcClass;
00035 #endif
00036
00037
00038 namespace Gst
00039 { class BaseAudioSrc_Class; }
00040 namespace Gst
00041 {
00042
00043 class RingBuffer;
00044
00050 enum BaseAudioSrcSlaveMethod
00051 {
00052 BASE_AUDIO_SRC_SLAVE_RESAMPLE,
00053 BASE_AUDIO_SRC_SLAVE_RETIMESTAMP,
00054 BASE_AUDIO_SRC_SLAVE_SKEW,
00055 BASE_AUDIO_SRC_SLAVE_NONE
00056 };
00057
00058 }
00059
00060
00061 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00062 namespace Glib
00063 {
00064
00065 template <>
00066 class Value<Gst::BaseAudioSrcSlaveMethod> : public Glib::Value_Enum<Gst::BaseAudioSrcSlaveMethod>
00067 {
00068 public:
00069 static GType value_type() G_GNUC_CONST;
00070 };
00071
00072 }
00073 #endif
00074
00075
00076 namespace Gst
00077 {
00078
00079
00090 class BaseAudioSrc : public Gst::PushSrc
00091 {
00092
00093 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00094
00095 public:
00096 typedef BaseAudioSrc CppObjectType;
00097 typedef BaseAudioSrc_Class CppClassType;
00098 typedef GstBaseAudioSrc BaseObjectType;
00099 typedef GstBaseAudioSrcClass BaseClassType;
00100
00101 private: friend class BaseAudioSrc_Class;
00102 static CppClassType baseaudiosrc_class_;
00103
00104 private:
00105
00106 BaseAudioSrc(const BaseAudioSrc&);
00107 BaseAudioSrc& operator=(const BaseAudioSrc&);
00108
00109 protected:
00110 explicit BaseAudioSrc(const Glib::ConstructParams& construct_params);
00111 explicit BaseAudioSrc(GstBaseAudioSrc* castitem);
00112
00113 #endif
00114
00115 public:
00116 virtual ~BaseAudioSrc();
00117
00118 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00119 static GType get_type() G_GNUC_CONST;
00120 static GType get_base_type() G_GNUC_CONST;
00121 #endif
00122
00124 GstBaseAudioSrc* gobj() { return reinterpret_cast<GstBaseAudioSrc*>(gobject_); }
00125
00127 const GstBaseAudioSrc* gobj() const { return reinterpret_cast<GstBaseAudioSrc*>(gobject_); }
00128
00130 GstBaseAudioSrc* gobj_copy();
00131
00132 private:
00133
00134
00135 public:
00138 Glib::RefPtr<Gst::Clock> get_clock();
00139 Glib::RefPtr<const Gst::Clock> get_clock() const;
00140
00141
00147 Glib::RefPtr<Gst::RingBuffer> create_ring_buffer();
00148
00149
00157 void set_provide_clock(bool provide);
00158
00165 bool get_provide_clock() const;
00166
00167 #ifdef GLIBMM_PROPERTIES_ENABLED
00168
00174 Glib::PropertyProxy_ReadOnly<gint64> property_actual_buffer_time() const;
00175 #endif //#GLIBMM_PROPERTIES_ENABLED
00176
00177
00178 #ifdef GLIBMM_PROPERTIES_ENABLED
00179
00185 Glib::PropertyProxy_ReadOnly<gint64> property_actual_latency_time() const;
00186 #endif //#GLIBMM_PROPERTIES_ENABLED
00187
00188
00189 #ifdef GLIBMM_PROPERTIES_ENABLED
00190
00196 Glib::PropertyProxy<gint64> property_buffer_time() ;
00197 #endif //#GLIBMM_PROPERTIES_ENABLED
00198
00199 #ifdef GLIBMM_PROPERTIES_ENABLED
00200
00206 Glib::PropertyProxy_ReadOnly<gint64> property_buffer_time() const;
00207 #endif //#GLIBMM_PROPERTIES_ENABLED
00208
00209 #ifdef GLIBMM_PROPERTIES_ENABLED
00210
00216 Glib::PropertyProxy<gint64> property_latency_time() ;
00217 #endif //#GLIBMM_PROPERTIES_ENABLED
00218
00219 #ifdef GLIBMM_PROPERTIES_ENABLED
00220
00226 Glib::PropertyProxy_ReadOnly<gint64> property_latency_time() const;
00227 #endif //#GLIBMM_PROPERTIES_ENABLED
00228
00229 #ifdef GLIBMM_PROPERTIES_ENABLED
00230
00236 Glib::PropertyProxy<bool> property_provide_clock() ;
00237 #endif //#GLIBMM_PROPERTIES_ENABLED
00238
00239 #ifdef GLIBMM_PROPERTIES_ENABLED
00240
00246 Glib::PropertyProxy_ReadOnly<bool> property_provide_clock() const;
00247 #endif //#GLIBMM_PROPERTIES_ENABLED
00248
00249
00250 #ifdef GLIBMM_PROPERTIES_ENABLED
00251
00257 Glib::PropertyProxy<BaseAudioSrcSlaveMethod> property_slave_method() ;
00258 #endif //#GLIBMM_PROPERTIES_ENABLED
00259
00260 #ifdef GLIBMM_PROPERTIES_ENABLED
00261
00267 Glib::PropertyProxy_ReadOnly<BaseAudioSrcSlaveMethod> property_slave_method() const;
00268 #endif //#GLIBMM_PROPERTIES_ENABLED
00269
00270
00273 #ifdef GLIBMM_VFUNCS_ENABLED
00274 virtual Glib::RefPtr<Gst::RingBuffer> create_ring_buffer_vfunc();
00275 #endif //GLIBMM_VFUNCS_ENABLED
00276
00277
00278 public:
00279
00280 public:
00281
00282 #ifdef GLIBMM_VFUNCS_ENABLED
00283 #endif //GLIBMM_VFUNCS_ENABLED
00284
00285 protected:
00286
00287 #ifdef GLIBMM_VFUNCS_ENABLED
00288 #endif //GLIBMM_VFUNCS_ENABLED
00289
00290
00291 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00292 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00293
00294
00295 };
00296
00297 }
00298
00299
00300 namespace Glib
00301 {
00310 Glib::RefPtr<Gst::BaseAudioSrc> wrap(GstBaseAudioSrc* object, bool take_copy = false);
00311 }
00312
00313
00314 #endif
00315