From e90dcf51fb8c858afcd99e7323c6e637eb0baa92 Mon Sep 17 00:00:00 2001 From: Julian Storer Date: Thu, 8 Jul 2010 18:34:47 +0100 Subject: [PATCH] Tweaked a few jucer settings to improve the default setup of a new plugin project. --- .../Source/Project/jucer_NewProjectWizard.cpp | 3 ++- .../Source/Project/jucer_Project.cpp | 9 ++++++--- .../Jucer (experimental)/Source/Project/jucer_Project.h | 4 +++- .../Source/Project/jucer_ProjectSaver.h | 8 ++++++-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/extras/Jucer (experimental)/Source/Project/jucer_NewProjectWizard.cpp b/extras/Jucer (experimental)/Source/Project/jucer_NewProjectWizard.cpp index 6849d092a2..210372b3ac 100644 --- a/extras/Jucer (experimental)/Source/Project/jucer_NewProjectWizard.cpp +++ b/extras/Jucer (experimental)/Source/Project/jucer_NewProjectWizard.cpp @@ -238,7 +238,8 @@ public: File editorHFile = editorCppFile.withFileExtension (".h"); project.getProjectType() = Project::audioPlugin; - + project.getObjectiveCClassSuffix() = project.getProjectUID(); + Project::Item group (project.createNewGroup()); project.getMainGroup().addChild (group, 0); group.getName() = "Source"; diff --git a/extras/Jucer (experimental)/Source/Project/jucer_Project.cpp b/extras/Jucer (experimental)/Source/Project/jucer_Project.cpp index 6814dc6d57..c54869031c 100644 --- a/extras/Jucer (experimental)/Source/Project/jucer_Project.cpp +++ b/extras/Jucer (experimental)/Source/Project/jucer_Project.cpp @@ -134,8 +134,8 @@ void Project::setMissingDefaultValues() getPluginName() = getProjectName().toString(); getPluginDesc() = getProjectName().toString(); getPluginManufacturer() = "yourcompany"; - getPluginManufacturerCode() = "abcd"; - getPluginCode() = "Abcd"; + getPluginManufacturerCode() = "Manu"; + getPluginCode() = "Plug"; getPluginChannelConfigs() = "{1, 1}, {2, 2}"; getPluginIsSynth() = false; getPluginWantsMidiInput() = false; @@ -347,6 +347,9 @@ void Project::createPropertyEditors (Array & props) props.getLast()->setTooltip ("Sets an icon to use for the executable."); } + props.add (new TextPropertyComponent (getObjectiveCClassSuffix(), "Objective-C Name Suffix", 256, false)); + props.getLast()->setTooltip ("An optional string which will be appended to objective-C class names. If you're building a plugin, it's important to define this, to avoid name clashes between multiple plugin modules that are dynamically loaded into the same address space."); + if (isAudioPlugin()) { props.add (new BooleanPropertyComponent (shouldBuildVST(), "Build VST", "Enabled")); @@ -367,7 +370,7 @@ void Project::createPropertyEditors (Array & props) props.add (new TextPropertyComponent (getPluginManufacturer(), "Plugin Manufacturer", 256, false)); props.getLast()->setTooltip ("The name of your company (cannot be blank)."); props.add (new TextPropertyComponent (getPluginManufacturerCode(), "Plugin Manufacturer Code", 4, false)); - props.getLast()->setTooltip ("A four-character unique ID for your company."); + props.getLast()->setTooltip ("A four-character unique ID for your company. Note that for AU compatibility, this must contain at least one upper-case letter!"); props.add (new TextPropertyComponent (getPluginCode(), "Plugin Code", 4, false)); props.getLast()->setTooltip ("A four-character unique ID for your plugin. Note that for AU compatibility, this must contain at least one upper-case letter!"); diff --git a/extras/Jucer (experimental)/Source/Project/jucer_Project.h b/extras/Jucer (experimental)/Source/Project/jucer_Project.h index 996adbe212..d8be1ef273 100644 --- a/extras/Jucer (experimental)/Source/Project/jucer_Project.h +++ b/extras/Jucer (experimental)/Source/Project/jucer_Project.h @@ -107,11 +107,13 @@ public: const Image getBigIcon(); const Image getSmallIcon(); + Value getObjectiveCClassSuffix() const { return getProjectValue ("objCSuffix"); } + Value shouldBuildVST() const { return getProjectValue ("buildVST"); } Value shouldBuildRTAS() const { return getProjectValue ("buildRTAS"); } Value shouldBuildAU() const { return getProjectValue ("buildAU"); } bool shouldAddVSTFolderToPath() { return (isAudioPlugin() && (bool) shouldBuildVST().getValue()) || getJuceConfigFlag ("JUCE_PLUGINHOST_VST").toString() == configFlagEnabled; } - + Value getPluginName() const { return getProjectValue ("pluginName"); } Value getPluginDesc() const { return getProjectValue ("pluginDesc"); } Value getPluginManufacturer() const { return getProjectValue ("pluginManufacturer"); } diff --git a/extras/Jucer (experimental)/Source/Project/jucer_ProjectSaver.h b/extras/Jucer (experimental)/Source/Project/jucer_ProjectSaver.h index 7875b6edb1..4312599dfe 100644 --- a/extras/Jucer (experimental)/Source/Project/jucer_ProjectSaver.h +++ b/extras/Jucer (experimental)/Source/Project/jucer_ProjectSaver.h @@ -362,8 +362,12 @@ private: << "#define JucePlugin_AUCocoaViewClassName " << project.getPluginAUCocoaViewClassName().toString() << newLine << "#define JucePlugin_RTASCategory " << ((bool) project.getPluginIsSynth().getValue() ? "ePlugInCategory_SWGenerators" : "ePlugInCategory_None") << newLine << "#define JucePlugin_RTASManufacturerCode JucePlugin_ManufacturerCode" << newLine - << "#define JucePlugin_RTASProductId JucePlugin_PluginCode" << newLine - << "#define JUCE_USE_VSTSDK_2_4 1" << newLine + << "#define JucePlugin_RTASProductId JucePlugin_PluginCode" << newLine; + + if (project.getObjectiveCClassSuffix().toString().isNotEmpty()) + out << "#define JUCE_ObjCExtraSuffix " << project.getObjectiveCClassSuffix().toString() << newLine; + + out << "#define JUCE_USE_VSTSDK_2_4 1" << newLine << newLine << "#endif // " << headerGuard << newLine; }