00001
00002
00003
00004
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
00035 virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
00036 virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames) { };
00037
00038
00039 virtual void setProgramName (char* name);
00040 virtual void getProgramName (char* name);
00041
00042
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
00079 virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
00080 virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames) { };
00081
00082
00083 virtual void setProgramName (char* name);
00084 virtual void getProgramName (char* name);
00085
00086
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 }
00105
00106 #endif