Files
Work/vst/AEffEditor.hpp
2024-08-07 09:16:27 -04:00

72 lines
2.1 KiB
C++

//-------------------------------------------------------------------------------------------------------
// VST Plug-Ins SDK
// Version 2.3 Extension
// © 2003, Steinberg Media Technologies, All Rights Reserved
//-------------------------------------------------------------------------------------------------------
#ifndef __AEffEditor__
#define __AEffEditor__
class AudioEffect;
//----------------------------------------------------------------------
struct ERect
{
short top;
short left;
short bottom;
short right;
};
#ifndef __aeffectx__
#include "aeffectx.h"
#endif
#define VST_2_1_EXTENSIONS 1
//----------------------------------------------------------------------
// class AEffEditor Declaration
//----------------------------------------------------------------------
class AEffEditor
{
public:
AEffEditor (AudioEffect *effect) { this->effect = effect; updateFlag = 0; }
virtual ~AEffEditor() {}
virtual long getRect (ERect **rect) { *rect = 0; return 0; }
virtual long open (void *ptr) { systemWindow = ptr; return 0; }
virtual void close () {}
virtual void idle () { if(updateFlag) { updateFlag = 0; update ();} }
#if MAC
virtual void draw (ERect *rect) { rect = rect; }
virtual long mouse (long x, long y) { x = x; y = y; return 0; }
virtual long key (long keyCode) { keyCode = keyCode; return 0; }
virtual void top () {}
virtual void sleep () {}
#endif
virtual void update () {}
virtual void postUpdate () { updateFlag = 1; }
#if VST_2_1_EXTENSIONS
virtual long onKeyDown (VstKeyCode &keyCode) { keyCode = keyCode; return -1; }
virtual long onKeyUp (VstKeyCode &keyCode) { keyCode = keyCode; return -1; }
virtual long setKnobMode (int val) { return 0; };
virtual bool onWheel (float distance) { return false; };
#endif
protected:
AEffEditor () {};
AudioEffect *effect;
void *systemWindow;
long updateFlag;
};
#endif // __AEffEditor__
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------