InOut.h

Go to the documentation of this file.
00001 //
00002 //  InOut.h -- specification of the class that copies the input buffer to the output buffer
00003 //  See the copyright notice and acknowledgment of authors in the file COPYRIGHT
00004 //
00005 
00006 #ifndef CSL_InOut_H
00007 #define CSL_InOut_H
00008 
00009 #include "CSL_Core.h"
00010 
00011 namespace csl {
00012 
00013 #ifdef CSL_ENUMS
00014 typedef enum {
00015     kNoProc,        // tries to keep it mono or stereo if in_chans == out_chans
00016     kLRtoM,         // mixes the L and R inputs down to a mono signal
00017 //  kLtoM,          // Copies left input to make mono
00018 //  kRtoM,          // Copies right input to make mono
00019 } InOutFlags;
00020 #else
00021     #define kNoProc 0
00022     #define kLRtoM 1
00023     #define kLtoM 2
00024     #define kRtoM 3
00025     typedef int InOutFlags;
00026 #endif
00027 
00031 class InOut : public UnitGenerator {
00032 public:
00034     InOut(IO * anIO, InOutFlags f = kNoProc, unsigned inChan = 0, unsigned outChan = 0);
00035     ~InOut();   
00036     
00037     void setInChan(unsigned chan);
00038     void setOutChan(unsigned chan);
00039 
00040     virtual void nextBuffer(Buffer & outputBuffer) throw (CException);
00041 
00042 private:
00043     InOutFlags mFlags;
00044     int mInChan;            
00045     int mOutChan;       
00046     IO * mIO;           
00047 
00048 };
00049 
00050 }
00051 
00052 #endif

Generated on Fri Apr 6 20:18:13 2007 for CSL by  doxygen 1.4.5-20051010