xtc/src/plugin/vst2_abi.h

26 lines
1.1 KiB
C
Raw Normal View History

#ifndef XTC_VST2_ABI_H
#define XTC_VST2_ABI_H
/* Original, minimal Linux ABI declarations for legacy VST2 interoperability.
* No Steinberg VST2 SDK code is included. Not a complete SDK or VST2 wrapper. */
#include <stdint.h>
typedef struct xtc_v2_effect xtc_v2_effect;
typedef intptr_t (*xtc_v2_host)(xtc_v2_effect *, int32_t, int32_t, intptr_t, void *, float);
typedef intptr_t (*xtc_v2_dispatch)(xtc_v2_effect *, int32_t, int32_t, intptr_t, void *, float);
struct xtc_v2_effect {
int32_t magic;
xtc_v2_dispatch dispatch;
void (*process)(xtc_v2_effect *, float **, float **, int32_t);
void (*set_parameter)(xtc_v2_effect *, int32_t, float);
float (*get_parameter)(xtc_v2_effect *, int32_t);
int32_t programs, parameters, inputs, outputs, flags;
intptr_t reserved1, reserved2;
int32_t initial_delay, quality1, quality2;
float ratio;
void *object, *user;
int32_t unique_id, version;
void (*replace)(xtc_v2_effect *, float **, float **, int32_t);
void (*replace64)(xtc_v2_effect *, double **, double **, int32_t);
char future[56];
};
#define XTC_V2_MAGIC INT32_C(0x56737450)
#endif