DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

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