|
|
@@ -1,9 +1,18 @@ |
|
|
|
/* |
|
|
|
* aeffectx.h - simple header to allow VeSTige compilation and eventually work |
|
|
|
* IMPORTANT: The author of Carla has no connection with the |
|
|
|
* author of the VeSTige VST-compatibility header, has had no |
|
|
|
* involvement in its creation. |
|
|
|
* |
|
|
|
* Copyright (c) 2006 Javier Serrano Polo <jasp00/at/users.sourceforge.net> |
|
|
|
* The VeSTige header is included in this package in the good-faith |
|
|
|
* belief that it has been cleanly and legally reverse engineered |
|
|
|
* without reference to the official VST SDK and without its |
|
|
|
* developer(s) having agreed to the VST SDK license agreement. |
|
|
|
*/ |
|
|
|
|
|
|
|
/* |
|
|
|
* simple header to allow VeSTige compilation and eventually work |
|
|
|
* |
|
|
|
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net |
|
|
|
* Copyright (c) 2006 Javier Serrano Polo <jasp00/at/users.sourceforge.net> |
|
|
|
* |
|
|
|
* This program is free software; you can redistribute it and/or |
|
|
|
* modify it under the terms of the GNU General Public |
|
|
@@ -22,8 +31,8 @@ |
|
|
|
* |
|
|
|
*/ |
|
|
|
#include <stdint.h> |
|
|
|
#ifndef _AEFFECTX_H |
|
|
|
#define _AEFFECTX_H |
|
|
|
#ifndef _VESTIGE_H |
|
|
|
#define _VESTIGE_H |
|
|
|
|
|
|
|
#define CCONST(a, b, c, d)( ( ( (int) a ) << 24 ) | \ |
|
|
|
( ( (int) b ) << 16 ) | \ |
|
|
@@ -87,11 +96,11 @@ |
|
|
|
#define effFlagsIsSynth (1 << 8) // currently unused |
|
|
|
|
|
|
|
#define effOpen 0 |
|
|
|
#define effClose 1 // currently unused |
|
|
|
#define effSetProgram 2 // currently unused |
|
|
|
#define effGetProgram 3 // currently unused |
|
|
|
#define effGetProgramName 5 // currently unused |
|
|
|
#define effGetParamName 8 // currently unused |
|
|
|
#define effClose 1 |
|
|
|
#define effSetProgram 2 |
|
|
|
#define effGetProgram 3 |
|
|
|
#define effGetProgramName 5 |
|
|
|
#define effGetParamName 8 |
|
|
|
#define effSetSampleRate 10 |
|
|
|
#define effSetBlockSize 11 |
|
|
|
#define effMainsChanged 12 |
|
|
@@ -101,21 +110,16 @@ |
|
|
|
#define effEditIdle 19 |
|
|
|
#define effEditTop 20 |
|
|
|
#define effProcessEvents 25 |
|
|
|
// the next one from http://asseca.com/vst-24-specs/index.html |
|
|
|
#define effGetPlugCategory 35 |
|
|
|
#define effGetEffectName 45 |
|
|
|
#define effGetVendorString 47 |
|
|
|
#define effGetProductString 48 |
|
|
|
#define effGetVendorVersion 49 |
|
|
|
#define effCanDo 51 // currently unused |
|
|
|
/* from http://asseca.com/vst-24-specs/efIdle.html */ |
|
|
|
#define effCanDo 51 |
|
|
|
#define effIdle 53 |
|
|
|
/* from http://asseca.com/vst-24-specs/efGetParameterProperties.html */ |
|
|
|
#define effGetParameterProperties 56 |
|
|
|
#define effGetVstVersion 58 // currently unused |
|
|
|
/* http://asseca.com/vst-24-specs/efShellGetNextPlugin.html */ |
|
|
|
#define effGetVstVersion 58 |
|
|
|
#define effShellGetNextPlugin 70 |
|
|
|
/* The next two were gleaned from http://www.kvraudio.com/forum/printview.php?t=143587&start=0 */ |
|
|
|
#define effStartProcess 71 |
|
|
|
#define effStopProcess 72 |
|
|
|
|
|
|
@@ -135,7 +139,13 @@ |
|
|
|
|
|
|
|
struct RemoteVstPlugin; |
|
|
|
|
|
|
|
#define kVstTransportChanged 1 |
|
|
|
#define kVstTransportPlaying (1 << 1) |
|
|
|
#define kVstTransportCycleActive (1 << 2) |
|
|
|
#define kVstTransportRecording (1 << 3) |
|
|
|
|
|
|
|
#define kVstAutomationWriting (1 << 6) |
|
|
|
#define kVstAutomationReading (1 << 7) |
|
|
|
|
|
|
|
#define kVstNanosValid (1 << 8) |
|
|
|
#define kVstPpqPosValid (1 << 9) |
|
|
@@ -190,11 +200,9 @@ struct _VstEvents |
|
|
|
// 04 |
|
|
|
void *reserved; |
|
|
|
// 08 |
|
|
|
VstEvent * events[]; |
|
|
|
VstEvent * events[2]; |
|
|
|
}; |
|
|
|
|
|
|
|
/* constants from http://www.rawmaterialsoftware.com/juceforum/viewtopic.php?t=3740&sid=183f74631fee71a493316735e2b9f28b */ |
|
|
|
|
|
|
|
enum Vestige2StringConstants |
|
|
|
{ |
|
|
|
VestigeMaxNameLen = 64, |
|
|
@@ -205,8 +213,6 @@ enum Vestige2StringConstants |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/* constants from http://asseca.com/vst-24-specs/efGetPlugCategory.html */ |
|
|
|
|
|
|
|
enum VstPlugCategory |
|
|
|
{ |
|
|
|
kPlugCategUnknown = 0, |
|
|
@@ -226,7 +232,6 @@ enum VstPlugCategory |
|
|
|
|
|
|
|
typedef struct _VstEvents VstEvents; |
|
|
|
|
|
|
|
/* this struct taken from http://asseca.com/vst-24-specs/efGetParameterProperties.html */ |
|
|
|
struct _VstParameterProperties |
|
|
|
{ |
|
|
|
float stepFloat; /* float step */ |
|
|
@@ -249,7 +254,6 @@ struct _VstParameterProperties |
|
|
|
|
|
|
|
typedef struct _VstParameterProperties VstParameterProperties; |
|
|
|
|
|
|
|
/* this enum taken from http://asseca.com/vst-24-specs/efGetParameterProperties.html */ |
|
|
|
enum VstParameterFlags |
|
|
|
{ |
|
|
|
kVstParameterIsSwitch = 1 << 0, /* parameter is a switch (on/off) */ |
|
|
@@ -287,18 +291,19 @@ struct _AEffect |
|
|
|
// Fill somewhere 28-2b |
|
|
|
void *ptr1; |
|
|
|
void *ptr2; |
|
|
|
// Zeroes 2c-2f 30-33 34-37 38-3b |
|
|
|
char empty3[4 + 4 + 4]; |
|
|
|
int initialDelay; |
|
|
|
// Zeroes 30-33 34-37 38-3b |
|
|
|
char empty2[4 + 4]; |
|
|
|
// 1.0f 3c-3f |
|
|
|
float unkown_float; |
|
|
|
// An object? pointer 40-43 |
|
|
|
void *ptr3; |
|
|
|
void *object; |
|
|
|
// Zeroes 44-47 |
|
|
|
void *user; |
|
|
|
// Id 48-4b |
|
|
|
int32_t uniqueID; |
|
|
|
// Don't know 4c-4f |
|
|
|
char unknown1[4]; |
|
|
|
// plugin version 4c-4f |
|
|
|
int32_t version; |
|
|
|
// processReplacing 50-53 |
|
|
|
void (* processReplacing) (struct _AEffect *, float **, float **, int); |
|
|
|
}; |