AsyncAudioDebugger.h
Go to the documentation of this file.00001
00028 #ifndef AUDIO_DEBUGGER_INCLUDED
00029 #define AUDIO_DEBUGGER_INCLUDED
00030
00031
00032
00033
00034
00035
00036
00037
00038 #include <iostream>
00039 #include <string>
00040
00041
00042
00043
00044
00045
00046
00047
00048 #include <AsyncAudioSink.h>
00049 #include <AsyncAudioSource.h>
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074 namespace Async
00075 {
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00117 class AudioDebugger : public AudioSink, public AudioSource
00118 {
00119 public:
00123 AudioDebugger(Async::AudioSource *src=0)
00124 : name("AudioDebugger")
00125 {
00126 if (src != 0)
00127 {
00128 Async::AudioSink *sink = src->sink();
00129 if (sink != 0)
00130 {
00131 src->unregisterSink();
00132 registerSink(sink);
00133 }
00134 registerSource(src);
00135 }
00136 }
00137
00141 virtual ~AudioDebugger(void) {}
00142
00147 void setName(std::string debug_name) { name = debug_name; }
00148
00160 virtual int writeSamples(const float *samples, int count)
00161 {
00162 int ret = sinkWriteSamples(samples, count);
00163 std::cout << name << "::writeSamples: count=" << count
00164 << " ret=" << ret << std::endl;
00165 return ret;
00166 }
00167
00176 virtual void flushSamples(void)
00177 {
00178 std::cout << name << "::flushSamples\n";
00179 sinkFlushSamples();
00180 }
00181
00189 virtual void resumeOutput(void)
00190 {
00191 std::cout << name << "::resumeOutput\n";
00192 sourceResumeOutput();
00193 }
00194
00202 virtual void allSamplesFlushed(void)
00203 {
00204 std::cout << name << "::allSamplesFlushed\n";
00205 sourceAllSamplesFlushed();
00206 }
00207
00208 protected:
00209
00210 private:
00211 std::string name;
00212
00213 AudioDebugger(const AudioDebugger&);
00214 AudioDebugger& operator=(const AudioDebugger&);
00215
00216 };
00217
00218
00219 }
00220
00221 #endif
00222
00223
00224
00225
00226
00227
00228