27 #define LICE_PROVIDED_BY_APP 29 #include "IPlugReaperVST2.h" 30 #define PLUGIN_API_BASE IPlugReaperVST2 44 #define PLUGIN_API_BASE IPlugVST2 49 #define PLUGIN_API_BASE IPlugAU 50 #define API_EXT "audiounit" 51 #elif defined AUv3_API 53 #define PLUGIN_API_BASE IPlugAUv3 56 #define API_EXT2 ".AUv3" 59 #define PLUGIN_API_BASE IPlugAAX 64 #define PLUGIN_API_BASE IPlugAPP 68 #define PLUGIN_API_BASE IPlugWAM 71 #define PLUGIN_API_BASE IPlugWeb 72 #elif defined VST3_API 75 #define PLUGIN_API_BASE IPlugVST3 76 #define API_EXT "vst3" 77 #elif defined VST3C_API 80 #define PLUGIN_API_BASE IPlugVST3Controller 81 #undef PLUG_CLASS_NAME 82 #define PLUG_CLASS_NAME VST3Controller 83 #define API_EXT "vst3" 84 #elif defined VST3P_API 87 #define PLUGIN_API_BASE IPlugVST3Processor 88 #define API_EXT "vst3" 90 #error "No API defined!" 94 using Plugin = PLUGIN_API_BASE;
98 #define EXPORT __declspec(dllexport) 101 #define BUNDLE_ID BUNDLE_DOMAIN "." BUNDLE_MFR "." API_EXT "." BUNDLE_NAME API_EXT2 102 #define EXPORT __attribute__ ((visibility("default"))) 104 #define BUNDLE_ID BUNDLE_DOMAIN "." BUNDLE_MFR "." BUNDLE_NAME API_EXT2 105 #define EXPORT __attribute__ ((visibility("default"))) 106 #elif defined OS_LINUX 111 #error "No OS defined!" 114 #if !defined NO_IGRAPHICS && !defined VST3P_API 118 #define STRINGISE_IMPL(x) #x 119 #define STRINGISE(x) STRINGISE_IMPL(x) 123 # define FILE_LINE_LINK __FILE__ "(" STRINGISE(__LINE__) ") : " 124 # define WARN(exp) (FILE_LINE_LINK "WARNING: " exp) 125 #else//__GNUC__ - may need other defines for different compilers 126 # define WARN(exp) ("WARNING: " exp) 130 #error You need to define PLUG_NAME in config.h - The name of your plug-in, with no spaces 134 #error You need to define PLUG_MFR in config.h - The manufacturer name 138 #error You need to define PLUG_TYPE in config.h. 0 = Effect, 1 = Instrument, 2 = MIDI Effect 141 #ifndef PLUG_VERSION_HEX 142 #error You need to define PLUG_VERSION_HEX in config.h - The hexadecimal version number in the form 0xVVVVRRMM: V = version, R = revision, M = minor revision. 145 #ifndef PLUG_UNIQUE_ID 146 #error You need to define PLUG_UNIQUE_ID in config.h - The unique four char ID for your plug-in, e.g. 'IPeF' 150 #error You need to define PLUG_MFR_ID in config.h - The unique four char ID for your manufacturer, e.g. 'Acme' 153 #ifndef PLUG_CLASS_NAME 154 #error PLUG_CLASS_NAME not defined - this is the name of your main iPlug plug-in class (no spaces allowed) 158 #error BUNDLE_NAME not defined - this is the product name part of the plug-in's bundle ID (used on macOS and iOS) 162 #error BUNDLE_MFR not defined - this is the manufacturer name part of the plug-in's bundle ID (used on macOS and iOS) 165 #ifndef BUNDLE_DOMAIN 166 #error BUNDLE_DOMAIN not defined - this is the domain name part of the plug-in's bundle ID (used on macOS and iOS) 169 #ifndef PLUG_CHANNEL_IO 170 #error PLUG_CHANNEL_IO not defined - you need to specify the input and output configurations of the plug-in e.g. "2-2" 174 #define PLUG_LATENCY 0 177 #ifndef PLUG_DOES_MIDI_IN 178 #pragma message WARN("PLUG_DOES_MIDI_IN not defined, setting to 0") 179 #define PLUG_DOES_MIDI_IN 0 182 #ifndef PLUG_DOES_MIDI_OUT 183 #pragma message WARN("PLUG_DOES_MIDI_OUT not defined, setting to 0") 184 #define PLUG_DOES_MIDI_OUT 0 187 #ifndef PLUG_DOES_MPE 188 #pragma message WARN("PLUG_DOES_MPE not defined, setting to 0") 189 #define PLUG_DOES_MPE 0 192 #ifndef PLUG_DOES_STATE_CHUNKS 193 #pragma message WARN("PLUG_DOES_STATE_CHUNKS not defined, setting to 0") 194 #define PLUG_DOES_STATE_CHUNKS 0 198 #pragma message WARN("PLUG_HAS_UI not defined, setting to 0") 199 #define PLUG_HAS_UI 0 203 #pragma message WARN("PLUG_WIDTH not defined, setting to 500px") 204 #define PLUG_WIDTH 500 208 #pragma message WARN("PLUG_HEIGHT not defined, setting to 500px") 209 #define PLUG_HEIGHT 500 212 #ifndef PLUG_MIN_WIDTH 213 #define PLUG_MIN_WIDTH (PLUG_WIDTH / 2) 216 #ifndef PLUG_MIN_HEIGHT 217 #define PLUG_MIN_HEIGHT (PLUG_HEIGHT / 2) 220 #ifndef PLUG_MAX_WIDTH 221 #define PLUG_MAX_WIDTH (PLUG_WIDTH * 2) 224 #ifndef PLUG_MAX_HEIGHT 225 #define PLUG_MAX_HEIGHT (PLUG_HEIGHT * 2) 229 #pragma message WARN("PLUG_FPS not defined, setting to 60") 233 #ifndef PLUG_SHARED_RESOURCES 234 #pragma message WARN("PLUG_SHARED_RESOURCES not defined, setting to 0") 235 #define PLUG_SHARED_RESOURCES 0 237 #ifndef SHARED_RESOURCES_SUBPATH 238 #pragma message WARN("SHARED_RESOURCES_SUBPATH not defined, setting to PLUG_NAME") 239 #define SHARED_RESOURCES_SUBPATH PLUG_NAME 244 #ifndef PLUG_VERSION_STR 245 #error You need to define PLUG_VERSION_STR in config.h - A string to identify the version number 249 #pragma message WARN("PLUG_URL_STR not defined, setting to empty string") 250 #define PLUG_URL_STR "" 253 #ifndef PLUG_EMAIL_STR 254 #pragma message WARN("PLUG_EMAIL_STR not defined, setting to empty string") 255 #define PLUG_EMAIL_STR "" 258 #ifndef PLUG_COPYRIGHT_STR 259 #pragma message WARN("PLUG_COPYRIGHT_STR not defined, setting to empty string") 260 #define PLUG_COPYRIGHT_STR "" 263 #ifndef VST3_SUBCATEGORY 264 #pragma message WARN("VST3_SUBCATEGORY not defined, setting to other") 265 #define VST3_SUBCATEGORY "Other" 271 #error AUV2_ENTRY not defined - the name of the entry point for a component manager AUv2 plug-in, without quotes 273 #ifndef AUV2_ENTRY_STR 274 #error AUV2_ENTRY_STR not defined - the name of the entry point for a component manager AUv2 plug-in, with quotes 277 #error AUV2_FACTORY not defined - the name of the entry point for a AUPlugIn AUv2 plug-in, without quotes 280 #ifndef AUV2_VIEW_CLASS 281 #error AUV2_VIEW_CLASS not defined - the name of the Objective-C class for the AUv2 plug-in's view, without quotes 283 #ifndef AUV2_VIEW_CLASS_STR 284 #error AUV2_VIEW_CLASS_STR not defined - the name of the Objective-C class for the AUv2 plug-in's view, with quotes 291 #error AAX_TYPE_IDS not defined - list of comma separated four char IDs, that correspond to the different possible channel layouts of your plug-in, e.g. 'EFN1', 'EFN2' 294 #ifndef AAX_PLUG_MFR_STR 295 #error AAX_PLUG_MFR_STR not defined - The manufacturer name as it will appear in Pro tools preset manager 298 #ifndef AAX_PLUG_NAME_STR 299 #error AAX_PLUG_NAME_STR not defined - The plug-in name string, which may include shorten names separated with newline characters, e.g. "IPlugEffect\nIPEF" 302 #ifndef AAX_PLUG_CATEGORY_STR 303 #error AAX_PLUG_CATEGORY_STR not defined - String defining the category for your plug-in, e.g. "Effect" 306 #if AAX_DOES_AUDIOSUITE 307 #ifndef AAX_TYPE_IDS_AUDIOSUITE 308 #error AAX_TYPE_IDS_AUDIOSUITE not defined - list of comma separated four char IDs, that correspond to the different possible channel layouts of your plug-in when running off-line in audio suite mode, e.g. 'EFA1', 'EFA2' Standalone application base class for an IPlug plug-in.
VST3 Processor API-base class for a distributed IPlug VST3 plug-in.
AAX API base class for an IPlug plug-in.
AudioUnit v2 API base class for an IPlug plug-in.
VST3 base class for a non-distributed IPlug VST3 plug-in.
VST3 Controller API-base class for a distributed IPlug VST3 plug-in.
AudioUnit v3 API base class for an IPlug plug-in.
IGraphics header include Include this file in the main header if using IGraphics outside a plugin con...