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  * System Includes
00035  *
00036  ****************************************************************************/
00037 
00038 #include <iostream>
00039 #include <string>
00040 
00041 
00042 /****************************************************************************
00043  *
00044  * Project Includes
00045  *
00046  ****************************************************************************/
00047 
00048 #include <AsyncAudioSink.h>
00049 #include <AsyncAudioSource.h>
00050 
00051 
00052 /****************************************************************************
00053  *
00054  * Local Includes
00055  *
00056  ****************************************************************************/
00057 
00058 
00059 
00060 /****************************************************************************
00061  *
00062  * Forward declarations
00063  *
00064  ****************************************************************************/
00065 
00066 
00067 
00068 /****************************************************************************
00069  *
00070  * Namespace
00071  *
00072  ****************************************************************************/
00073 
00074 namespace Async
00075 {
00076 
00077 
00078 /****************************************************************************
00079  *
00080  * Forward declarations of classes inside of the declared namespace
00081  *
00082  ****************************************************************************/
00083 
00084   
00085 
00086 /****************************************************************************
00087  *
00088  * Defines & typedefs
00089  *
00090  ****************************************************************************/
00091 
00092 
00093 
00094 /****************************************************************************
00095  *
00096  * Exported Global Variables
00097  *
00098  ****************************************************************************/
00099 
00100 
00101 
00102 /****************************************************************************
00103  *
00104  * Class definitions
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 }; /* AudioDebugger */
00217 
00218 
00219 } /* namespace */
00220 
00221 #endif /* AUDIO_DEBUGGER_INCLUDED */
00222 
00223 
00224 
00225 /*
00226  * This file has not been truncated
00227  */
00228 
Generated by  doxygen 1.6.2-20100208