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
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!"
51 #ifndef JucePlugin_ManufacturerCode
52 #error "You need to define the JucePlugin_ManufacturerCode value in your JucePluginCharacteristics.h file!"
55 #ifndef JucePlugin_PluginCode
56 #error "You need to define the JucePlugin_PluginCode value in your JucePluginCharacteristics.h file!"
59 #ifndef JucePlugin_ProducesMidiOutput
60 #error "You need to define the JucePlugin_ProducesMidiOutput value in your JucePluginCharacteristics.h file!"
63 #ifndef JucePlugin_WantsMidiInput
64 #error "You need to define the JucePlugin_WantsMidiInput value in your JucePluginCharacteristics.h file!"
67 #ifndef JucePlugin_MaxNumInputChannels
68 #error "You need to define the JucePlugin_MaxNumInputChannels value in your JucePluginCharacteristics.h file!"
71 #ifndef JucePlugin_MaxNumOutputChannels
72 #error "You need to define the JucePlugin_MaxNumOutputChannels value in your JucePluginCharacteristics.h file!"
75 #ifndef JucePlugin_PreferredChannelConfigurations
76 #error "You need to define the JucePlugin_PreferredChannelConfigurations value in your JucePluginCharacteristics.h file!"
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"
83 #ifndef JucePlugin_SilenceInProducesSilenceOut
84 #error "You need to define the JucePlugin_SilenceInProducesSilenceOut value in your JucePluginCharacteristics.h file!"
87 #ifndef JucePlugin_EditorRequiresKeyboardFocus
88 #error "You need to define the JucePlugin_EditorRequiresKeyboardFocus value in your JucePluginCharacteristics.h file!"
91 #ifndef JucePlugin_TailLengthSeconds
92 #error "You need to define the JucePlugin_TailLengthSeconds value in your JucePluginCharacteristics.h file!"
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
101 #if _WIN64 // (disable RTAS in a 64-bit windows build)
102 #undef JucePlugin_Build_RTAS
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!"
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!"
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!"
118 #if JucePlugin_Build_AU && ! defined (JucePlugin_AUCocoaViewClassName)
119 #error "You need to define the JucePlugin_AUCocoaViewClassName value in your JucePluginCharacteristics.h file!"
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!"
126 #endif // __JUCE_INCLUDECHARACTERISTICS_JUCEHEADER__