Fix potential wrong-over-optimization in math utilities
[carla.git] / source / plugin / carla-vst.hpp
blob9d3da55cbe68dbcaaf6da4e57ae78c857c9c65b1
1 /*
2 * Carla Native Plugins
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;
28 class NativePlugin;
30 struct VstObject {
31 void* audioMaster;
32 NativePlugin* plugin;
35 struct VstRect {
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