00001
00002
00003 #ifndef _GSTREAMERMM_BASEAUDIOSINK_H
00004 #define _GSTREAMERMM_BASEAUDIOSINK_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/basesink.h>
00030
00031
00032 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00033 typedef struct _GstBaseAudioSink GstBaseAudioSink;
00034 typedef struct _GstBaseAudioSinkClass GstBaseAudioSinkClass;
00035 #endif
00036
00037
00038 namespace Gst
00039 { class BaseAudioSink_Class; }
00040 namespace Gst
00041 {
00042
00043 class RingBuffer;
00044
00050 enum BaseAudioSinkSlaveMethod
00051 {
00052 BASE_AUDIO_SINK_SLAVE_RESAMPLE,
00053 BASE_AUDIO_SINK_SLAVE_SKEW,
00054 BASE_AUDIO_SINK_SLAVE_NONE
00055 };
00056
00057 }
00058
00059
00060 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00061 namespace Glib
00062 {
00063
00064 template <>
00065 class Value<Gst::BaseAudioSinkSlaveMethod> : public Glib::Value_Enum<Gst::BaseAudioSinkSlaveMethod>
00066 {
00067 public:
00068 static GType value_type() G_GNUC_CONST;
00069 };
00070
00071 }
00072 #endif
00073
00074
00075 namespace Gst
00076 {
00077
00078
00089 class BaseAudioSink : public Gst::BaseSink
00090 {
00091
00092 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00093
00094 public:
00095 typedef BaseAudioSink CppObjectType;
00096 typedef BaseAudioSink_Class CppClassType;
00097 typedef GstBaseAudioSink BaseObjectType;
00098 typedef GstBaseAudioSinkClass BaseClassType;
00099
00100 private: friend class BaseAudioSink_Class;
00101 static CppClassType baseaudiosink_class_;
00102
00103 private:
00104
00105 BaseAudioSink(const BaseAudioSink&);
00106 BaseAudioSink& operator=(const BaseAudioSink&);
00107
00108 protected:
00109 explicit BaseAudioSink(const Glib::ConstructParams& construct_params);
00110 explicit BaseAudioSink(GstBaseAudioSink* castitem);
00111
00112 #endif
00113
00114 public:
00115 virtual ~BaseAudioSink();
00116
00117 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00118 static GType get_type() G_GNUC_CONST;
00119 static GType get_base_type() G_GNUC_CONST;
00120 #endif
00121
00123 GstBaseAudioSink* gobj() { return reinterpret_cast<GstBaseAudioSink*>(gobject_); }
00124
00126 const GstBaseAudioSink* gobj() const { return reinterpret_cast<GstBaseAudioSink*>(gobject_); }
00127
00129 GstBaseAudioSink* gobj_copy();
00130
00131 private:
00132
00133
00134 public:
00137 Glib::RefPtr<Gst::Clock> get_provided_clock();
00138 Glib::RefPtr<const Gst::Clock> get_provided_clock() const;
00139
00140
00146 Glib::RefPtr<Gst::RingBuffer> create_ring_buffer();
00147
00155 void set_provide_clock(bool provide);
00156
00163 bool get_provide_clock() const;
00164
00165
00171 void set_slave_method(Gst::BaseAudioSinkSlaveMethod method);
00172
00178 Gst::BaseAudioSinkSlaveMethod get_slave_method() const;
00179
00182 #ifdef GLIBMM_VFUNCS_ENABLED
00183 virtual Glib::RefPtr<Gst::RingBuffer> create_ring_buffer_vfunc();
00184 #endif //GLIBMM_VFUNCS_ENABLED
00185
00186
00187 public:
00188
00189 public:
00190
00191 #ifdef GLIBMM_VFUNCS_ENABLED
00192 #endif //GLIBMM_VFUNCS_ENABLED
00193
00194 protected:
00195
00196 #ifdef GLIBMM_VFUNCS_ENABLED
00197 #endif //GLIBMM_VFUNCS_ENABLED
00198
00199
00200 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00201 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00202
00203
00204 };
00205
00206 }
00207
00208
00209 namespace Glib
00210 {
00219 Glib::RefPtr<Gst::BaseAudioSink> wrap(GstBaseAudioSink* object, bool take_copy = false);
00220 }
00221
00222
00223 #endif
00224