logo
Main Page | Namespaces | Classes | Compounds | Files | Compound Members | Related

softsynth.h

00001 //
00002 //  SYNTOPIA. See http://Syntopia.sourceforge.net for details and documentation.        
00003 //
00004 //      Author of this file: Mikael Hvidtfeldt Christensen (mikaelc@users.sourceforge.net)
00005 //
00006 
00007 
00008 
00009 // Visual C++ compiler warnings: 255 char limit on var names.....
00010 #pragma warning(disable: 4786)
00011 
00012 #ifndef __softSynth__
00013 #define __softSynth__
00014 
00015 #include <string.h>
00016 
00017 #ifndef __AudioEffectX__
00018 #include "audioeffectx.h"
00019 #endif
00020 
00021 #include "Modules.h"
00022 #include "Synth.h"
00023 
00024 using namespace SynthCore;
00025 
00026 
00028 class softSynth : public AudioEffectX
00029 {
00030 
00031 public:
00032         softSynth(audioMasterCallback audioMaster);
00033         ~softSynth();
00034 
00035         virtual void process(float **inputs, float **outputs, long sampleframes);
00036         virtual void processReplacing(float **inputs, float **outputs, long sampleframes);
00037         virtual long processEvents(VstEvents* events);
00038 
00039         // Since we dont use the VST standard way of saving/loading these
00040         // are implemented as dummy functions.
00041 
00042         virtual void getProgramName(char *name);
00043         
00044 
00045         virtual void setSampleRate(float sampleRate);
00046         virtual void setBlockSize(long blockSize);
00047         virtual void resume();
00048 
00049         virtual bool getOutputProperties (long index, VstPinProperties* properties);
00050         
00051         virtual bool getEffectName (char* name);
00052         virtual bool getVendorString (char* text);
00053         virtual bool getProductString (char* text);
00054         virtual long getVendorVersion () {return 1;}
00055 
00056         virtual long canDo (char* text);
00057 
00058         Synth * mySynth;
00059 private:
00060         void initProcess();
00061         long currentDelta;
00062 
00063 };
00064 
00065 #endif

Syntopia Project. Visit the web page, or the SourceForge page.
Docs made by Doxygen. Email: Mikael Christensen