Massive UI work
[juce-lv2.git] / juce / source / src / audio / plugin_client / juce_IncludeCharacteristics.h
blob21b4f0c76421b51768dcb4da830e0b8bd1f9570c
1 /*
2 ==============================================================================
4 This file is part of the JUCE library - "Jules' Utility Class Extensions"
5 Copyright 2004-11 by Raw Material Software Ltd.
7 ------------------------------------------------------------------------------
9 JUCE can be redistributed and/or modified under the terms of the GNU General
10 Public License (Version 2), as published by the Free Software Foundation.
11 A copy of the license is included in the JUCE distribution, or can be found
12 online at www.gnu.org/licenses.
14 JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
15 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
16 A PARTICULAR PURPOSE. See the GNU General Public License for more details.
18 ------------------------------------------------------------------------------
20 To release a closed-source product which uses JUCE, commercial licenses are
21 available: visit www.rawmaterialsoftware.com/juce for more information.
23 ==============================================================================
26 #ifndef __JUCE_INCLUDECHARACTERISTICS_JUCEHEADER__
27 #define __JUCE_INCLUDECHARACTERISTICS_JUCEHEADER__
29 //==============================================================================
30 /* The JucePluginCharacteristics.h file is supposed to live in your plugin-specific
31 project directory, and has to contain info describing its name, type, etc. For
32 more info, see the JucePluginCharacteristics.h that is included in the demo plugin.
34 You may need to adjust the include path of your project to make sure it can be
35 found by this include statement. (Don't hack this file to change the include path)
37 #include "JucePluginCharacteristics.h"
39 #if ! defined (__LP64__)
40 #define JUCE_SUPPORT_CARBON 1
41 #endif
43 //==============================================================================
44 // The following stuff is just to cause a compile error if you've forgotten to
45 // define all your plugin settings properly.
47 #ifndef JucePlugin_IsSynth
48 #error "You need to define the JucePlugin_IsSynth value in your JucePluginCharacteristics.h file!"
49 #endif
51 #ifndef JucePlugin_ManufacturerCode
52 #error "You need to define the JucePlugin_ManufacturerCode value in your JucePluginCharacteristics.h file!"
53 #endif
55 #ifndef JucePlugin_PluginCode
56 #error "You need to define the JucePlugin_PluginCode value in your JucePluginCharacteristics.h file!"
57 #endif
59 #ifndef JucePlugin_ProducesMidiOutput
60 #error "You need to define the JucePlugin_ProducesMidiOutput value in your JucePluginCharacteristics.h file!"
61 #endif
63 #ifndef JucePlugin_WantsMidiInput
64 #error "You need to define the JucePlugin_WantsMidiInput value in your JucePluginCharacteristics.h file!"
65 #endif
67 #ifndef JucePlugin_MaxNumInputChannels
68 #error "You need to define the JucePlugin_MaxNumInputChannels value in your JucePluginCharacteristics.h file!"
69 #endif
71 #ifndef JucePlugin_MaxNumOutputChannels
72 #error "You need to define the JucePlugin_MaxNumOutputChannels value in your JucePluginCharacteristics.h file!"
73 #endif
75 #ifndef JucePlugin_PreferredChannelConfigurations
76 #error "You need to define the JucePlugin_PreferredChannelConfigurations value in your JucePluginCharacteristics.h file!"
77 #endif
79 #ifdef JucePlugin_Latency
80 #error "JucePlugin_Latency is now deprecated - instead, call the AudioProcessor::setLatencySamples() method if your plugin has a non-zero delay"
81 #endif
83 #ifndef JucePlugin_SilenceInProducesSilenceOut
84 #error "You need to define the JucePlugin_SilenceInProducesSilenceOut value in your JucePluginCharacteristics.h file!"
85 #endif
87 #ifndef JucePlugin_EditorRequiresKeyboardFocus
88 #error "You need to define the JucePlugin_EditorRequiresKeyboardFocus value in your JucePluginCharacteristics.h file!"
89 #endif
91 #ifndef JucePlugin_TailLengthSeconds
92 #error "You need to define the JucePlugin_TailLengthSeconds value in your JucePluginCharacteristics.h file!"
93 #endif
95 //==============================================================================
96 #if __LP64__ && (defined(__APPLE_CPP__) || defined(__APPLE_CC__)) // (disable VSTs and RTAS in a 64-bit mac build)
97 #undef JucePlugin_Build_VST
98 #undef JucePlugin_Build_RTAS
99 #endif
101 #if _WIN64 // (disable RTAS in a 64-bit windows build)
102 #undef JucePlugin_Build_RTAS
103 #endif
105 //==============================================================================
106 #if ! (JucePlugin_Build_VST || JucePlugin_Build_LV2 || JucePlugin_Build_AU || JucePlugin_Build_RTAS || JucePlugin_Build_Standalone)
107 #error "You need to define at least one plugin format value in your JucePluginCharacteristics.h file!"
108 #endif
110 #if JucePlugin_Build_VST && (JUCE_USE_VSTSDK_2_4 != 0 && JUCE_USE_VSTSDK_2_4 != 1)
111 #error "You need to define the JUCE_USE_VSTSDK_2_4 value in your JucePluginCharacteristics.h file!"
112 #endif
114 #if JucePlugin_Build_RTAS && _MSC_VER && ! defined (JucePlugin_WinBag_path)
115 #error "You need to define the JucePlugin_WinBag_path value in your JucePluginCharacteristics.h file!"
116 #endif
118 #if JucePlugin_Build_AU && ! defined (JucePlugin_AUCocoaViewClassName)
119 #error "You need to define the JucePlugin_AUCocoaViewClassName value in your JucePluginCharacteristics.h file!"
120 #endif
122 #if (defined(__APPLE_CPP__) || defined(__APPLE_CC__)) && ! defined (JUCE_ObjCExtraSuffix)
123 #error "To avoid objective-C name clashes with other plugins, you need to define the JUCE_ObjCExtraSuffix value as a global definition for your project!"
124 #endif
126 #endif // __JUCE_INCLUDECHARACTERISTICS_JUCEHEADER__