DistrhoUIMain.cpp (2505B)
1 /* 2 * DISTRHO Plugin Framework (DPF) 3 * Copyright (C) 2012-2024 Filipe Coelho <falktx@falktx.com> 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any purpose with 6 * or without fee is hereby granted, provided that the above copyright notice and this 7 * permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD 10 * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN 11 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 12 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 13 * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 #include "src/DistrhoUI.cpp" 18 19 // we might be building a plugin with external UI, which works on most formats except VST2/3 20 #if ! DISTRHO_PLUGIN_HAS_UI && ! defined(DISTRHO_PLUGIN_VST_HPP_INCLUDED) 21 # error Trying to build UI without DISTRHO_PLUGIN_HAS_UI set to 1 22 #endif 23 24 #if DISTRHO_PLUGIN_HAS_UI 25 26 #if defined(DISTRHO_PLUGIN_TARGET_AU) 27 # define DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT 1 28 # import "src/DistrhoUIAU.mm" 29 #elif defined(DISTRHO_PLUGIN_TARGET_CARLA) 30 # define DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT 1 31 #elif defined(DISTRHO_PLUGIN_TARGET_CLAP) 32 # define DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT 1 33 #elif defined(DISTRHO_PLUGIN_TARGET_JACK) 34 # define DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT 1 35 #elif defined(DISTRHO_PLUGIN_TARGET_DSSI) 36 # define DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT 0 37 # include "src/DistrhoUIDSSI.cpp" 38 #elif defined(DISTRHO_PLUGIN_TARGET_LV2) 39 # define DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 40 # include "src/DistrhoUILV2.cpp" 41 #elif defined(DISTRHO_PLUGIN_TARGET_VST2) 42 # define DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT 1 43 #elif defined(DISTRHO_PLUGIN_TARGET_VST3) 44 # define DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT 1 45 # include "src/DistrhoUIVST3.cpp" 46 #elif defined(DISTRHO_PLUGIN_TARGET_EXPORT) 47 # define DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT 1 48 #elif defined(DISTRHO_PLUGIN_TARGET_SHARED) || defined(DISTRHO_PLUGIN_TARGET_STATIC) 49 # define DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT 1 50 #else 51 # error unsupported format 52 #endif 53 54 #if !DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT 55 # ifdef DISTRHO_PLUGIN_TARGET_DSSI 56 # define DISTRHO_IS_STANDALONE 1 57 # else 58 # define DISTRHO_IS_STANDALONE 0 59 # endif 60 # include "src/DistrhoUtils.cpp" 61 #endif 62 63 #endif