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
00120
00121 static GType get_base_type() G_GNUC_CONST;
00122 #endif
00123
00125 GstBaseAudioSink* gobj() { return reinterpret_cast<GstBaseAudioSink*>(gobject_); }
00126
00128 const GstBaseAudioSink* gobj() const { return reinterpret_cast<GstBaseAudioSink*>(gobject_); }
00129
00131 GstBaseAudioSink* gobj_copy();
00132
00133 private:
00134
00135
00136 public:
00139 Glib::RefPtr<Gst::Clock> get_provided_clock();
00140 Glib::RefPtr<const Gst::Clock> get_provided_clock() const;
00141
00142
00148 Glib::RefPtr<Gst::RingBuffer> create_ring_buffer();
00149
00157 void set_provide_clock(bool provide);
00158
00165 bool get_provide_clock() const;
00166
00167
00173 void set_slave_method(Gst::BaseAudioSinkSlaveMethod method);
00174
00180 Gst::BaseAudioSinkSlaveMethod get_slave_method() const;
00181
00184 #ifdef GLIBMM_VFUNCS_ENABLED
00185 virtual Glib::RefPtr<Gst::RingBuffer> create_ring_buffer_vfunc();
00186 #endif //GLIBMM_VFUNCS_ENABLED
00187
00188
00189 public:
00190
00191 public:
00192
00193 #ifdef GLIBMM_VFUNCS_ENABLED
00194 #endif //GLIBMM_VFUNCS_ENABLED
00195
00196 protected:
00197
00198 #ifdef GLIBMM_VFUNCS_ENABLED
00199 #endif //GLIBMM_VFUNCS_ENABLED
00200
00201
00202 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00203 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00204
00205
00206 };
00207
00208 }
00209
00210
00211 namespace Glib
00212 {
00221 Glib::RefPtr<Gst::BaseAudioSink> wrap(GstBaseAudioSink* object, bool take_copy = false);
00222 }
00223
00224
00225 #endif
00226