60 lines
2.1 KiB
C
60 lines
2.1 KiB
C
|
|
#ifndef _FMOD_DSP_VSTPLUGIN_H
|
||
|
|
#define _FMOD_DSP_VSTPLUGIN_H
|
||
|
|
|
||
|
|
#include "fmod_settings.h"
|
||
|
|
|
||
|
|
#ifdef FMOD_SUPPORT_VSTPLUGIN
|
||
|
|
|
||
|
|
#include "fmod.h"
|
||
|
|
#include "fmod_dsp_filter.h"
|
||
|
|
#include "fmod_os_misc.h"
|
||
|
|
|
||
|
|
#include "../lib/vst/AEffect.h"
|
||
|
|
#include "../lib/vst/aeffectx.h"
|
||
|
|
|
||
|
|
|
||
|
|
namespace FMOD
|
||
|
|
{
|
||
|
|
class DSPVSTPlugin : public DSPFilter
|
||
|
|
{
|
||
|
|
private:
|
||
|
|
|
||
|
|
static float *mDeInterleavedInputBuffer[DSP_MAXLEVELS_MAX];
|
||
|
|
static float *mDeInterleavedOutputBuffer[DSP_MAXLEVELS_MAX];
|
||
|
|
static int mDeInterleavedBufferCount;
|
||
|
|
|
||
|
|
bool mCallIdle;
|
||
|
|
|
||
|
|
FMOD_RESULT createInternal();
|
||
|
|
FMOD_RESULT releaseInternal();
|
||
|
|
FMOD_RESULT resetInternal();
|
||
|
|
FMOD_RESULT readInternal(float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int outchannels);
|
||
|
|
FMOD_RESULT setParameterInternal(int index, float value);
|
||
|
|
FMOD_RESULT getParameterInternal(int index, float *value, char *valuestr);
|
||
|
|
FMOD_RESULT showConfigDialogInternal(void *hwnd, int show);
|
||
|
|
FMOD_RESULT configIdleInternal();
|
||
|
|
|
||
|
|
public:
|
||
|
|
|
||
|
|
AEffect *mEffect;
|
||
|
|
|
||
|
|
static long VSTCALLBACK audioMasterCB(AEffect *effect, long opcode, long index, long value, void *ptr, float opt);
|
||
|
|
|
||
|
|
static FMOD_DSP_DESCRIPTION_EX *getDescriptionEx();
|
||
|
|
|
||
|
|
static FMOD_RESULT F_CALLBACK createCallback(FMOD_DSP_STATE *dsp);
|
||
|
|
static FMOD_RESULT F_CALLBACK releaseCallback(FMOD_DSP_STATE *dsp);
|
||
|
|
static FMOD_RESULT F_CALLBACK resetCallback(FMOD_DSP_STATE *dsp);
|
||
|
|
static FMOD_RESULT F_CALLBACK readCallback(FMOD_DSP_STATE *dsp, float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int outchannels);
|
||
|
|
static FMOD_RESULT F_CALLBACK setParameterCallback(FMOD_DSP_STATE *dsp, int index, float value);
|
||
|
|
static FMOD_RESULT F_CALLBACK getParameterCallback(FMOD_DSP_STATE *dsp, int index, float *value, char *valuestr);
|
||
|
|
static FMOD_RESULT F_CALLBACK configCallback(FMOD_DSP_STATE *dsp, void *hwnd, int show);
|
||
|
|
static FMOD_RESULT F_CALLBACK configIdleCallback(FMOD_DSP_STATE *dsp);
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif
|
||
|
|
|