refactor(fmod): move all original files into fmod directory
This commit is contained in:
parent
50fb3c6b1c
commit
35569faecc
544 changed files with 0 additions and 0 deletions
131
fmod/lib/vst/AudioEffect.hpp
Executable file
131
fmod/lib/vst/AudioEffect.hpp
Executable file
|
|
@ -0,0 +1,131 @@
|
|||
//-------------------------------------------------------------------------------------------------------
|
||||
// VST Plug-Ins SDK
|
||||
// Version 1.0
|
||||
// © 2003, Steinberg Media Technologies, All Rights Reserved
|
||||
//-------------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifndef __AudioEffect__
|
||||
#define __AudioEffect__
|
||||
|
||||
#ifndef __AEffect__
|
||||
#include "AEffect.h" // "c" interface
|
||||
#endif
|
||||
|
||||
class AEffEditor;
|
||||
class AudioEffect;
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------
|
||||
// Needs to be defined by the audio effect and is
|
||||
// called to create the audio effect object instance.
|
||||
AudioEffect* createEffectInstance (audioMasterCallback audioMaster);
|
||||
|
||||
long dispatchEffectClass (AEffect *e, long opCode, long index, long value, void *ptr, float opt);
|
||||
float getParameterClass (long index);
|
||||
void setParameterClass (long index, float value);
|
||||
void processClass (AEffect *e, float **inputs, float **outputs, long sampleFrames);
|
||||
void processClassReplacing (AEffect *e, float **inputs, float **outputs, long sampleFrames);
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------
|
||||
class AudioEffect
|
||||
{
|
||||
friend class AEffEditor;
|
||||
friend long dispatchEffectClass (AEffect *e, long opCode, long index, long value, void *ptr, float opt);
|
||||
friend float getParameterClass (AEffect *e, long index);
|
||||
friend void setParameterClass (AEffect *e, long index, float value);
|
||||
friend void processClass (AEffect *e, float **inputs, float **outputs, long sampleFrames);
|
||||
friend void processClassReplacing (AEffect *e, float **inputs, float **outputs, long sampleFrames);
|
||||
|
||||
public:
|
||||
AudioEffect (audioMasterCallback audioMaster, long numPrograms, long numParams);
|
||||
virtual ~AudioEffect ();
|
||||
|
||||
virtual void setParameter (long index, float value) { index = index; value = value; }
|
||||
virtual float getParameter (long index) { index = index; return 0; }
|
||||
virtual void setParameterAutomated (long index, float value);
|
||||
|
||||
AEffect *getAeffect () { return &cEffect; } // Returns the AEffect Structure
|
||||
|
||||
void setEditor (AEffEditor *editor)
|
||||
{ this->editor = editor;
|
||||
if (editor) cEffect.flags |= effFlagsHasEditor;
|
||||
else cEffect.flags &= ~effFlagsHasEditor; } // Should be called if you want to define your own editor
|
||||
|
||||
//---Called from audio master (Host -> Plug)---------------
|
||||
virtual void process (float **inputs, float **outputs, long sampleFrames) = 0;
|
||||
virtual void processReplacing (float **inputs, float **outputs, long sampleFrames)
|
||||
{ inputs = inputs; outputs = outputs; sampleFrames = sampleFrames; }
|
||||
|
||||
virtual long dispatcher (long opCode, long index, long value, void *ptr, float opt); // Opcodes dispatcher
|
||||
|
||||
virtual void open () {} // Called when Plugin is initialized
|
||||
virtual void close () {} // Called when Plugin will be released
|
||||
|
||||
//---Program----------------------------
|
||||
virtual long getProgram () { return curProgram; }
|
||||
virtual void setProgram (long program) { curProgram = program; }// Don't forget to set curProgram
|
||||
virtual void setProgramName (char *name) { *name = 0; } // All following refer to curProgram
|
||||
virtual void getProgramName (char *name) { *name = 0; }
|
||||
|
||||
virtual void getParameterLabel (long index, char *label) { index = index; *label = 0; } // example: "dB"
|
||||
virtual void getParameterDisplay (long index, char *text) { index = index; *text = 0; } // example: "6.01"
|
||||
virtual void getParameterName (long index, char *text) { index = index; *text = 0; } // example: "Volume"
|
||||
|
||||
virtual float getVu () { return 0; }
|
||||
|
||||
virtual long getChunk (void** data, bool isPreset = false) { return 0; } // Returns the Size in bytes of the chunk (Plugin allocates the data array)
|
||||
virtual long setChunk (void* data, long byteSize, bool isPreset = false) { return 0; }
|
||||
|
||||
virtual void setSampleRate (float sampleRate) { this->sampleRate = sampleRate; }
|
||||
virtual void setBlockSize (long blockSize) { this->blockSize = blockSize; }
|
||||
|
||||
virtual void suspend () {} // Called when Plugin is switched to Off
|
||||
virtual void resume () {} // Called when Plugin is switched to On
|
||||
|
||||
//---Setup---------------------------
|
||||
virtual void setUniqueID (long iD) { cEffect.uniqueID = iD; } // must call this!
|
||||
virtual void setNumInputs (long inputs) { cEffect.numInputs = inputs; }
|
||||
virtual void setNumOutputs (long outputs) { cEffect.numOutputs = outputs; }
|
||||
|
||||
virtual void hasVu (bool state = true);
|
||||
virtual void hasClip (bool state = true);
|
||||
virtual void canMono (bool state = true);
|
||||
virtual void canProcessReplacing (bool state = true); // Tells that the processReplacing () could be used
|
||||
virtual void programsAreChunks (bool state = true);
|
||||
virtual void setRealtimeQualities (long qualities);
|
||||
virtual void setOfflineQualities (long qualities);
|
||||
virtual void setInitialDelay (long delay); // Uses to report the Plugin's latency (Group Delay)
|
||||
|
||||
//---Inquiry-------------------------
|
||||
virtual float getSampleRate () { return sampleRate; }
|
||||
virtual long getBlockSize () { return blockSize; }
|
||||
|
||||
//---Host communication--------------
|
||||
virtual long getMasterVersion ();
|
||||
virtual long getCurrentUniqueId ();
|
||||
virtual void masterIdle ();
|
||||
virtual bool isInputConnected (long input);
|
||||
virtual bool isOutputConnected (long output);
|
||||
|
||||
//---Tools---------------------------
|
||||
virtual void dB2string (float value, char *text);
|
||||
virtual void Hz2string (float samples, char *text);
|
||||
virtual void ms2string (float samples, char *text);
|
||||
virtual void float2string (float value, char *string);
|
||||
virtual void long2string (long value, char *text);
|
||||
|
||||
protected:
|
||||
//---Members-------------------------
|
||||
float sampleRate;
|
||||
AEffEditor *editor;
|
||||
audioMasterCallback audioMaster;
|
||||
long numPrograms;
|
||||
long numParams;
|
||||
long curProgram;
|
||||
long blockSize;
|
||||
AEffect cEffect;
|
||||
};
|
||||
|
||||
#endif // __AudioEffect__
|
||||
//-------------------------------------------------------------------------------------------------------
|
||||
//-------------------------------------------------------------------------------------------------------
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue