VSTIO.h

Go to the documentation of this file.
00001 //
00002 //  VSTIO.h -- IO using VSTIO 
00003 //
00004 //  See the copyright notice and acknowledgment of authors in the file COPYRIGHT
00005 //
00006 
00007 #ifndef CSL_VSTIO_H
00008 #define CSL_VSTIO_H
00009 
00010 #include "CSL_Core.h"
00011 #include "Instrument.h"
00012 
00013 #include "audioeffectx.h"
00014 
00015 namespace csl {
00016 
00020 
00021 class VSTIO : public IO, public AudioEffectX {
00022 public:             
00023     VSTIO ();                       
00024     VSTIO (audioMasterCallback audioMaster, 
00025                     unsigned s_rate = 44100, unsigned b_size = 512, 
00026                     unsigned in_chans = 2, unsigned out_chans = 2);
00027     virtual ~VSTIO();
00028 
00029     void open() throw(CException);          
00030     void close() throw(CException);
00031     void start() throw(CException);         
00032     void stop() throw(CException);          
00033 
00034                     // Processing
00035     virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
00036     virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames) { };
00037 
00038                     // Program
00039     virtual void setProgramName (char* name);
00040     virtual void getProgramName (char* name);
00041 
00042                     // Parameters
00043     virtual void setParameter (VstInt32 index, float value);
00044     virtual float getParameter (VstInt32 index);
00045     virtual void getParameterLabel (VstInt32 index, char* label);
00046     virtual void getParameterDisplay (VstInt32 index, char* text);
00047     virtual void getParameterName (VstInt32 index, char* text);
00048 
00049     virtual bool getEffectName (char* name);
00050     virtual bool getVendorString (char* text);
00051     virtual bool getProductString (char* text);
00052     virtual VstInt32 getVendorVersion ();
00053     
00054 protected:
00055     InOut * mInOut;                         
00056     Filter * mFilter;                       
00057     float mFreq;                            
00058     
00059 };
00060 
00061 #if 0
00062 
00064 
00065 class VSTInst : public IO, public AudioEffectX {
00066 public:             
00067     VSTInst ();                     
00068     VSTInst (audioMasterCallback audioMaster, Instrument * theInstrument, 
00069                     unsigned s_rate = 44100, unsigned b_size = 512, 
00070                     unsigned in_chans = 0, unsigned out_chans = 2);
00071     virtual ~VSTInst();
00072     
00073     void open() throw(CException);          
00074     void close() throw(CException);
00075     void start() throw(CException);         
00076     void stop() throw(CException);          
00077 
00078                     // Processing
00079     virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
00080     virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames) { };
00081 
00082                     // Program
00083     virtual void setProgramName (char* name);
00084     virtual void getProgramName (char* name);
00085 
00086                     // Parameters
00087     virtual void setParameter (VstInt32 index, float value);
00088     virtual float getParameter (VstInt32 index);
00089     virtual void getParameterLabel (VstInt32 index, char* label);
00090     virtual void getParameterDisplay (VstInt32 index, char* text);
00091     virtual void getParameterName (VstInt32 index, char* text);
00092 
00093     virtual bool getEffectName (char* name);
00094     virtual bool getVendorString (char* text);
00095     virtual bool getProductString (char* text);
00096     virtual VstInt32 getVendorVersion ();
00097 
00098 protected:
00099     Instrument * mInstrument;
00100 };
00101 
00102 #endif
00103 
00104 }   // end of namespace
00105 
00106 #endif

Generated on Sat Oct 17 14:12:32 2009 for CSL by  doxygen 1.4.5-20051010