| @@ -238,7 +238,8 @@ public: | |||||
| File editorHFile = editorCppFile.withFileExtension (".h"); | File editorHFile = editorCppFile.withFileExtension (".h"); | ||||
| project.getProjectType() = Project::audioPlugin; | project.getProjectType() = Project::audioPlugin; | ||||
| project.getObjectiveCClassSuffix() = project.getProjectUID(); | |||||
| Project::Item group (project.createNewGroup()); | Project::Item group (project.createNewGroup()); | ||||
| project.getMainGroup().addChild (group, 0); | project.getMainGroup().addChild (group, 0); | ||||
| group.getName() = "Source"; | group.getName() = "Source"; | ||||
| @@ -134,8 +134,8 @@ void Project::setMissingDefaultValues() | |||||
| getPluginName() = getProjectName().toString(); | getPluginName() = getProjectName().toString(); | ||||
| getPluginDesc() = getProjectName().toString(); | getPluginDesc() = getProjectName().toString(); | ||||
| getPluginManufacturer() = "yourcompany"; | getPluginManufacturer() = "yourcompany"; | ||||
| getPluginManufacturerCode() = "abcd"; | |||||
| getPluginCode() = "Abcd"; | |||||
| getPluginManufacturerCode() = "Manu"; | |||||
| getPluginCode() = "Plug"; | |||||
| getPluginChannelConfigs() = "{1, 1}, {2, 2}"; | getPluginChannelConfigs() = "{1, 1}, {2, 2}"; | ||||
| getPluginIsSynth() = false; | getPluginIsSynth() = false; | ||||
| getPluginWantsMidiInput() = false; | getPluginWantsMidiInput() = false; | ||||
| @@ -347,6 +347,9 @@ void Project::createPropertyEditors (Array <PropertyComponent*>& props) | |||||
| props.getLast()->setTooltip ("Sets an icon to use for the executable."); | 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()) | if (isAudioPlugin()) | ||||
| { | { | ||||
| props.add (new BooleanPropertyComponent (shouldBuildVST(), "Build VST", "Enabled")); | props.add (new BooleanPropertyComponent (shouldBuildVST(), "Build VST", "Enabled")); | ||||
| @@ -367,7 +370,7 @@ void Project::createPropertyEditors (Array <PropertyComponent*>& props) | |||||
| props.add (new TextPropertyComponent (getPluginManufacturer(), "Plugin Manufacturer", 256, false)); | props.add (new TextPropertyComponent (getPluginManufacturer(), "Plugin Manufacturer", 256, false)); | ||||
| props.getLast()->setTooltip ("The name of your company (cannot be blank)."); | props.getLast()->setTooltip ("The name of your company (cannot be blank)."); | ||||
| props.add (new TextPropertyComponent (getPluginManufacturerCode(), "Plugin Manufacturer Code", 4, false)); | 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.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!"); | 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!"); | ||||
| @@ -107,11 +107,13 @@ public: | |||||
| const Image getBigIcon(); | const Image getBigIcon(); | ||||
| const Image getSmallIcon(); | const Image getSmallIcon(); | ||||
| Value getObjectiveCClassSuffix() const { return getProjectValue ("objCSuffix"); } | |||||
| Value shouldBuildVST() const { return getProjectValue ("buildVST"); } | Value shouldBuildVST() const { return getProjectValue ("buildVST"); } | ||||
| Value shouldBuildRTAS() const { return getProjectValue ("buildRTAS"); } | Value shouldBuildRTAS() const { return getProjectValue ("buildRTAS"); } | ||||
| Value shouldBuildAU() const { return getProjectValue ("buildAU"); } | Value shouldBuildAU() const { return getProjectValue ("buildAU"); } | ||||
| bool shouldAddVSTFolderToPath() { return (isAudioPlugin() && (bool) shouldBuildVST().getValue()) || getJuceConfigFlag ("JUCE_PLUGINHOST_VST").toString() == configFlagEnabled; } | bool shouldAddVSTFolderToPath() { return (isAudioPlugin() && (bool) shouldBuildVST().getValue()) || getJuceConfigFlag ("JUCE_PLUGINHOST_VST").toString() == configFlagEnabled; } | ||||
| Value getPluginName() const { return getProjectValue ("pluginName"); } | Value getPluginName() const { return getProjectValue ("pluginName"); } | ||||
| Value getPluginDesc() const { return getProjectValue ("pluginDesc"); } | Value getPluginDesc() const { return getProjectValue ("pluginDesc"); } | ||||
| Value getPluginManufacturer() const { return getProjectValue ("pluginManufacturer"); } | Value getPluginManufacturer() const { return getProjectValue ("pluginManufacturer"); } | ||||
| @@ -362,8 +362,12 @@ private: | |||||
| << "#define JucePlugin_AUCocoaViewClassName " << project.getPluginAUCocoaViewClassName().toString() << newLine | << "#define JucePlugin_AUCocoaViewClassName " << project.getPluginAUCocoaViewClassName().toString() << newLine | ||||
| << "#define JucePlugin_RTASCategory " << ((bool) project.getPluginIsSynth().getValue() ? "ePlugInCategory_SWGenerators" : "ePlugInCategory_None") << newLine | << "#define JucePlugin_RTASCategory " << ((bool) project.getPluginIsSynth().getValue() ? "ePlugInCategory_SWGenerators" : "ePlugInCategory_None") << newLine | ||||
| << "#define JucePlugin_RTASManufacturerCode JucePlugin_ManufacturerCode" << 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 | << newLine | ||||
| << "#endif // " << headerGuard << newLine; | << "#endif // " << headerGuard << newLine; | ||||
| } | } | ||||