Support for C98 and C++98
This omits the definition for vst_host_supports_t and vst_effect_supports_t if the compiler doesn't support it. I may replace these with #define's in the future for universal compiler support.
This commit is contained in:
@@ -19,9 +19,9 @@
|
|||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Please refer to README.md and LICENSE for further information.
|
/* Please refer to README.md and LICENSE for further information. */
|
||||||
|
|
||||||
// Protect against double inclusion in practically every compiler available.
|
/* Protect against double inclusion in practically every compiler available. */
|
||||||
#pragma once
|
#pragma once
|
||||||
#ifndef VST2SDK_VST_H
|
#ifndef VST2SDK_VST_H
|
||||||
/** @private */
|
/** @private */
|
||||||
@@ -101,7 +101,7 @@ enum VST_STATUS {
|
|||||||
/** @sa VST_STATUS_m1 */
|
/** @sa VST_STATUS_m1 */
|
||||||
VST_STATUS_NO = -1,
|
VST_STATUS_NO = -1,
|
||||||
|
|
||||||
_VST_STATUS_PAD = 0xFFFFFFFFul,
|
_VST_STATUS_PAD = (-1l)
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Known Buffer Sizes
|
/** Known Buffer Sizes
|
||||||
@@ -118,8 +118,8 @@ enum VST_BUFFER_SIZE {
|
|||||||
VST_BUFFER_SIZE_PRODUCT_NAME = 64,
|
VST_BUFFER_SIZE_PRODUCT_NAME = 64,
|
||||||
VST_BUFFER_SIZE_SPEAKER_NAME = 64,
|
VST_BUFFER_SIZE_SPEAKER_NAME = 64,
|
||||||
VST_BUFFER_SIZE_STREAM_NAME = 64,
|
VST_BUFFER_SIZE_STREAM_NAME = 64,
|
||||||
VST_BUFFER_SIZE_VENDOR_NAME = 64,
|
VST_BUFFER_SIZE_VENDOR_NAME = 64
|
||||||
}; // This is an enum because I started to dislike macros.
|
};
|
||||||
|
|
||||||
/** Valid VST 1.x and 2.x versions
|
/** Valid VST 1.x and 2.x versions
|
||||||
* The format is either a single digit or four digits in Base10 format.
|
* The format is either a single digit or four digits in Base10 format.
|
||||||
@@ -139,18 +139,33 @@ enum VST_BUFFER_SIZE {
|
|||||||
* @endcode
|
* @endcode
|
||||||
*/
|
*/
|
||||||
enum VST_VERSION {
|
enum VST_VERSION {
|
||||||
VST_VERSION_1 = 0, // Anything before 2.0, used by official plug-ins.
|
/** Private SDK Version 1.0
|
||||||
VST_VERSION_1_0_0_0 = 1000, // 1.0, used by some third-party plug-ins.
|
*
|
||||||
VST_VERSION_1_1_0_0 = 1100, // 1.1, used by some third-party plug-ins.
|
* Many types likely won't quite match up with what we expect.
|
||||||
VST_VERSION_2 = 2, // 2.0, used by official plug-ins.
|
*/
|
||||||
VST_VERSION_2_0_0_0 = 2000, // 2.0, used by some third-party plug-ins.
|
VST_VERSION_1 = 0,
|
||||||
VST_VERSION_2_1_0_0 = 2100, // 2.1
|
/** SDK Version 1.0. */
|
||||||
VST_VERSION_2_2_0_0 = 2200, // 2.2
|
VST_VERSION_1_0_0_0 = 1000,
|
||||||
VST_VERSION_2_3_0_0 = 2300, // 2.3
|
/** SDK Version 1.1. */
|
||||||
VST_VERSION_2_4_0_0 = 2400, // 2.4
|
VST_VERSION_1_1_0_0 = 1100,
|
||||||
|
/** Private SDK Version 2.0
|
||||||
|
*
|
||||||
|
* Many types likely won't quite match up with what we expect.
|
||||||
|
*/
|
||||||
|
VST_VERSION_2 = 2,
|
||||||
|
/** SDK Version 2.0 */
|
||||||
|
VST_VERSION_2_0_0_0 = 2000,
|
||||||
|
/** SDK Version 2.1 */
|
||||||
|
VST_VERSION_2_1_0_0 = 2100,
|
||||||
|
/** SDK Version 2.2 */
|
||||||
|
VST_VERSION_2_2_0_0 = 2200,
|
||||||
|
/** SDK Version 2.3 */
|
||||||
|
VST_VERSION_2_3_0_0 = 2300,
|
||||||
|
/** SDK Version 2.4 */
|
||||||
|
VST_VERSION_2_4_0_0 = 2400,
|
||||||
|
|
||||||
// Pad to force 32-bit number.
|
/* @private Pad to 32-bit. */
|
||||||
_VST_VERSION_PAD = 0xFFFFFFFFul,
|
_VST_VERSION_PAD = (-1l)
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Window/Editor Rectangle.
|
/** Window/Editor Rectangle.
|
||||||
@@ -179,7 +194,7 @@ enum VST_VKEY {
|
|||||||
VST_VKEY_03 = 3,
|
VST_VKEY_03 = 3,
|
||||||
|
|
||||||
VST_VKEY_04 = 4,
|
VST_VKEY_04 = 4,
|
||||||
VST_VKEY_RETURN = 4, // The big one left of the arrow keys.
|
VST_VKEY_RETURN = 4,
|
||||||
|
|
||||||
VST_VKEY_05 = 5,
|
VST_VKEY_05 = 5,
|
||||||
VST_VKEY_PAUSE = 5,
|
VST_VKEY_PAUSE = 5,
|
||||||
@@ -324,13 +339,13 @@ enum VST_VKEY {
|
|||||||
VST_VKEY_SCROLLLOCK = 53,
|
VST_VKEY_SCROLLLOCK = 53,
|
||||||
|
|
||||||
VST_VKEY_54 = 54,
|
VST_VKEY_54 = 54,
|
||||||
VST_VKEY_SHIFT = 54, // Left or Right
|
VST_VKEY_SHIFT = 54,
|
||||||
|
|
||||||
VST_VKEY_55 = 55,
|
VST_VKEY_55 = 55,
|
||||||
VST_VKEY_CONTROL = 55, // Left or Right
|
VST_VKEY_CONTROL = 55,
|
||||||
|
|
||||||
VST_VKEY_56 = 56,
|
VST_VKEY_56 = 56,
|
||||||
VST_VKEY_ALT = 56, // Left or Right
|
VST_VKEY_ALT = 56,
|
||||||
|
|
||||||
VST_VKEY_57 = 57,
|
VST_VKEY_57 = 57,
|
||||||
VST_VKEY_58 = 58,
|
VST_VKEY_58 = 58,
|
||||||
@@ -344,7 +359,7 @@ enum VST_VKEY {
|
|||||||
VST_VKEY_66 = 66,
|
VST_VKEY_66 = 66,
|
||||||
VST_VKEY_67 = 67,
|
VST_VKEY_67 = 67,
|
||||||
VST_VKEY_68 = 68,
|
VST_VKEY_68 = 68,
|
||||||
VST_VKEY_69 = 69,
|
VST_VKEY_69 = 69
|
||||||
};
|
};
|
||||||
|
|
||||||
enum VST_VKEY_MODIFIER {
|
enum VST_VKEY_MODIFIER {
|
||||||
@@ -372,12 +387,12 @@ enum VST_VKEY_MODIFIER {
|
|||||||
*/
|
*/
|
||||||
VST_VKEY_MODIFIER_1ls3 = 1 << 3,
|
VST_VKEY_MODIFIER_1ls3 = 1 << 3,
|
||||||
/** @sa VST_VKEY_MODIFIER_1ls3 */
|
/** @sa VST_VKEY_MODIFIER_1ls3 */
|
||||||
VST_VKEY_MODIFIER_CONTROL = 1 << 3,
|
VST_VKEY_MODIFIER_CONTROL = 1 << 3
|
||||||
};
|
};
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------------------------------------
|
/*------------------------------------------------------------------------------------------------------------------------*/
|
||||||
// VST Parameters
|
/* VST Parameters */
|
||||||
//------------------------------------------------------------------------------------------------------------------------
|
/*------------------------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/** Flags for parameters.
|
/** Flags for parameters.
|
||||||
* @sa vst_parameter_properties_t
|
* @sa vst_parameter_properties_t
|
||||||
@@ -439,7 +454,7 @@ enum VST_PARAMETER_FLAG {
|
|||||||
/** @sa VST_PARAMETER_FLAG_1ls6 */
|
/** @sa VST_PARAMETER_FLAG_1ls6 */
|
||||||
VST_PARAMETER_FLAG_RAMPING = 1 << 6,
|
VST_PARAMETER_FLAG_RAMPING = 1 << 6,
|
||||||
|
|
||||||
_VST_PARAMETER_FLAG_PAD = 0xFFFFFFFFul,
|
_VST_PARAMETER_FLAG_PAD = (-1l)
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Information about a parameter.
|
/** Information about a parameter.
|
||||||
@@ -540,7 +555,8 @@ struct vst_parameter_properties_t {
|
|||||||
*/
|
*/
|
||||||
uint16_t num_parameters_in_category;
|
uint16_t num_parameters_in_category;
|
||||||
|
|
||||||
uint16_t _unknown_00; // Must be set to 0.
|
/** @private Must be zero anyway. */
|
||||||
|
uint16_t _unknown_00;
|
||||||
|
|
||||||
/** Human-readable name for the category this parameter is in.
|
/** Human-readable name for the category this parameter is in.
|
||||||
*
|
*
|
||||||
@@ -549,38 +565,38 @@ struct vst_parameter_properties_t {
|
|||||||
*/
|
*/
|
||||||
char category_label[VST_BUFFER_SIZE_CATEGORY_LABEL];
|
char category_label[VST_BUFFER_SIZE_CATEGORY_LABEL];
|
||||||
|
|
||||||
char _reserved[16]; // Reserved for future expansions?
|
/** @private Reserved for future expansion? */
|
||||||
|
char _reserved[16];
|
||||||
};
|
};
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------------------------------------
|
/*------------------------------------------------------------------------------------------------------------------------*/
|
||||||
// VST Input Microphones/Output Speakers
|
/* VST Input Microphones/Output Speakers */
|
||||||
//------------------------------------------------------------------------------------------------------------------------
|
/*------------------------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/** Default speaker types.
|
/** Default speaker types.
|
||||||
*
|
*
|
||||||
* @todo Are there more?
|
* @todo Are there more?
|
||||||
*/
|
*/
|
||||||
enum VST_SPEAKER_TYPE {
|
enum VST_SPEAKER_TYPE {
|
||||||
// Default Types
|
/** Mono */
|
||||||
VST_SPEAKER_TYPE_MONO = 0,
|
VST_SPEAKER_TYPE_MONO = 0,
|
||||||
|
/** (Front) Left */
|
||||||
VST_SPEAKER_TYPE_LEFT = 1,
|
VST_SPEAKER_TYPE_LEFT = 1,
|
||||||
|
/** (Front) Right */
|
||||||
VST_SPEAKER_TYPE_RIGHT = 2,
|
VST_SPEAKER_TYPE_RIGHT = 2,
|
||||||
|
/** (Front) Center */
|
||||||
VST_SPEAKER_TYPE_CENTER = 3,
|
VST_SPEAKER_TYPE_CENTER = 3,
|
||||||
|
/** LFE / Subwoofer */
|
||||||
VST_SPEAKER_TYPE_LFE = 4,
|
VST_SPEAKER_TYPE_LFE = 4,
|
||||||
VST_SPEAKER_TYPE_LEFT_REAR = 5, // Rear/Surround Left
|
/** Rear/Surround Left */
|
||||||
VST_SPEAKER_TYPE_RIGHT_REAR = 6, // Rear/Surround Right
|
VST_SPEAKER_TYPE_LEFT_REAR = 5,
|
||||||
// 7
|
/** Rear/Surround Right */
|
||||||
// 8
|
VST_SPEAKER_TYPE_RIGHT_REAR = 6,
|
||||||
// 9
|
/** Side Left */
|
||||||
VST_SPEAKER_TYPE_LEFT_SIDE = 10, // Side Left
|
VST_SPEAKER_TYPE_LEFT_SIDE = 10,
|
||||||
VST_SPEAKER_TYPE_RIGHT_SIDE = 11, // Side Right
|
/** Side Right */
|
||||||
// 12
|
VST_SPEAKER_TYPE_RIGHT_SIDE = 11,
|
||||||
// 13
|
|
||||||
// 14
|
|
||||||
// 15
|
|
||||||
// ...
|
|
||||||
|
|
||||||
// User Types (seen rarely, but never exceeds -32)
|
|
||||||
VST_SPEAKER_TYPE_USER_32 = -32,
|
VST_SPEAKER_TYPE_USER_32 = -32,
|
||||||
VST_SPEAKER_TYPE_USER_31,
|
VST_SPEAKER_TYPE_USER_31,
|
||||||
VST_SPEAKER_TYPE_USER_30,
|
VST_SPEAKER_TYPE_USER_30,
|
||||||
@@ -615,8 +631,8 @@ enum VST_SPEAKER_TYPE {
|
|||||||
VST_SPEAKER_TYPE_USER_01,
|
VST_SPEAKER_TYPE_USER_01,
|
||||||
|
|
||||||
|
|
||||||
// Pad to force 32-bit number.
|
/* @private Pad to 32-bit. */
|
||||||
_VST_SPEAKER_TYPE_PAD = 0xFFFFFFFFul,
|
_VST_SPEAKER_TYPE_PAD = (-1l)
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Speaker properties.
|
/** Speaker properties.
|
||||||
@@ -643,7 +659,8 @@ struct vst_speaker_properties_t {
|
|||||||
*/
|
*/
|
||||||
float distance;
|
float distance;
|
||||||
|
|
||||||
float _unknown_00; // Must be set to 0
|
/** @private Must be zero. */
|
||||||
|
float _unknown_00;
|
||||||
|
|
||||||
/** Human readable name for this speaker.
|
/** Human readable name for this speaker.
|
||||||
*
|
*
|
||||||
@@ -661,7 +678,8 @@ struct vst_speaker_properties_t {
|
|||||||
*/
|
*/
|
||||||
int32_t type;
|
int32_t type;
|
||||||
|
|
||||||
uint8_t _reserved[28]; // Reserved for future expansions?
|
/** @private Reserved for future expansion? */
|
||||||
|
uint8_t _reserved[28];
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Known default speaker arrangements.
|
/** Known default speaker arrangements.
|
||||||
@@ -709,8 +727,8 @@ enum VST_SPEAKER_ARRANGEMENT_TYPE {
|
|||||||
*/
|
*/
|
||||||
VST_SPEAKER_ARRANGEMENT_TYPE_7_1 = 0x17,
|
VST_SPEAKER_ARRANGEMENT_TYPE_7_1 = 0x17,
|
||||||
|
|
||||||
// Pad to force 32-bit number.
|
/* @private Pad to 32-bit. */
|
||||||
_VST_SPEAKER_ARRANGEMENT_TYPE_PAD = 0xFFFFFFFFul,
|
_VST_SPEAKER_ARRANGEMENT_TYPE_PAD = (-1l)
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Speaker arrangement definition.
|
/** Speaker arrangement definition.
|
||||||
@@ -725,7 +743,7 @@ struct vst_speaker_arrangement_t {
|
|||||||
*
|
*
|
||||||
* Appears to be limited to @ref VST_MAX_CHANNELS.
|
* Appears to be limited to @ref VST_MAX_CHANNELS.
|
||||||
*/
|
*/
|
||||||
int32_t channels; // Number of channels in this arrangement.
|
int32_t channels;
|
||||||
|
|
||||||
/** Array of @ref vst_speaker_properties_t with size @ref channels.
|
/** Array of @ref vst_speaker_properties_t with size @ref channels.
|
||||||
*
|
*
|
||||||
@@ -734,9 +752,9 @@ struct vst_speaker_arrangement_t {
|
|||||||
struct vst_speaker_properties_t speakers[VST_MAX_CHANNELS];
|
struct vst_speaker_properties_t speakers[VST_MAX_CHANNELS];
|
||||||
};
|
};
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------------------------------------
|
/*------------------------------------------------------------------------------------------------------------------------*/
|
||||||
// VST Input/Output Streams
|
/* VST Input/Output Streams */
|
||||||
//------------------------------------------------------------------------------------------------------------------------
|
/*------------------------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
enum VST_STREAM_FLAG {
|
enum VST_STREAM_FLAG {
|
||||||
/** Ignored?
|
/** Ignored?
|
||||||
@@ -755,7 +773,7 @@ enum VST_STREAM_FLAG {
|
|||||||
* Can't be used with VST_STREAM_FLAG_STEREO.
|
* Can't be used with VST_STREAM_FLAG_STEREO.
|
||||||
*/
|
*/
|
||||||
VST_STREAM_FLAG_1ls2 = 1 << 2,
|
VST_STREAM_FLAG_1ls2 = 1 << 2,
|
||||||
VST_STREAM_FLAG_USE_TYPE = 1 << 2,
|
VST_STREAM_FLAG_USE_TYPE = 1 << 2
|
||||||
};
|
};
|
||||||
|
|
||||||
struct vst_stream_properties_t {
|
struct vst_stream_properties_t {
|
||||||
@@ -777,12 +795,13 @@ struct vst_stream_properties_t {
|
|||||||
*/
|
*/
|
||||||
char label[VST_BUFFER_SIZE_STREAM_LABEL];
|
char label[VST_BUFFER_SIZE_STREAM_LABEL];
|
||||||
|
|
||||||
uint8_t _reserved[48]; // 48 bytes of uninitialized data, always.
|
/** @private Reserved for future expansion? */
|
||||||
|
uint8_t _reserved[48];
|
||||||
};
|
};
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------------------------------------
|
/*------------------------------------------------------------------------------------------------------------------------*/
|
||||||
// VST Events
|
/* VST Events */
|
||||||
//------------------------------------------------------------------------------------------------------------------------
|
/*------------------------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/** Available event types.
|
/** Available event types.
|
||||||
*
|
*
|
||||||
@@ -814,7 +833,7 @@ enum VST_EVENT_TYPE {
|
|||||||
* Allows casting @ref vst_event_t to @ref vst_event_midi_sysex_t.
|
* Allows casting @ref vst_event_t to @ref vst_event_midi_sysex_t.
|
||||||
* See: https://blog.landr.com/midi-sysex/
|
* See: https://blog.landr.com/midi-sysex/
|
||||||
*/
|
*/
|
||||||
VST_EVENT_TYPE_MIDI_SYSEX = 5,
|
VST_EVENT_TYPE_MIDI_SYSEX = 5
|
||||||
};
|
};
|
||||||
|
|
||||||
/** A generic event.
|
/** A generic event.
|
||||||
@@ -905,8 +924,8 @@ union vst_event_midi_t {
|
|||||||
*/
|
*/
|
||||||
int8_t velocity;
|
int8_t velocity;
|
||||||
|
|
||||||
/** @private */
|
/** @private Padding */
|
||||||
char _pad[2]; // Padding
|
char _pad_01[2];
|
||||||
} midi;
|
} midi;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -972,11 +991,12 @@ struct vst_events_t {
|
|||||||
struct vst_event_t** events;
|
struct vst_event_t** events;
|
||||||
};
|
};
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------------------------------------
|
/*------------------------------------------------------------------------------------------------------------------------*/
|
||||||
// VST Host related Things
|
/* VST Host related Things */
|
||||||
//------------------------------------------------------------------------------------------------------------------------
|
/*------------------------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
struct vst_effect_t; // Pre-define vst_effect_t so we can use it below.
|
/* Pre-define vst_effect_t so we can use it below. */
|
||||||
|
struct vst_effect_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @sa VST_HOST_OPCODE_ACTIVE_THREAD
|
* @sa VST_HOST_OPCODE_ACTIVE_THREAD
|
||||||
@@ -1008,7 +1028,7 @@ enum VST_HOST_ACTIVE_THREAD {
|
|||||||
/** @private */
|
/** @private */
|
||||||
VST_HOST_ACTIVE_THREAD_MAX,
|
VST_HOST_ACTIVE_THREAD_MAX,
|
||||||
/** @private */
|
/** @private */
|
||||||
_VST_HOST_ACTIVE_THREAD_PAD = 0xFFFFFFFFul,
|
_VST_HOST_ACTIVE_THREAD_PAD = (-1l)
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Plug-in to Host Op-Codes
|
/** Plug-in to Host Op-Codes
|
||||||
@@ -1024,7 +1044,7 @@ enum VST_HOST_OPCODE {
|
|||||||
* @param p_float Parameter Value
|
* @param p_float Parameter Value
|
||||||
* @return Expected to return... something.
|
* @return Expected to return... something.
|
||||||
*/
|
*/
|
||||||
VST_HOST_OPCODE_00 = 0x00, // cb(vst, 0x00, ?, 0, 0);
|
VST_HOST_OPCODE_00 = 0x00,
|
||||||
/** @sa VST_HOST_OPCODE_00 */
|
/** @sa VST_HOST_OPCODE_00 */
|
||||||
VST_HOST_OPCODE_AUTOMATE = 0x00,
|
VST_HOST_OPCODE_AUTOMATE = 0x00,
|
||||||
/** @sa VST_HOST_OPCODE_00 */
|
/** @sa VST_HOST_OPCODE_00 */
|
||||||
@@ -1044,7 +1064,7 @@ enum VST_HOST_OPCODE {
|
|||||||
*
|
*
|
||||||
* @return The currently selected unique effect id in this container.
|
* @return The currently selected unique effect id in this container.
|
||||||
*/
|
*/
|
||||||
VST_HOST_OPCODE_02 = 0x02, // bool cb(0, 0x02, 0, 0, 0);
|
VST_HOST_OPCODE_02 = 0x02,
|
||||||
/** @sa VST_HOST_OPCODE_02 */
|
/** @sa VST_HOST_OPCODE_02 */
|
||||||
VST_HOST_OPCODE_CURRENT_EFFECT_ID = 0x02,
|
VST_HOST_OPCODE_CURRENT_EFFECT_ID = 0x02,
|
||||||
|
|
||||||
@@ -1059,9 +1079,9 @@ enum VST_HOST_OPCODE {
|
|||||||
/** @todo */
|
/** @todo */
|
||||||
VST_HOST_OPCODE_04 = 0x04,
|
VST_HOST_OPCODE_04 = 0x04,
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------------- */
|
||||||
// VST 2.x starts here.
|
/* VST 2.0 */
|
||||||
//--------------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/** @todo */
|
/** @todo */
|
||||||
VST_HOST_OPCODE_05 = 0x05,
|
VST_HOST_OPCODE_05 = 0x05,
|
||||||
@@ -1339,9 +1359,9 @@ enum VST_HOST_OPCODE {
|
|||||||
/** @sa VST_HOST_OPCODE_2A */
|
/** @sa VST_HOST_OPCODE_2A */
|
||||||
VST_HOST_OPCODE_REFRESH = 0x2A,
|
VST_HOST_OPCODE_REFRESH = 0x2A,
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------------*/
|
||||||
// VST 2.1
|
/* VST 2.1 */
|
||||||
//--------------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/** Notify host that a parameter is being edited.
|
/** Notify host that a parameter is being edited.
|
||||||
* "Locks" the parameter from being edited in compatible hosts.
|
* "Locks" the parameter from being edited in compatible hosts.
|
||||||
@@ -1374,9 +1394,9 @@ enum VST_HOST_OPCODE {
|
|||||||
*/
|
*/
|
||||||
VST_HOST_OPCODE_2D = 0x2D,
|
VST_HOST_OPCODE_2D = 0x2D,
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------------*/
|
||||||
// VST 2.2
|
/* VST 2.2 */
|
||||||
//--------------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/** Crash the host depending on what p_ptr is pointing at.
|
/** Crash the host depending on what p_ptr is pointing at.
|
||||||
* @todo
|
* @todo
|
||||||
@@ -1401,9 +1421,9 @@ enum VST_HOST_OPCODE {
|
|||||||
*/
|
*/
|
||||||
VST_HOST_OPCODE_30 = 0x30,
|
VST_HOST_OPCODE_30 = 0x30,
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------------*/
|
||||||
// VST 2.3
|
/* VST 2.3 */
|
||||||
//--------------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/** Retrieve the hosts input speaker arrangement.
|
/** Retrieve the hosts input speaker arrangement.
|
||||||
* Seems to always reply with the data provided in @ref VST_EFFECT_OPCODE_GET_SPEAKER_ARRANGEMENT p_int2.
|
* Seems to always reply with the data provided in @ref VST_EFFECT_OPCODE_GET_SPEAKER_ARRANGEMENT p_int2.
|
||||||
@@ -1426,9 +1446,10 @@ enum VST_HOST_OPCODE {
|
|||||||
VST_HOST_OPCODE_MAX,
|
VST_HOST_OPCODE_MAX,
|
||||||
|
|
||||||
/** @private Force as 32-bit unsigned integer in compatible compilers. */
|
/** @private Force as 32-bit unsigned integer in compatible compilers. */
|
||||||
_VST_HOST_OPCODE_PAD = 0xFFFFFFFFul,
|
_VST_HOST_OPCODE_PAD = (-1l)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if (__STDC_VERSION__ >= 199901L) || (__cplusplus >= 202002L)
|
||||||
/** Plug-in to Host support checks
|
/** Plug-in to Host support checks
|
||||||
*
|
*
|
||||||
* Provided as `char* p_ptr` in the VST_EFFECT_OPCODE_SUPPORTS op code.
|
* Provided as `char* p_ptr` in the VST_EFFECT_OPCODE_SUPPORTS op code.
|
||||||
@@ -1547,6 +1568,7 @@ struct vst_host_supports_t {
|
|||||||
.openFileSelector = "openFileSelector",
|
.openFileSelector = "openFileSelector",
|
||||||
.closeFileSelector = "closeFileSelector",
|
.closeFileSelector = "closeFileSelector",
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
/** Plug-in to Host callback
|
/** Plug-in to Host callback
|
||||||
*
|
*
|
||||||
@@ -1770,7 +1792,7 @@ enum VST_EFFECT_CATEGORY {
|
|||||||
VST_EFFECT_CATEGORY_MAX, // Not part of specification, marks maximum category.
|
VST_EFFECT_CATEGORY_MAX, // Not part of specification, marks maximum category.
|
||||||
|
|
||||||
/** @private */
|
/** @private */
|
||||||
_VST_EFFECT_CATEGORY_PAD = 0xFFFFFFFFul,
|
_VST_EFFECT_CATEGORY_PAD = (-1l)
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Effect Flags
|
/** Effect Flags
|
||||||
@@ -1857,7 +1879,7 @@ enum VST_EFFECT_FLAG {
|
|||||||
*/
|
*/
|
||||||
VST_EFFECT_FLAG_1ls12 = 1 << 12,
|
VST_EFFECT_FLAG_1ls12 = 1 << 12,
|
||||||
/** @sa VST_EFFECT_FLAG_1ls12 */
|
/** @sa VST_EFFECT_FLAG_1ls12 */
|
||||||
VST_EFFECT_FLAG_SUPPORTS_DOUBLE = 1 << 12,
|
VST_EFFECT_FLAG_SUPPORTS_DOUBLE = 1 << 12
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Host to Plug-in Op-Codes
|
/** Host to Plug-in Op-Codes
|
||||||
@@ -2739,14 +2761,17 @@ enum VST_EFFECT_OPCODE {
|
|||||||
VST_EFFECT_OPCODE_MAX,
|
VST_EFFECT_OPCODE_MAX,
|
||||||
|
|
||||||
/** @private Force as 32-bit unsigned integer in compatible compilers. */
|
/** @private Force as 32-bit unsigned integer in compatible compilers. */
|
||||||
_VST_EFFECT_OPCODE_PAD = 0xFFFFFFFFul,
|
_VST_EFFECT_OPCODE_PAD = (-1l)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if (__STDC_VERSION__ >= 199901L) || (__cplusplus >= 202002L)
|
||||||
/** Host to Plug-in support checks
|
/** Host to Plug-in support checks
|
||||||
*
|
*
|
||||||
* Provided as `char* p_ptr` in the VST_EFFECT_OPCODE_SUPPORTS op code.
|
* Provided as `char* p_ptr` in the VST_EFFECT_OPCODE_SUPPORTS op code.
|
||||||
*
|
*
|
||||||
* Harvested via strings command and just checking what plug-ins actually responded to.
|
* Harvested via strings command and just checking what plug-ins actually responded to.
|
||||||
|
*
|
||||||
|
* @important These are only available with a C99 or a C++20 or newer compiler.
|
||||||
*/
|
*/
|
||||||
struct vst_effect_supports_t {
|
struct vst_effect_supports_t {
|
||||||
/** Effect supports alternative bypass.
|
/** Effect supports alternative bypass.
|
||||||
@@ -2852,6 +2877,7 @@ struct vst_effect_supports_t {
|
|||||||
._8in4out = "8in4out",
|
._8in4out = "8in4out",
|
||||||
._8in8out = "8in8out",
|
._8in8out = "8in8out",
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
/** Control the VST through an opcode and up to four parameters.
|
/** Control the VST through an opcode and up to four parameters.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user