mirror of
https://github.com/airwindows/airwindows.git
synced 2026-05-21 06:46:21 -06:00
61 lines
3 KiB
C++
Executable file
61 lines
3 KiB
C++
Executable file
//-------------------------------------------------------------------------------------------------------
|
|
// VST Plug-Ins SDK
|
|
// Version 2.4 $Date: 2006/01/12 09:05:31 $
|
|
//
|
|
// Category : VST 2.x Classes
|
|
// Filename : aeffeditor.h
|
|
// Created by : Steinberg Media Technologies
|
|
// Description : Editor Class for VST Plug-Ins
|
|
//
|
|
// © 2006, Steinberg Media Technologies, All Rights Reserved
|
|
//-------------------------------------------------------------------------------------------------------
|
|
|
|
#ifndef __aeffeditor__
|
|
#define __aeffeditor__
|
|
|
|
#include "audioeffectx.h"
|
|
|
|
//-------------------------------------------------------------------------------------------------------
|
|
/** VST Effect Editor class. */
|
|
//-------------------------------------------------------------------------------------------------------
|
|
class AEffEditor
|
|
{
|
|
public:
|
|
//-------------------------------------------------------------------------------------------------------
|
|
AEffEditor (AudioEffect* effect = 0) ///< Editor class constructor. Requires pointer to associated effect instance.
|
|
: effect (effect)
|
|
, systemWindow (0)
|
|
{}
|
|
|
|
virtual ~AEffEditor () ///< Editor class destructor.
|
|
{}
|
|
|
|
virtual AudioEffect* getEffect () { return effect; } ///< Returns associated effect instance
|
|
virtual bool getRect (ERect** rect) { *rect = 0; return false; } ///< Query editor size as #ERect
|
|
virtual bool open (void* ptr) { systemWindow = ptr; return 0; } ///< Open editor, pointer to parent windows is platform-dependent (HWND on Windows, WindowRef on Mac).
|
|
virtual void close () { systemWindow = 0; } ///< Close editor (detach from parent window)
|
|
virtual bool isOpen () { return systemWindow != 0; } ///< Returns true if editor is currently open
|
|
virtual void idle () {} ///< Idle call supplied by Host application
|
|
|
|
#if TARGET_API_MAC_CARBON
|
|
virtual void DECLARE_VST_DEPRECATED (draw) (ERect* rect) {}
|
|
virtual VstInt32 DECLARE_VST_DEPRECATED (mouse) (VstInt32 x, VstInt32 y) { return 0; }
|
|
virtual VstInt32 DECLARE_VST_DEPRECATED (key) (VstInt32 keyCode) { return 0; }
|
|
virtual void DECLARE_VST_DEPRECATED (top) () {}
|
|
virtual void DECLARE_VST_DEPRECATED (sleep) () {}
|
|
#endif
|
|
|
|
#if VST_2_1_EXTENSIONS
|
|
virtual bool onKeyDown (VstKeyCode& keyCode) { return false; } ///< Receive key down event. Return true only if key was really used!
|
|
virtual bool onKeyUp (VstKeyCode& keyCode) { return false; } ///< Receive key up event. Return true only if key was really used!
|
|
virtual bool onWheel (float distance) { return false; } ///< Handle mouse wheel event, distance is positive or negative to indicate wheel direction.
|
|
virtual bool setKnobMode (VstInt32 val) { return false; } ///< Set knob mode (if supported by Host). See CKnobMode in VSTGUI.
|
|
#endif
|
|
|
|
//-------------------------------------------------------------------------------------------------------
|
|
protected:
|
|
AudioEffect* effect; ///< associated effect instance
|
|
void* systemWindow; ///< platform-dependent parent window (HWND or WindowRef)
|
|
};
|
|
|
|
#endif // __aeffeditor__
|