3 * Copyright (C) 2013-2023 Filipe Coelho <falktx@falktx.com>
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as
7 * published by the Free Software Foundation; either version 2 of
8 * the License, or any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * For a full copy of the GNU General Public License see the doc/GPL.txt file.
18 #ifndef CARLA_VST_HPP_INCLUDED
19 #define CARLA_VST_HPP_INCLUDED
21 #include "CarlaDefines.h"
22 #include "CarlaNative.h"
23 #include "vestige/vestige.h"
25 #include "ui_launcher_res.hpp"
26 struct CarlaUILauncher
;
36 int16_t top
, left
, bottom
, right
;
39 CarlaUILauncher
* createUILauncher(uintptr_t winId
, const NativePluginDescriptor
* d
, NativePluginHandle h
);
40 void getUILauncherSize(CarlaUILauncher
* ui
, VstRect
* rect
);
41 void idleUILauncher(CarlaUILauncher
* ui
);
42 void destoryUILauncher(CarlaUILauncher
* ui
);
44 const AEffect
* VSTPluginMainInit(AEffect
* effect
);
45 intptr_t VSTAudioMaster(AEffect
*, int32_t, int32_t, intptr_t, void*, float);
46 bool isUsingUILauncher();
48 intptr_t vst_dispatcherCallback(AEffect
* effect
, int32_t opcode
, int32_t index
, intptr_t value
, void* ptr
, float opt
);
49 float vst_getParameterCallback(AEffect
* effect
, int32_t index
);
50 void vst_setParameterCallback(AEffect
* effect
, int32_t index
, float value
);
51 void vst_processCallback(AEffect
* effect
, float** inputs
, float** outputs
, int32_t sampleFrames
);
52 void vst_processReplacingCallback(AEffect
* effect
, float** inputs
, float** outputs
, int32_t sampleFrames
);
54 #endif // CARLA_VST_HPP_INCLUDED