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
1.4.5-20051010