@@ -203,6 +203,8 @@ | |||||
<MAINGROUP id="YdWL7hi7p" name="AudioPluginHost"> | <MAINGROUP id="YdWL7hi7p" name="AudioPluginHost"> | ||||
<GROUP id="{CFED5B3D-D1D8-0F3F-4D67-B2A810D057EF}" name="Source"> | <GROUP id="{CFED5B3D-D1D8-0F3F-4D67-B2A810D057EF}" name="Source"> | ||||
<GROUP id="{6F257CD6-CE86-9BBC-54C1-45E43249E414}" name="Plugins"> | <GROUP id="{6F257CD6-CE86-9BBC-54C1-45E43249E414}" name="Plugins"> | ||||
<FILE id="rcuPqK" name="ARAPlugin.cpp" compile="1" resource="0" file="Source/Plugins/ARAPlugin.cpp"/> | |||||
<FILE id="gR1tiA" name="ARAPlugin.h" compile="0" resource="0" file="Source/Plugins/ARAPlugin.h"/> | |||||
<FILE id="pov6wS" name="InternalPlugins.cpp" compile="1" resource="0" | <FILE id="pov6wS" name="InternalPlugins.cpp" compile="1" resource="0" | ||||
file="Source/Plugins/InternalPlugins.cpp"/> | file="Source/Plugins/InternalPlugins.cpp"/> | ||||
<FILE id="MV6AI1" name="InternalPlugins.h" compile="0" resource="0" | <FILE id="MV6AI1" name="InternalPlugins.h" compile="0" resource="0" | ||||
@@ -133,6 +133,7 @@ | |||||
269A454F1FF081DA67FFD578 /* jucer_JucerDocument.cpp */ /* jucer_JucerDocument.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_JucerDocument.cpp; path = ../../Source/ComponentEditor/jucer_JucerDocument.cpp; sourceTree = SOURCE_ROOT; }; | 269A454F1FF081DA67FFD578 /* jucer_JucerDocument.cpp */ /* jucer_JucerDocument.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_JucerDocument.cpp; path = ../../Source/ComponentEditor/jucer_JucerDocument.cpp; sourceTree = SOURCE_ROOT; }; | ||||
2BD9B4556479A8A41740BCAE /* jucer_ComponentTemplate.h */ /* jucer_ComponentTemplate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ComponentTemplate.h; path = ../../Source/BinaryData/Templates/jucer_ComponentTemplate.h; sourceTree = SOURCE_ROOT; }; | 2BD9B4556479A8A41740BCAE /* jucer_ComponentTemplate.h */ /* jucer_ComponentTemplate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ComponentTemplate.h; path = ../../Source/BinaryData/Templates/jucer_ComponentTemplate.h; sourceTree = SOURCE_ROOT; }; | ||||
2CD34A70B4032C0426F7AA10 /* jucer_MainWindow.h */ /* jucer_MainWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_MainWindow.h; path = ../../Source/Application/jucer_MainWindow.h; sourceTree = SOURCE_ROOT; }; | 2CD34A70B4032C0426F7AA10 /* jucer_MainWindow.h */ /* jucer_MainWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_MainWindow.h; path = ../../Source/Application/jucer_MainWindow.h; sourceTree = SOURCE_ROOT; }; | ||||
2E9CF857DCF1EFEA997B4D5B /* jucer_AudioPluginARAPlaybackRendererTemplate.h */ /* jucer_AudioPluginARAPlaybackRendererTemplate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_AudioPluginARAPlaybackRendererTemplate.h; path = ../../Source/BinaryData/Templates/jucer_AudioPluginARAPlaybackRendererTemplate.h; sourceTree = SOURCE_ROOT; }; | |||||
2EEB1C074162F363C6599282 /* jucer_CommandLine.h */ /* jucer_CommandLine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_CommandLine.h; path = ../../Source/Application/jucer_CommandLine.h; sourceTree = SOURCE_ROOT; }; | 2EEB1C074162F363C6599282 /* jucer_CommandLine.h */ /* jucer_CommandLine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_CommandLine.h; path = ../../Source/Application/jucer_CommandLine.h; sourceTree = SOURCE_ROOT; }; | ||||
2F0A7CA808B2FCCC9ED68992 /* jucer_LicenseQueryThread.h */ /* jucer_LicenseQueryThread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_LicenseQueryThread.h; path = ../../Source/Application/UserAccount/jucer_LicenseQueryThread.h; sourceTree = SOURCE_ROOT; }; | 2F0A7CA808B2FCCC9ED68992 /* jucer_LicenseQueryThread.h */ /* jucer_LicenseQueryThread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_LicenseQueryThread.h; path = ../../Source/Application/UserAccount/jucer_LicenseQueryThread.h; sourceTree = SOURCE_ROOT; }; | ||||
2F373F97E30AC1A0BFC1FC61 /* jucer_FilePropertyComponent.h */ /* jucer_FilePropertyComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_FilePropertyComponent.h; path = ../../Source/ComponentEditor/Properties/jucer_FilePropertyComponent.h; sourceTree = SOURCE_ROOT; }; | 2F373F97E30AC1A0BFC1FC61 /* jucer_FilePropertyComponent.h */ /* jucer_FilePropertyComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_FilePropertyComponent.h; path = ../../Source/ComponentEditor/Properties/jucer_FilePropertyComponent.h; sourceTree = SOURCE_ROOT; }; | ||||
@@ -237,6 +238,7 @@ | |||||
8D9A9A373E4621F7CBFCCCEF /* jucer_ContentCompTemplate.cpp */ /* jucer_ContentCompTemplate.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_ContentCompTemplate.cpp; path = ../../Source/BinaryData/Templates/jucer_ContentCompTemplate.cpp; sourceTree = SOURCE_ROOT; }; | 8D9A9A373E4621F7CBFCCCEF /* jucer_ContentCompTemplate.cpp */ /* jucer_ContentCompTemplate.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_ContentCompTemplate.cpp; path = ../../Source/BinaryData/Templates/jucer_ContentCompTemplate.cpp; sourceTree = SOURCE_ROOT; }; | ||||
8DBB36126CD144A8364F1F19 /* jucer_ProjectExporter.h */ /* jucer_ProjectExporter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ProjectExporter.h; path = ../../Source/ProjectSaving/jucer_ProjectExporter.h; sourceTree = SOURCE_ROOT; }; | 8DBB36126CD144A8364F1F19 /* jucer_ProjectExporter.h */ /* jucer_ProjectExporter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ProjectExporter.h; path = ../../Source/ProjectSaving/jucer_ProjectExporter.h; sourceTree = SOURCE_ROOT; }; | ||||
8DFE6D8AFB8057790041300B /* jucer_ToggleButtonHandler.h */ /* jucer_ToggleButtonHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ToggleButtonHandler.h; path = ../../Source/ComponentEditor/Components/jucer_ToggleButtonHandler.h; sourceTree = SOURCE_ROOT; }; | 8DFE6D8AFB8057790041300B /* jucer_ToggleButtonHandler.h */ /* jucer_ToggleButtonHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ToggleButtonHandler.h; path = ../../Source/ComponentEditor/Components/jucer_ToggleButtonHandler.h; sourceTree = SOURCE_ROOT; }; | ||||
8E129499EA2FB8A4944F8701 /* jucer_AudioPluginARADocumentControllerTemplate.h */ /* jucer_AudioPluginARADocumentControllerTemplate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_AudioPluginARADocumentControllerTemplate.h; path = ../../Source/BinaryData/Templates/jucer_AudioPluginARADocumentControllerTemplate.h; sourceTree = SOURCE_ROOT; }; | |||||
8F30A53C7FE4BC65171FB3E2 /* jucer_JucerDocument.h */ /* jucer_JucerDocument.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_JucerDocument.h; path = ../../Source/ComponentEditor/jucer_JucerDocument.h; sourceTree = SOURCE_ROOT; }; | 8F30A53C7FE4BC65171FB3E2 /* jucer_JucerDocument.h */ /* jucer_JucerDocument.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_JucerDocument.h; path = ../../Source/ComponentEditor/jucer_JucerDocument.h; sourceTree = SOURCE_ROOT; }; | ||||
8F4D281E98808204E2846A7D /* export_xcode.svg */ /* export_xcode.svg */ = {isa = PBXFileReference; lastKnownFileType = file.svg; name = export_xcode.svg; path = ../../Source/BinaryData/Icons/export_xcode.svg; sourceTree = SOURCE_ROOT; }; | 8F4D281E98808204E2846A7D /* export_xcode.svg */ /* export_xcode.svg */ = {isa = PBXFileReference; lastKnownFileType = file.svg; name = export_xcode.svg; path = ../../Source/BinaryData/Icons/export_xcode.svg; sourceTree = SOURCE_ROOT; }; | ||||
8F67F3C0492EAFEBDBBC12DB /* jucer_NewCppFileTemplate.cpp */ /* jucer_NewCppFileTemplate.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_NewCppFileTemplate.cpp; path = ../../Source/BinaryData/Templates/jucer_NewCppFileTemplate.cpp; sourceTree = SOURCE_ROOT; }; | 8F67F3C0492EAFEBDBBC12DB /* jucer_NewCppFileTemplate.cpp */ /* jucer_NewCppFileTemplate.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_NewCppFileTemplate.cpp; path = ../../Source/BinaryData/Templates/jucer_NewCppFileTemplate.cpp; sourceTree = SOURCE_ROOT; }; | ||||
@@ -250,6 +252,7 @@ | |||||
92A66A8BD87F98EB6B4FB6D0 /* jucer_ProjectContentComponent.h */ /* jucer_ProjectContentComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ProjectContentComponent.h; path = ../../Source/Project/UI/jucer_ProjectContentComponent.h; sourceTree = SOURCE_ROOT; }; | 92A66A8BD87F98EB6B4FB6D0 /* jucer_ProjectContentComponent.h */ /* jucer_ProjectContentComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ProjectContentComponent.h; path = ../../Source/Project/UI/jucer_ProjectContentComponent.h; sourceTree = SOURCE_ROOT; }; | ||||
94146B40B41BF0AACF4359DD /* jucer_LicenseState.h */ /* jucer_LicenseState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_LicenseState.h; path = ../../Source/Application/UserAccount/jucer_LicenseState.h; sourceTree = SOURCE_ROOT; }; | 94146B40B41BF0AACF4359DD /* jucer_LicenseState.h */ /* jucer_LicenseState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_LicenseState.h; path = ../../Source/Application/UserAccount/jucer_LicenseState.h; sourceTree = SOURCE_ROOT; }; | ||||
951128CA33CCDEF570436B1C /* Icon.icns */ /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = SOURCE_ROOT; }; | 951128CA33CCDEF570436B1C /* Icon.icns */ /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = SOURCE_ROOT; }; | ||||
96A1EC6B50DBD2C526C60338 /* jucer_AudioPluginARADocumentControllerTemplate.cpp */ /* jucer_AudioPluginARADocumentControllerTemplate.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_AudioPluginARADocumentControllerTemplate.cpp; path = ../../Source/BinaryData/Templates/jucer_AudioPluginARADocumentControllerTemplate.cpp; sourceTree = SOURCE_ROOT; }; | |||||
983CFBA01CA8811F30FA7F4C /* jucer_MiscUtilities.h */ /* jucer_MiscUtilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_MiscUtilities.h; path = ../../Source/Utility/Helpers/jucer_MiscUtilities.h; sourceTree = SOURCE_ROOT; }; | 983CFBA01CA8811F30FA7F4C /* jucer_MiscUtilities.h */ /* jucer_MiscUtilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_MiscUtilities.h; path = ../../Source/Utility/Helpers/jucer_MiscUtilities.h; sourceTree = SOURCE_ROOT; }; | ||||
988F5C1E40DED02D8B064253 /* jucer_PaintElementGroup.cpp */ /* jucer_PaintElementGroup.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_PaintElementGroup.cpp; path = ../../Source/ComponentEditor/PaintElements/jucer_PaintElementGroup.cpp; sourceTree = SOURCE_ROOT; }; | 988F5C1E40DED02D8B064253 /* jucer_PaintElementGroup.cpp */ /* jucer_PaintElementGroup.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_PaintElementGroup.cpp; path = ../../Source/ComponentEditor/PaintElements/jucer_PaintElementGroup.cpp; sourceTree = SOURCE_ROOT; }; | ||||
9914F905BFCFBE5F76619670 /* jucer_ColouredElement.h */ /* jucer_ColouredElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ColouredElement.h; path = ../../Source/ComponentEditor/PaintElements/jucer_ColouredElement.h; sourceTree = SOURCE_ROOT; }; | 9914F905BFCFBE5F76619670 /* jucer_ColouredElement.h */ /* jucer_ColouredElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ColouredElement.h; path = ../../Source/ComponentEditor/PaintElements/jucer_ColouredElement.h; sourceTree = SOURCE_ROOT; }; | ||||
@@ -359,6 +362,7 @@ | |||||
F30DF63DBEFA4BEEF7C369FC /* jucer_LicenseController.h */ /* jucer_LicenseController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_LicenseController.h; path = ../../Source/Application/UserAccount/jucer_LicenseController.h; sourceTree = SOURCE_ROOT; }; | F30DF63DBEFA4BEEF7C369FC /* jucer_LicenseController.h */ /* jucer_LicenseController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_LicenseController.h; path = ../../Source/Application/UserAccount/jucer_LicenseController.h; sourceTree = SOURCE_ROOT; }; | ||||
F313EE01ECE306DB2CFE011D /* UnityPluginGUIScript.cs.in */ /* UnityPluginGUIScript.cs.in */ = {isa = PBXFileReference; lastKnownFileType = file.in; name = UnityPluginGUIScript.cs.in; path = ../../../Build/CMake/UnityPluginGUIScript.cs.in; sourceTree = SOURCE_ROOT; }; | F313EE01ECE306DB2CFE011D /* UnityPluginGUIScript.cs.in */ /* UnityPluginGUIScript.cs.in */ = {isa = PBXFileReference; lastKnownFileType = file.in; name = UnityPluginGUIScript.cs.in; path = ../../../Build/CMake/UnityPluginGUIScript.cs.in; sourceTree = SOURCE_ROOT; }; | ||||
F3CC8F26ECCDA6DCD8A284D2 /* jucer_GradientPointComponent.h */ /* jucer_GradientPointComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_GradientPointComponent.h; path = ../../Source/ComponentEditor/PaintElements/jucer_GradientPointComponent.h; sourceTree = SOURCE_ROOT; }; | F3CC8F26ECCDA6DCD8A284D2 /* jucer_GradientPointComponent.h */ /* jucer_GradientPointComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_GradientPointComponent.h; path = ../../Source/ComponentEditor/PaintElements/jucer_GradientPointComponent.h; sourceTree = SOURCE_ROOT; }; | ||||
F3CCA5545AB7B4B603D0BFEB /* jucer_AudioPluginARAPlaybackRendererTemplate.cpp */ /* jucer_AudioPluginARAPlaybackRendererTemplate.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_AudioPluginARAPlaybackRendererTemplate.cpp; path = ../../Source/BinaryData/Templates/jucer_AudioPluginARAPlaybackRendererTemplate.cpp; sourceTree = SOURCE_ROOT; }; | |||||
F4FD9BD16ED2700F45A68C4F /* jucer_ComponentBooleanProperty.h */ /* jucer_ComponentBooleanProperty.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ComponentBooleanProperty.h; path = ../../Source/ComponentEditor/Properties/jucer_ComponentBooleanProperty.h; sourceTree = SOURCE_ROOT; }; | F4FD9BD16ED2700F45A68C4F /* jucer_ComponentBooleanProperty.h */ /* jucer_ComponentBooleanProperty.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ComponentBooleanProperty.h; path = ../../Source/ComponentEditor/Properties/jucer_ComponentBooleanProperty.h; sourceTree = SOURCE_ROOT; }; | ||||
F58B23995765C9FDBE28F871 /* jucer_Modules.cpp */ /* jucer_Modules.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_Modules.cpp; path = ../../Source/Project/Modules/jucer_Modules.cpp; sourceTree = SOURCE_ROOT; }; | F58B23995765C9FDBE28F871 /* jucer_Modules.cpp */ /* jucer_Modules.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_Modules.cpp; path = ../../Source/Project/Modules/jucer_Modules.cpp; sourceTree = SOURCE_ROOT; }; | ||||
F5DD97B45B8EA60C1ED0DD80 /* jucer_StoredSettings.cpp */ /* jucer_StoredSettings.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_StoredSettings.cpp; path = ../../Source/Settings/jucer_StoredSettings.cpp; sourceTree = SOURCE_ROOT; }; | F5DD97B45B8EA60C1ED0DD80 /* jucer_StoredSettings.cpp */ /* jucer_StoredSettings.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_StoredSettings.cpp; path = ../../Source/Settings/jucer_StoredSettings.cpp; sourceTree = SOURCE_ROOT; }; | ||||
@@ -661,6 +665,10 @@ | |||||
D4EB334E5186D1584EC63CA4, | D4EB334E5186D1584EC63CA4, | ||||
203FA6AD7EDDF1F9C338CC2A, | 203FA6AD7EDDF1F9C338CC2A, | ||||
5BF0374EB908F0476BD8ED42, | 5BF0374EB908F0476BD8ED42, | ||||
96A1EC6B50DBD2C526C60338, | |||||
8E129499EA2FB8A4944F8701, | |||||
F3CCA5545AB7B4B603D0BFEB, | |||||
2E9CF857DCF1EFEA997B4D5B, | |||||
6574A50A8997799705B23465, | 6574A50A8997799705B23465, | ||||
56177921580A4855917E0205, | 56177921580A4855917E0205, | ||||
079802C6AEE7646010766FE8, | 079802C6AEE7646010766FE8, | ||||
@@ -157,6 +157,12 @@ | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.cpp"> | |||||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.cpp"> | |||||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -278,6 +284,9 @@ | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_ListenerList.cpp"> | |||||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -1546,6 +1555,8 @@ | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AnimatedComponentTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AnimatedComponentTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentSimpleTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentSimpleTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.h"/> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.h"/> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginFilterTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginFilterTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_ComponentTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_ComponentTemplate.h"/> | ||||
@@ -349,6 +349,12 @@ | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.cpp"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.cpp"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -556,6 +562,9 @@ | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | ||||
<Filter>JUCE Modules\juce_core\containers</Filter> | <Filter>JUCE Modules\juce_core\containers</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_ListenerList.cpp"> | |||||
<Filter>JUCE Modules\juce_core\containers</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | ||||
<Filter>JUCE Modules\juce_core\containers</Filter> | <Filter>JUCE Modules\juce_core\containers</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -1989,6 +1998,12 @@ | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.h"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.h"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
@@ -157,6 +157,12 @@ | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.cpp"> | |||||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.cpp"> | |||||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -278,6 +284,9 @@ | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_ListenerList.cpp"> | |||||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -1546,6 +1555,8 @@ | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AnimatedComponentTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AnimatedComponentTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentSimpleTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentSimpleTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.h"/> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.h"/> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginFilterTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginFilterTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_ComponentTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_ComponentTemplate.h"/> | ||||
@@ -349,6 +349,12 @@ | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.cpp"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.cpp"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -556,6 +562,9 @@ | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | ||||
<Filter>JUCE Modules\juce_core\containers</Filter> | <Filter>JUCE Modules\juce_core\containers</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_ListenerList.cpp"> | |||||
<Filter>JUCE Modules\juce_core\containers</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | ||||
<Filter>JUCE Modules\juce_core\containers</Filter> | <Filter>JUCE Modules\juce_core\containers</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -1989,6 +1998,12 @@ | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.h"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.h"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
@@ -157,6 +157,12 @@ | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.cpp"> | |||||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.cpp"> | |||||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -278,6 +284,9 @@ | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_ListenerList.cpp"> | |||||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -1546,6 +1555,8 @@ | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AnimatedComponentTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AnimatedComponentTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentSimpleTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentSimpleTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.h"/> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.h"/> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginFilterTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginFilterTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_ComponentTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_ComponentTemplate.h"/> | ||||
@@ -349,6 +349,12 @@ | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.cpp"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.cpp"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -556,6 +562,9 @@ | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | ||||
<Filter>JUCE Modules\juce_core\containers</Filter> | <Filter>JUCE Modules\juce_core\containers</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_ListenerList.cpp"> | |||||
<Filter>JUCE Modules\juce_core\containers</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | ||||
<Filter>JUCE Modules\juce_core\containers</Filter> | <Filter>JUCE Modules\juce_core\containers</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -1989,6 +1998,12 @@ | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.h"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.h"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
@@ -157,6 +157,12 @@ | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.cpp"> | |||||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.cpp"> | |||||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -278,6 +284,9 @@ | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_ListenerList.cpp"> | |||||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | ||||
<ExcludedFromBuild>true</ExcludedFromBuild> | <ExcludedFromBuild>true</ExcludedFromBuild> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -1546,6 +1555,8 @@ | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AnimatedComponentTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AnimatedComponentTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentSimpleTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentSimpleTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.h"/> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.h"/> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginFilterTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginFilterTemplate.h"/> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_ComponentTemplate.h"/> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_ComponentTemplate.h"/> | ||||
@@ -349,6 +349,12 @@ | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.cpp"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.cpp"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.cpp"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | <ClCompile Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.cpp"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -556,6 +562,9 @@ | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_HashMap_test.cpp"> | ||||
<Filter>JUCE Modules\juce_core\containers</Filter> | <Filter>JUCE Modules\juce_core\containers</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_ListenerList.cpp"> | |||||
<Filter>JUCE Modules\juce_core\containers</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | <ClCompile Include="..\..\..\..\modules\juce_core\containers\juce_NamedValueSet.cpp"> | ||||
<Filter>JUCE Modules\juce_core\containers</Filter> | <Filter>JUCE Modules\juce_core\containers</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -1989,6 +1998,12 @@ | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioComponentTemplate.h"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARADocumentControllerTemplate.h"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginARAPlaybackRendererTemplate.h"> | |||||
<Filter>Projucer\BinaryData\Templates</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"> | <ClInclude Include="..\..\Source\BinaryData\Templates\jucer_AudioPluginEditorTemplate.h"> | ||||
<Filter>Projucer\BinaryData\Templates</Filter> | <Filter>Projucer\BinaryData\Templates</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
@@ -112,6 +112,10 @@ juce_add_binary_data(ProjucerData SOURCES | |||||
Source/BinaryData/Templates/jucer_AudioComponentSimpleTemplate.h | Source/BinaryData/Templates/jucer_AudioComponentSimpleTemplate.h | ||||
Source/BinaryData/Templates/jucer_AudioComponentTemplate.cpp | Source/BinaryData/Templates/jucer_AudioComponentTemplate.cpp | ||||
Source/BinaryData/Templates/jucer_AudioComponentTemplate.h | Source/BinaryData/Templates/jucer_AudioComponentTemplate.h | ||||
Source/BinaryData/Templates/jucer_AudioPluginARADocumentControllerTemplate.cpp | |||||
Source/BinaryData/Templates/jucer_AudioPluginARADocumentControllerTemplate.h | |||||
Source/BinaryData/Templates/jucer_AudioPluginARAPlaybackRendererTemplate.cpp | |||||
Source/BinaryData/Templates/jucer_AudioPluginARAPlaybackRendererTemplate.h | |||||
Source/BinaryData/Templates/jucer_AudioPluginEditorTemplate.cpp | Source/BinaryData/Templates/jucer_AudioPluginEditorTemplate.cpp | ||||
Source/BinaryData/Templates/jucer_AudioPluginEditorTemplate.h | Source/BinaryData/Templates/jucer_AudioPluginEditorTemplate.h | ||||
Source/BinaryData/Templates/jucer_AudioPluginFilterTemplate.cpp | Source/BinaryData/Templates/jucer_AudioPluginFilterTemplate.cpp | ||||
@@ -6797,11 +6797,266 @@ static const unsigned char temp_binary_data_35[] = | |||||
const char* jucer_AudioComponentTemplate_h = (const char*) temp_binary_data_35; | const char* jucer_AudioComponentTemplate_h = (const char*) temp_binary_data_35; | ||||
//================== jucer_AudioPluginEditorTemplate.cpp ================== | |||||
//================== jucer_AudioPluginARADocumentControllerTemplate.cpp ================== | |||||
static const unsigned char temp_binary_data_36[] = | static const unsigned char temp_binary_data_36[] = | ||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
" This file was auto-generated!\r\n" | |||||
"\r\n" | |||||
" It contains the basic framework code for an ARA document controller implementation.\r\n" | |||||
"\r\n" | |||||
" ==============================================================================\r\n" | |||||
"*/\r\n" | |||||
"\r\n" | |||||
"%%aradocumentcontroller_headers%%\r\n" | |||||
"%%araplaybackrenderer_headers%%\r\n" | |||||
"\r\n" | |||||
"//==============================================================================\r\n" | |||||
"ARA::PlugIn::PlaybackRenderer* %%aradocumentcontroller_class_name%%::doCreatePlaybackRenderer() noexcept\r\n" | |||||
"{\r\n" | |||||
" return new %%araplaybackrenderer_class_name%% (getDocumentController());\r\n" | |||||
"}\r\n" | |||||
"\r\n" | |||||
"//==============================================================================\r\n" | |||||
"bool %%aradocumentcontroller_class_name%%::doRestoreObjectsFromStream (juce::ARAInputStream& input, const juce::ARARestoreObjectsFilter* filter) noexcept\r\n" | |||||
"{\r\n" | |||||
" // You should use this method to read any persistent data associated with\r\n" | |||||
" // your ARA model graph stored in an archive using the supplied ARAInputStream.\r\n" | |||||
" // Be sure to check the ARARestoreObjectsFilter to determine which objects to restore.\r\n" | |||||
" return true;\r\n" | |||||
"}\r\n" | |||||
"\r\n" | |||||
"bool %%aradocumentcontroller_class_name%%::doStoreObjectsToStream (juce::ARAOutputStream& output, const juce::ARAStoreObjectsFilter* filter) noexcept\r\n" | |||||
"{\r\n" | |||||
" // You should use this method to write any persistent data associated with\r\n" | |||||
" // your ARA model graph into the an archive using the supplied ARAOutputStream.\r\n" | |||||
" // Be sure to check the ARAStoreObjectsFilter to determine which objects to store.\r\n" | |||||
" return true;\r\n" | |||||
"}\r\n" | |||||
"\r\n" | |||||
"//==============================================================================\r\n" | |||||
"// This creates the static ARAFactory instances for the plugin.\r\n" | |||||
"const ARA::ARAFactory* JUCE_CALLTYPE createARAFactory()\r\n" | |||||
"{\r\n" | |||||
" return juce::ARADocumentControllerSpecialisation::createARAFactory<%%aradocumentcontroller_class_name%%>();\r\n" | |||||
"}\r\n"; | |||||
const char* jucer_AudioPluginARADocumentControllerTemplate_cpp = (const char*) temp_binary_data_36; | |||||
//================== jucer_AudioPluginARADocumentControllerTemplate.h ================== | |||||
static const unsigned char temp_binary_data_37[] = | |||||
"/*\r\n" | |||||
" ==============================================================================\r\n" | |||||
"\r\n" | |||||
" This file was auto-generated!\r\n" | |||||
"\r\n" | |||||
" It contains the basic framework code for an ARA document controller implementation.\r\n" | |||||
"\r\n" | |||||
" ==============================================================================\r\n" | |||||
"*/\r\n" | |||||
"\r\n" | |||||
"#pragma once\r\n" | |||||
"\r\n" | |||||
"#include <juce_audio_processors/juce_audio_processors.h>\r\n" | |||||
"\r\n" | |||||
"//==============================================================================\r\n" | |||||
"/**\r\n" | |||||
"*/\r\n" | |||||
"class %%aradocumentcontroller_class_name%% : public juce::ARADocumentControllerSpecialisation\r\n" | |||||
"{\r\n" | |||||
"public:\r\n" | |||||
" //==============================================================================\r\n" | |||||
" using ARADocumentControllerSpecialisation::ARADocumentControllerSpecialisation;\r\n" | |||||
"\r\n" | |||||
"protected:\r\n" | |||||
" //==============================================================================\r\n" | |||||
" // Override document controller customization methods here\r\n" | |||||
"\r\n" | |||||
" ARAPlaybackRenderer* doCreatePlaybackRenderer() noexcept override;\r\n" | |||||
"\r\n" | |||||
" bool doRestoreObjectsFromStream (juce::ARAInputStream& input, const juce::ARARestoreObjectsFilter* filter) noexcept override;\r\n" | |||||
" bool doStoreObjectsToStream (juce::ARAOutputStream& output, const juce::ARAStoreObjectsFilter* filter) noexcept override;\r\n" | |||||
"\r\n" | |||||
"private:\r\n" | |||||
" //==============================================================================\r\n" | |||||
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%aradocumentcontroller_class_name%%)\r\n" | |||||
"};\r\n"; | |||||
const char* jucer_AudioPluginARADocumentControllerTemplate_h = (const char*) temp_binary_data_37; | |||||
//================== jucer_AudioPluginARAPlaybackRendererTemplate.cpp ================== | |||||
static const unsigned char temp_binary_data_38[] = | |||||
"/*\r\n" | |||||
" ==============================================================================\r\n" | |||||
"\r\n" | |||||
" This file was auto-generated!\r\n" | |||||
"\r\n" | |||||
" It contains the basic framework code for an ARA playback renderer implementation.\r\n" | |||||
"\r\n" | |||||
" ==============================================================================\r\n" | |||||
"*/\r\n" | |||||
"\r\n" | |||||
"%%araplaybackrenderer_headers%%\r\n" | |||||
"\r\n" | |||||
"//==============================================================================\r\n" | |||||
"void %%araplaybackrenderer_class_name%%::prepareToPlay (double sampleRateIn, int maximumSamplesPerBlockIn, int numChannelsIn, juce::AudioProcessor::ProcessingPrecision, AlwaysNonRealtime alwaysNonRealtime)\r\n" | |||||
"{\r\n" | |||||
" numChannels = numChannelsIn;\r\n" | |||||
" sampleRate = sampleRateIn;\r\n" | |||||
" maximumSamplesPerBlock = maximumSamplesPerBlockIn;\r\n" | |||||
" useBufferedAudioSourceReader = alwaysNonRealtime == AlwaysNonRealtime::no;\r\n" | |||||
"}\r\n" | |||||
"\r\n" | |||||
"void %%araplaybackrenderer_class_name%%::releaseResources()\r\n" | |||||
"{\r\n" | |||||
"}\r\n" | |||||
"\r\n" | |||||
"//==============================================================================\r\n" | |||||
"bool %%araplaybackrenderer_class_name%%::processBlock (juce::AudioBuffer<float>& buffer, juce::AudioProcessor::Realtime realtime, const juce::AudioPlayHead::CurrentPositionInfo& positionInfo) noexcept\r\n" | |||||
"{\r\n" | |||||
" const auto numSamples = buffer.getNumSamples();\r\n" | |||||
" jassert (numSamples <= maximumSamplesPerBlock);\r\n" | |||||
" jassert (numChannels == buffer.getNumChannels());\r\n" | |||||
" jassert (realtime == juce::AudioProcessor::Realtime::no || useBufferedAudioSourceReader);\r\n" | |||||
" const auto timeInSamples = positionInfo.timeInSamples;\r\n" | |||||
" const auto isPlaying = positionInfo.isPlaying;\r\n" | |||||
"\r\n" | |||||
" bool success = true;\r\n" | |||||
" bool didRenderAnyRegion = false;\r\n" | |||||
"\r\n" | |||||
" if (isPlaying)\r\n" | |||||
" {\r\n" | |||||
" const auto blockRange = juce::Range<juce::int64>::withStartAndLength (timeInSamples, numSamples);\r\n" | |||||
"\r\n" | |||||
" for (const auto& playbackRegion : getPlaybackRegions())\r\n" | |||||
" {\r\n" | |||||
" // Evaluate region borders in song time, calculate sample range to render in song time.\r\n" | |||||
" // Note that this example does not use head- or tailtime, so the includeHeadAndTail\r\n" | |||||
" // parameter is set to false here - this might need to be adjusted in actual plug-ins.\r\n" | |||||
" const auto playbackSampleRange = playbackRegion->getSampleRange (sampleRate,\r\n" | |||||
" juce::ARAPlaybackRegion::IncludeHeadAndTail::no);\r\n" | |||||
" auto renderRange = blockRange.getIntersectionWith (playbackSampleRange);\r\n" | |||||
"\r\n" | |||||
" if (renderRange.isEmpty())\r\n" | |||||
" continue;\r\n" | |||||
"\r\n" | |||||
" // Evaluate region borders in modification/source time and calculate offset between\r\n" | |||||
" // song and source samples, then clip song samples accordingly\r\n" | |||||
" // (if an actual plug-in supports time stretching, this must be taken into account here).\r\n" | |||||
" juce::Range<juce::int64> modificationSampleRange { playbackRegion->getStartInAudioModificationSamples(),\r\n" | |||||
" playbackRegion->getEndInAudioModificationSamples() };\r\n" | |||||
" const auto modificationSampleOffset = modificationSampleRange.getStart() - playbackSampleRange.getStart();\r\n" | |||||
"\r\n" | |||||
" renderRange = renderRange.getIntersectionWith (modificationSampleRange.movedToStartAt (playbackSampleRange.getStart()));\r\n" | |||||
"\r\n" | |||||
" if (renderRange.isEmpty())\r\n" | |||||
" continue;\r\n" | |||||
"\r\n" | |||||
" // Now calculate the samples in renderRange for this PlaybackRegion based on the ARA model\r\n" | |||||
" // graph. If didRenderAnyRegion is true, add the region's output samples in renderRange to\r\n" | |||||
" // the buffer. Otherwise the buffer needs to be initialised so the sample value must be\r\n" | |||||
" // overwritten.\r\n" | |||||
" const int numSamplesToRead = (int) renderRange.getLength();\r\n" | |||||
" const int startInBuffer = (int) (renderRange.getStart() - blockRange.getStart());\r\n" | |||||
" const auto startInSource = renderRange.getStart() + modificationSampleOffset;\r\n" | |||||
"\r\n" | |||||
" for (int c = 0; c < numChannels; ++c)\r\n" | |||||
" {\r\n" | |||||
" auto* channelData = buffer.getWritePointer (c);\r\n" | |||||
"\r\n" | |||||
" for (int i = 0; i < numSamplesToRead; ++i)\r\n" | |||||
" {\r\n" | |||||
" // Calculate region output sample at index startInSource + i ...\r\n" | |||||
" float sample = 0.0f;\r\n" | |||||
"\r\n" | |||||
" if (didRenderAnyRegion)\r\n" | |||||
" channelData[startInBuffer + i] += sample;\r\n" | |||||
" else\r\n" | |||||
" channelData[startInBuffer + i] = sample;\r\n" | |||||
" }\r\n" | |||||
" }\r\n" | |||||
"\r\n" | |||||
" // If rendering first region, clear any excess at start or end of the region.\r\n" | |||||
" if (! didRenderAnyRegion)\r\n" | |||||
" {\r\n" | |||||
" if (startInBuffer != 0)\r\n" | |||||
" buffer.clear (0, startInBuffer);\r\n" | |||||
"\r\n" | |||||
" const int endInBuffer = startInBuffer + numSamples;\r\n" | |||||
" const int remainingSamples = numSamples - endInBuffer;\r\n" | |||||
"\r\n" | |||||
" if (remainingSamples != 0)\r\n" | |||||
" buffer.clear (endInBuffer, remainingSamples);\r\n" | |||||
"\r\n" | |||||
" didRenderAnyRegion = true;\r\n" | |||||
" }\r\n" | |||||
" }\r\n" | |||||
" }\r\n" | |||||
"\r\n" | |||||
" if (! didRenderAnyRegion)\r\n" | |||||
" buffer.clear();\r\n" | |||||
"\r\n" | |||||
" return success;\r\n" | |||||
"}\r\n"; | |||||
const char* jucer_AudioPluginARAPlaybackRendererTemplate_cpp = (const char*) temp_binary_data_38; | |||||
//================== jucer_AudioPluginARAPlaybackRendererTemplate.h ================== | |||||
static const unsigned char temp_binary_data_39[] = | |||||
"/*\r\n" | |||||
" ==============================================================================\r\n" | |||||
"\r\n" | |||||
" This file was auto-generated!\r\n" | |||||
"\r\n" | |||||
" It contains the basic framework code for an ARA playback renderer implementation.\r\n" | |||||
"\r\n" | |||||
" ==============================================================================\r\n" | |||||
"*/\r\n" | |||||
"\r\n" | |||||
"#pragma once\r\n" | |||||
"\r\n" | |||||
"#include <juce_audio_processors/juce_audio_processors.h>\r\n" | |||||
"\r\n" | |||||
"//==============================================================================\r\n" | |||||
"/**\r\n" | |||||
"*/\r\n" | |||||
"class %%araplaybackrenderer_class_name%% : public juce::ARAPlaybackRenderer\r\n" | |||||
"{\r\n" | |||||
"public:\r\n" | |||||
" //==============================================================================\r\n" | |||||
" using juce::ARAPlaybackRenderer::ARAPlaybackRenderer;\r\n" | |||||
"\r\n" | |||||
" //==============================================================================\r\n" | |||||
" void prepareToPlay (double sampleRate,\r\n" | |||||
" int maximumSamplesPerBlock,\r\n" | |||||
" int numChannels,\r\n" | |||||
" juce::AudioProcessor::ProcessingPrecision,\r\n" | |||||
" AlwaysNonRealtime alwaysNonRealtime) override;\r\n" | |||||
" void releaseResources() override;\r\n" | |||||
"\r\n" | |||||
" //==============================================================================\r\n" | |||||
" bool processBlock (juce::AudioBuffer<float> & buffer,\r\n" | |||||
" juce::AudioProcessor::Realtime realtime,\r\n" | |||||
" const juce::AudioPlayHead::CurrentPositionInfo& positionInfo) noexcept override;\r\n" | |||||
"\r\n" | |||||
"private:\r\n" | |||||
" //==============================================================================\r\n" | |||||
" double sampleRate = 44100.0;\r\n" | |||||
" int maximumSamplesPerBlock = 4096;\r\n" | |||||
" int numChannels = 1;\r\n" | |||||
" bool useBufferedAudioSourceReader = true;\r\n" | |||||
"\r\n" | |||||
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%araplaybackrenderer_class_name%%)\r\n" | |||||
"};\r\n"; | |||||
const char* jucer_AudioPluginARAPlaybackRendererTemplate_h = (const char*) temp_binary_data_39; | |||||
//================== jucer_AudioPluginEditorTemplate.cpp ================== | |||||
static const unsigned char temp_binary_data_40[] = | |||||
"/*\r\n" | |||||
" ==============================================================================\r\n" | |||||
"\r\n" | |||||
" This file contains the basic framework code for a JUCE plugin editor.\r\n" | " This file contains the basic framework code for a JUCE plugin editor.\r\n" | ||||
"\r\n" | "\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
@@ -6839,10 +7094,10 @@ static const unsigned char temp_binary_data_36[] = | |||||
" // subcomponents in your editor..\r\n" | " // subcomponents in your editor..\r\n" | ||||
"}\r\n"; | "}\r\n"; | ||||
const char* jucer_AudioPluginEditorTemplate_cpp = (const char*) temp_binary_data_36; | |||||
const char* jucer_AudioPluginEditorTemplate_cpp = (const char*) temp_binary_data_40; | |||||
//================== jucer_AudioPluginEditorTemplate.h ================== | //================== jucer_AudioPluginEditorTemplate.h ================== | ||||
static const unsigned char temp_binary_data_37[] = | |||||
static const unsigned char temp_binary_data_41[] = | |||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
@@ -6876,10 +7131,10 @@ static const unsigned char temp_binary_data_37[] = | |||||
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%editor_class_name%%)\r\n" | " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%editor_class_name%%)\r\n" | ||||
"};\r\n"; | "};\r\n"; | ||||
const char* jucer_AudioPluginEditorTemplate_h = (const char*) temp_binary_data_37; | |||||
const char* jucer_AudioPluginEditorTemplate_h = (const char*) temp_binary_data_41; | |||||
//================== jucer_AudioPluginFilterTemplate.cpp ================== | //================== jucer_AudioPluginFilterTemplate.cpp ================== | ||||
static const unsigned char temp_binary_data_38[] = | |||||
static const unsigned char temp_binary_data_42[] = | |||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
@@ -7071,10 +7326,10 @@ static const unsigned char temp_binary_data_38[] = | |||||
" return new %%filter_class_name%%();\r\n" | " return new %%filter_class_name%%();\r\n" | ||||
"}\r\n"; | "}\r\n"; | ||||
const char* jucer_AudioPluginFilterTemplate_cpp = (const char*) temp_binary_data_38; | |||||
const char* jucer_AudioPluginFilterTemplate_cpp = (const char*) temp_binary_data_42; | |||||
//================== jucer_AudioPluginFilterTemplate.h ================== | //================== jucer_AudioPluginFilterTemplate.h ================== | ||||
static const unsigned char temp_binary_data_39[] = | |||||
static const unsigned char temp_binary_data_43[] = | |||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
@@ -7091,6 +7346,9 @@ static const unsigned char temp_binary_data_39[] = | |||||
"/**\r\n" | "/**\r\n" | ||||
"*/\r\n" | "*/\r\n" | ||||
"class %%filter_class_name%% : public juce::AudioProcessor\r\n" | "class %%filter_class_name%% : public juce::AudioProcessor\r\n" | ||||
" #if JucePlugin_Enable_ARA\r\n" | |||||
" , public juce::AudioProcessorARAExtension\r\n" | |||||
" #endif\r\n" | |||||
"{\r\n" | "{\r\n" | ||||
"public:\r\n" | "public:\r\n" | ||||
" //==============================================================================\r\n" | " //==============================================================================\r\n" | ||||
@@ -7135,10 +7393,10 @@ static const unsigned char temp_binary_data_39[] = | |||||
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%filter_class_name%%)\r\n" | " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%filter_class_name%%)\r\n" | ||||
"};\r\n"; | "};\r\n"; | ||||
const char* jucer_AudioPluginFilterTemplate_h = (const char*) temp_binary_data_39; | |||||
const char* jucer_AudioPluginFilterTemplate_h = (const char*) temp_binary_data_43; | |||||
//================== jucer_ComponentTemplate.cpp ================== | //================== jucer_ComponentTemplate.cpp ================== | ||||
static const unsigned char temp_binary_data_40[] = | |||||
static const unsigned char temp_binary_data_44[] = | |||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
@@ -7214,10 +7472,10 @@ static const unsigned char temp_binary_data_40[] = | |||||
"//[EndFile] You can add extra defines here...\r\n" | "//[EndFile] You can add extra defines here...\r\n" | ||||
"//[/EndFile]\r\n"; | "//[/EndFile]\r\n"; | ||||
const char* jucer_ComponentTemplate_cpp = (const char*) temp_binary_data_40; | |||||
const char* jucer_ComponentTemplate_cpp = (const char*) temp_binary_data_44; | |||||
//================== jucer_ComponentTemplate.h ================== | //================== jucer_ComponentTemplate.h ================== | ||||
static const unsigned char temp_binary_data_41[] = | |||||
static const unsigned char temp_binary_data_45[] = | |||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
@@ -7280,10 +7538,10 @@ static const unsigned char temp_binary_data_41[] = | |||||
"//[EndFile] You can add extra defines here...\r\n" | "//[EndFile] You can add extra defines here...\r\n" | ||||
"//[/EndFile]\r\n"; | "//[/EndFile]\r\n"; | ||||
const char* jucer_ComponentTemplate_h = (const char*) temp_binary_data_41; | |||||
const char* jucer_ComponentTemplate_h = (const char*) temp_binary_data_45; | |||||
//================== jucer_ContentCompSimpleTemplate.h ================== | //================== jucer_ContentCompSimpleTemplate.h ================== | ||||
static const unsigned char temp_binary_data_42[] = | |||||
static const unsigned char temp_binary_data_46[] = | |||||
"#pragma once\r\n" | "#pragma once\r\n" | ||||
"\r\n" | "\r\n" | ||||
"%%include_juce%%\r\n" | "%%include_juce%%\r\n" | ||||
@@ -7333,10 +7591,10 @@ static const unsigned char temp_binary_data_42[] = | |||||
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n" | " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n" | ||||
"};\r\n"; | "};\r\n"; | ||||
const char* jucer_ContentCompSimpleTemplate_h = (const char*) temp_binary_data_42; | |||||
const char* jucer_ContentCompSimpleTemplate_h = (const char*) temp_binary_data_46; | |||||
//================== jucer_ContentCompTemplate.cpp ================== | //================== jucer_ContentCompTemplate.cpp ================== | ||||
static const unsigned char temp_binary_data_43[] = | |||||
static const unsigned char temp_binary_data_47[] = | |||||
"%%include_corresponding_header%%\r\n" | "%%include_corresponding_header%%\r\n" | ||||
"\r\n" | "\r\n" | ||||
"//==============================================================================\r\n" | "//==============================================================================\r\n" | ||||
@@ -7367,10 +7625,10 @@ static const unsigned char temp_binary_data_43[] = | |||||
" // update their positions.\r\n" | " // update their positions.\r\n" | ||||
"}\r\n"; | "}\r\n"; | ||||
const char* jucer_ContentCompTemplate_cpp = (const char*) temp_binary_data_43; | |||||
const char* jucer_ContentCompTemplate_cpp = (const char*) temp_binary_data_47; | |||||
//================== jucer_ContentCompTemplate.h ================== | //================== jucer_ContentCompTemplate.h ================== | ||||
static const unsigned char temp_binary_data_44[] = | |||||
static const unsigned char temp_binary_data_48[] = | |||||
"#pragma once\r\n" | "#pragma once\r\n" | ||||
"\r\n" | "\r\n" | ||||
"%%include_juce%%\r\n" | "%%include_juce%%\r\n" | ||||
@@ -7399,10 +7657,10 @@ static const unsigned char temp_binary_data_44[] = | |||||
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n" | " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n" | ||||
"};\r\n"; | "};\r\n"; | ||||
const char* jucer_ContentCompTemplate_h = (const char*) temp_binary_data_44; | |||||
const char* jucer_ContentCompTemplate_h = (const char*) temp_binary_data_48; | |||||
//================== jucer_InlineComponentTemplate.h ================== | //================== jucer_InlineComponentTemplate.h ================== | ||||
static const unsigned char temp_binary_data_45[] = | |||||
static const unsigned char temp_binary_data_49[] = | |||||
"//==============================================================================\r\n" | "//==============================================================================\r\n" | ||||
"class %%component_class%% : public juce::Component\r\n" | "class %%component_class%% : public juce::Component\r\n" | ||||
"{\r\n" | "{\r\n" | ||||
@@ -7444,10 +7702,10 @@ static const unsigned char temp_binary_data_45[] = | |||||
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%component_class%%)\r\n" | " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%component_class%%)\r\n" | ||||
"};\r\n"; | "};\r\n"; | ||||
const char* jucer_InlineComponentTemplate_h = (const char*) temp_binary_data_45; | |||||
const char* jucer_InlineComponentTemplate_h = (const char*) temp_binary_data_49; | |||||
//================== jucer_MainConsoleAppTemplate.cpp ================== | //================== jucer_MainConsoleAppTemplate.cpp ================== | ||||
static const unsigned char temp_binary_data_46[] = | |||||
static const unsigned char temp_binary_data_50[] = | |||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
@@ -7468,10 +7726,10 @@ static const unsigned char temp_binary_data_46[] = | |||||
" return 0;\r\n" | " return 0;\r\n" | ||||
"}\r\n"; | "}\r\n"; | ||||
const char* jucer_MainConsoleAppTemplate_cpp = (const char*) temp_binary_data_46; | |||||
const char* jucer_MainConsoleAppTemplate_cpp = (const char*) temp_binary_data_50; | |||||
//================== jucer_MainTemplate_NoWindow.cpp ================== | //================== jucer_MainTemplate_NoWindow.cpp ================== | ||||
static const unsigned char temp_binary_data_47[] = | |||||
static const unsigned char temp_binary_data_51[] = | |||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
@@ -7524,10 +7782,10 @@ static const unsigned char temp_binary_data_47[] = | |||||
"// This macro generates the main() routine that launches the app.\r\n" | "// This macro generates the main() routine that launches the app.\r\n" | ||||
"START_JUCE_APPLICATION (%%app_class_name%%)\r\n"; | "START_JUCE_APPLICATION (%%app_class_name%%)\r\n"; | ||||
const char* jucer_MainTemplate_NoWindow_cpp = (const char*) temp_binary_data_47; | |||||
const char* jucer_MainTemplate_NoWindow_cpp = (const char*) temp_binary_data_51; | |||||
//================== jucer_MainTemplate_Window.cpp ================== | //================== jucer_MainTemplate_Window.cpp ================== | ||||
static const unsigned char temp_binary_data_48[] = | |||||
static const unsigned char temp_binary_data_52[] = | |||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
@@ -7633,10 +7891,10 @@ static const unsigned char temp_binary_data_48[] = | |||||
"// This macro generates the main() routine that launches the app.\r\n" | "// This macro generates the main() routine that launches the app.\r\n" | ||||
"START_JUCE_APPLICATION (%%app_class_name%%)\r\n"; | "START_JUCE_APPLICATION (%%app_class_name%%)\r\n"; | ||||
const char* jucer_MainTemplate_Window_cpp = (const char*) temp_binary_data_48; | |||||
const char* jucer_MainTemplate_Window_cpp = (const char*) temp_binary_data_52; | |||||
//================== jucer_NewComponentTemplate.cpp ================== | //================== jucer_NewComponentTemplate.cpp ================== | ||||
static const unsigned char temp_binary_data_49[] = | |||||
static const unsigned char temp_binary_data_53[] = | |||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
@@ -7689,10 +7947,10 @@ static const unsigned char temp_binary_data_49[] = | |||||
"\r\n" | "\r\n" | ||||
"}\r\n"; | "}\r\n"; | ||||
const char* jucer_NewComponentTemplate_cpp = (const char*) temp_binary_data_49; | |||||
const char* jucer_NewComponentTemplate_cpp = (const char*) temp_binary_data_53; | |||||
//================== jucer_NewComponentTemplate.h ================== | //================== jucer_NewComponentTemplate.h ================== | ||||
static const unsigned char temp_binary_data_50[] = | |||||
static const unsigned char temp_binary_data_54[] = | |||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
@@ -7723,10 +7981,10 @@ static const unsigned char temp_binary_data_50[] = | |||||
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%component_class%%)\r\n" | " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%component_class%%)\r\n" | ||||
"};\r\n"; | "};\r\n"; | ||||
const char* jucer_NewComponentTemplate_h = (const char*) temp_binary_data_50; | |||||
const char* jucer_NewComponentTemplate_h = (const char*) temp_binary_data_54; | |||||
//================== jucer_NewCppFileTemplate.cpp ================== | //================== jucer_NewCppFileTemplate.cpp ================== | ||||
static const unsigned char temp_binary_data_51[] = | |||||
static const unsigned char temp_binary_data_55[] = | |||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
@@ -7739,10 +7997,10 @@ static const unsigned char temp_binary_data_51[] = | |||||
"\r\n" | "\r\n" | ||||
"%%include_corresponding_header%%\r\n"; | "%%include_corresponding_header%%\r\n"; | ||||
const char* jucer_NewCppFileTemplate_cpp = (const char*) temp_binary_data_51; | |||||
const char* jucer_NewCppFileTemplate_cpp = (const char*) temp_binary_data_55; | |||||
//================== jucer_NewCppFileTemplate.h ================== | //================== jucer_NewCppFileTemplate.h ================== | ||||
static const unsigned char temp_binary_data_52[] = | |||||
static const unsigned char temp_binary_data_56[] = | |||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
@@ -7755,10 +8013,10 @@ static const unsigned char temp_binary_data_52[] = | |||||
"\r\n" | "\r\n" | ||||
"#pragma once\r\n"; | "#pragma once\r\n"; | ||||
const char* jucer_NewCppFileTemplate_h = (const char*) temp_binary_data_52; | |||||
const char* jucer_NewCppFileTemplate_h = (const char*) temp_binary_data_56; | |||||
//================== jucer_NewInlineComponentTemplate.h ================== | //================== jucer_NewInlineComponentTemplate.h ================== | ||||
static const unsigned char temp_binary_data_53[] = | |||||
static const unsigned char temp_binary_data_57[] = | |||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
@@ -7821,10 +8079,10 @@ static const unsigned char temp_binary_data_53[] = | |||||
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%component_class%%)\r\n" | " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%component_class%%)\r\n" | ||||
"};\r\n"; | "};\r\n"; | ||||
const char* jucer_NewInlineComponentTemplate_h = (const char*) temp_binary_data_53; | |||||
const char* jucer_NewInlineComponentTemplate_h = (const char*) temp_binary_data_57; | |||||
//================== jucer_OpenGLComponentSimpleTemplate.h ================== | //================== jucer_OpenGLComponentSimpleTemplate.h ================== | ||||
static const unsigned char temp_binary_data_54[] = | |||||
static const unsigned char temp_binary_data_58[] = | |||||
"#pragma once\r\n" | "#pragma once\r\n" | ||||
"\r\n" | "\r\n" | ||||
"%%include_juce%%\r\n" | "%%include_juce%%\r\n" | ||||
@@ -7893,10 +8151,10 @@ static const unsigned char temp_binary_data_54[] = | |||||
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n" | " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n" | ||||
"};\r\n"; | "};\r\n"; | ||||
const char* jucer_OpenGLComponentSimpleTemplate_h = (const char*) temp_binary_data_54; | |||||
const char* jucer_OpenGLComponentSimpleTemplate_h = (const char*) temp_binary_data_58; | |||||
//================== jucer_OpenGLComponentTemplate.cpp ================== | //================== jucer_OpenGLComponentTemplate.cpp ================== | ||||
static const unsigned char temp_binary_data_55[] = | |||||
static const unsigned char temp_binary_data_59[] = | |||||
"%%include_corresponding_header%%\r\n" | "%%include_corresponding_header%%\r\n" | ||||
"\r\n" | "\r\n" | ||||
"//==============================================================================\r\n" | "//==============================================================================\r\n" | ||||
@@ -7946,10 +8204,10 @@ static const unsigned char temp_binary_data_55[] = | |||||
" // update their positions.\r\n" | " // update their positions.\r\n" | ||||
"}\r\n"; | "}\r\n"; | ||||
const char* jucer_OpenGLComponentTemplate_cpp = (const char*) temp_binary_data_55; | |||||
const char* jucer_OpenGLComponentTemplate_cpp = (const char*) temp_binary_data_59; | |||||
//================== jucer_OpenGLComponentTemplate.h ================== | //================== jucer_OpenGLComponentTemplate.h ================== | ||||
static const unsigned char temp_binary_data_56[] = | |||||
static const unsigned char temp_binary_data_60[] = | |||||
"#pragma once\r\n" | "#pragma once\r\n" | ||||
"\r\n" | "\r\n" | ||||
"%%include_juce%%\r\n" | "%%include_juce%%\r\n" | ||||
@@ -7983,10 +8241,10 @@ static const unsigned char temp_binary_data_56[] = | |||||
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n" | " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)\r\n" | ||||
"};\r\n"; | "};\r\n"; | ||||
const char* jucer_OpenGLComponentTemplate_h = (const char*) temp_binary_data_56; | |||||
const char* jucer_OpenGLComponentTemplate_h = (const char*) temp_binary_data_60; | |||||
//================== jucer_PIPAudioProcessorTemplate.h ================== | //================== jucer_PIPAudioProcessorTemplate.h ================== | ||||
static const unsigned char temp_binary_data_57[] = | |||||
static const unsigned char temp_binary_data_61[] = | |||||
"class %%class_name%% : public juce::AudioProcessor\r\n" | "class %%class_name%% : public juce::AudioProcessor\r\n" | ||||
"{\r\n" | "{\r\n" | ||||
"public:\r\n" | "public:\r\n" | ||||
@@ -8095,10 +8353,10 @@ static const unsigned char temp_binary_data_57[] = | |||||
" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%class_name%%)\r\n" | " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%class_name%%)\r\n" | ||||
"};\r\n"; | "};\r\n"; | ||||
const char* jucer_PIPAudioProcessorTemplate_h = (const char*) temp_binary_data_57; | |||||
const char* jucer_PIPAudioProcessorTemplate_h = (const char*) temp_binary_data_61; | |||||
//================== jucer_PIPTemplate.h ================== | //================== jucer_PIPTemplate.h ================== | ||||
static const unsigned char temp_binary_data_58[] = | |||||
static const unsigned char temp_binary_data_62[] = | |||||
"/*******************************************************************************\r\n" | "/*******************************************************************************\r\n" | ||||
" The block below describes the properties of this PIP. A PIP is a short snippet\r\n" | " The block below describes the properties of this PIP. A PIP is a short snippet\r\n" | ||||
" of code that can be read by the Projucer and used to generate a JUCE project.\r\n" | " of code that can be read by the Projucer and used to generate a JUCE project.\r\n" | ||||
@@ -8117,10 +8375,10 @@ static const unsigned char temp_binary_data_58[] = | |||||
"//==============================================================================\r\n" | "//==============================================================================\r\n" | ||||
"%%pip_code%%\r\n"; | "%%pip_code%%\r\n"; | ||||
const char* jucer_PIPTemplate_h = (const char*) temp_binary_data_58; | |||||
const char* jucer_PIPTemplate_h = (const char*) temp_binary_data_62; | |||||
//================== colourscheme_dark.xml ================== | //================== colourscheme_dark.xml ================== | ||||
static const unsigned char temp_binary_data_59[] = | |||||
static const unsigned char temp_binary_data_63[] = | |||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" | "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" | ||||
"\r\n" | "\r\n" | ||||
"<COLOUR_SCHEME font=\"<Monospaced>; 13.0\">\r\n" | "<COLOUR_SCHEME font=\"<Monospaced>; 13.0\">\r\n" | ||||
@@ -8145,10 +8403,10 @@ static const unsigned char temp_binary_data_59[] = | |||||
" <COLOUR name=\"Error\" colour=\"FFE60000\"/>\r\n" | " <COLOUR name=\"Error\" colour=\"FFE60000\"/>\r\n" | ||||
"</COLOUR_SCHEME>\r\n"; | "</COLOUR_SCHEME>\r\n"; | ||||
const char* colourscheme_dark_xml = (const char*) temp_binary_data_59; | |||||
const char* colourscheme_dark_xml = (const char*) temp_binary_data_63; | |||||
//================== colourscheme_light.xml ================== | //================== colourscheme_light.xml ================== | ||||
static const unsigned char temp_binary_data_60[] = | |||||
static const unsigned char temp_binary_data_64[] = | |||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" | "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" | ||||
"\r\n" | "\r\n" | ||||
"<COLOUR_SCHEME font=\"<Monospaced>; 13.0\">\r\n" | "<COLOUR_SCHEME font=\"<Monospaced>; 13.0\">\r\n" | ||||
@@ -8173,10 +8431,10 @@ static const unsigned char temp_binary_data_60[] = | |||||
" <COLOUR name=\"Error\" colour=\"ffcc0000\"/>\r\n" | " <COLOUR name=\"Error\" colour=\"ffcc0000\"/>\r\n" | ||||
"</COLOUR_SCHEME>\r\n"; | "</COLOUR_SCHEME>\r\n"; | ||||
const char* colourscheme_light_xml = (const char*) temp_binary_data_60; | |||||
const char* colourscheme_light_xml = (const char*) temp_binary_data_64; | |||||
//================== juce_runtime_arch_detection.cpp ================== | //================== juce_runtime_arch_detection.cpp ================== | ||||
static const unsigned char temp_binary_data_61[] = | |||||
static const unsigned char temp_binary_data_65[] = | |||||
"/*\r\n" | "/*\r\n" | ||||
" ==============================================================================\r\n" | " ==============================================================================\r\n" | ||||
"\r\n" | "\r\n" | ||||
@@ -8255,7 +8513,7 @@ static const unsigned char temp_binary_data_61[] = | |||||
"\r\n" | "\r\n" | ||||
"#endif\r\n"; | "#endif\r\n"; | ||||
const char* juce_runtime_arch_detection_cpp = (const char*) temp_binary_data_61; | |||||
const char* juce_runtime_arch_detection_cpp = (const char*) temp_binary_data_65; | |||||
const char* getNamedResource (const char* resourceNameUTF8, int& numBytes); | const char* getNamedResource (const char* resourceNameUTF8, int& numBytes); | ||||
@@ -8305,10 +8563,14 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) | |||||
case 0xfb6f6d96: numBytes = 3554; return jucer_AudioComponentSimpleTemplate_h; | case 0xfb6f6d96: numBytes = 3554; return jucer_AudioComponentSimpleTemplate_h; | ||||
case 0xafccbd3f: numBytes = 2941; return jucer_AudioComponentTemplate_cpp; | case 0xafccbd3f: numBytes = 2941; return jucer_AudioComponentTemplate_cpp; | ||||
case 0x915d7304: numBytes = 1187; return jucer_AudioComponentTemplate_h; | case 0x915d7304: numBytes = 1187; return jucer_AudioComponentTemplate_h; | ||||
case 0x744d44d6: numBytes = 1920; return jucer_AudioPluginARADocumentControllerTemplate_cpp; | |||||
case 0x3eb8f45b: numBytes = 1439; return jucer_AudioPluginARADocumentControllerTemplate_h; | |||||
case 0xea35a37d: numBytes = 5192; return jucer_AudioPluginARAPlaybackRendererTemplate_cpp; | |||||
case 0x78a6d0c2: numBytes = 1765; return jucer_AudioPluginARAPlaybackRendererTemplate_h; | |||||
case 0x27c5a93a: numBytes = 1355; return jucer_AudioPluginEditorTemplate_cpp; | case 0x27c5a93a: numBytes = 1355; return jucer_AudioPluginEditorTemplate_cpp; | ||||
case 0x4d0721bf: numBytes = 973; return jucer_AudioPluginEditorTemplate_h; | case 0x4d0721bf: numBytes = 973; return jucer_AudioPluginEditorTemplate_h; | ||||
case 0x51b49ac5: numBytes = 6218; return jucer_AudioPluginFilterTemplate_cpp; | case 0x51b49ac5: numBytes = 6218; return jucer_AudioPluginFilterTemplate_cpp; | ||||
case 0x488afa0a: numBytes = 2299; return jucer_AudioPluginFilterTemplate_h; | |||||
case 0x488afa0a: numBytes = 2462; return jucer_AudioPluginFilterTemplate_h; | |||||
case 0xabad7041: numBytes = 2147; return jucer_ComponentTemplate_cpp; | case 0xabad7041: numBytes = 2147; return jucer_ComponentTemplate_cpp; | ||||
case 0xfc72fe86: numBytes = 2065; return jucer_ComponentTemplate_h; | case 0xfc72fe86: numBytes = 2065; return jucer_ComponentTemplate_h; | ||||
case 0x1657b643: numBytes = 1524; return jucer_ContentCompSimpleTemplate_h; | case 0x1657b643: numBytes = 1524; return jucer_ContentCompSimpleTemplate_h; | ||||
@@ -8376,6 +8638,10 @@ const char* namedResourceList[] = | |||||
"jucer_AudioComponentSimpleTemplate_h", | "jucer_AudioComponentSimpleTemplate_h", | ||||
"jucer_AudioComponentTemplate_cpp", | "jucer_AudioComponentTemplate_cpp", | ||||
"jucer_AudioComponentTemplate_h", | "jucer_AudioComponentTemplate_h", | ||||
"jucer_AudioPluginARADocumentControllerTemplate_cpp", | |||||
"jucer_AudioPluginARADocumentControllerTemplate_h", | |||||
"jucer_AudioPluginARAPlaybackRendererTemplate_cpp", | |||||
"jucer_AudioPluginARAPlaybackRendererTemplate_h", | |||||
"jucer_AudioPluginEditorTemplate_cpp", | "jucer_AudioPluginEditorTemplate_cpp", | ||||
"jucer_AudioPluginEditorTemplate_h", | "jucer_AudioPluginEditorTemplate_h", | ||||
"jucer_AudioPluginFilterTemplate_cpp", | "jucer_AudioPluginFilterTemplate_cpp", | ||||
@@ -8442,6 +8708,10 @@ const char* originalFilenames[] = | |||||
"jucer_AudioComponentSimpleTemplate.h", | "jucer_AudioComponentSimpleTemplate.h", | ||||
"jucer_AudioComponentTemplate.cpp", | "jucer_AudioComponentTemplate.cpp", | ||||
"jucer_AudioComponentTemplate.h", | "jucer_AudioComponentTemplate.h", | ||||
"jucer_AudioPluginARADocumentControllerTemplate.cpp", | |||||
"jucer_AudioPluginARADocumentControllerTemplate.h", | |||||
"jucer_AudioPluginARAPlaybackRendererTemplate.cpp", | |||||
"jucer_AudioPluginARAPlaybackRendererTemplate.h", | |||||
"jucer_AudioPluginEditorTemplate.cpp", | "jucer_AudioPluginEditorTemplate.cpp", | ||||
"jucer_AudioPluginEditorTemplate.h", | "jucer_AudioPluginEditorTemplate.h", | ||||
"jucer_AudioPluginFilterTemplate.cpp", | "jucer_AudioPluginFilterTemplate.cpp", | ||||
@@ -116,6 +116,18 @@ namespace BinaryData | |||||
extern const char* jucer_AudioComponentTemplate_h; | extern const char* jucer_AudioComponentTemplate_h; | ||||
const int jucer_AudioComponentTemplate_hSize = 1187; | const int jucer_AudioComponentTemplate_hSize = 1187; | ||||
extern const char* jucer_AudioPluginARADocumentControllerTemplate_cpp; | |||||
const int jucer_AudioPluginARADocumentControllerTemplate_cppSize = 1920; | |||||
extern const char* jucer_AudioPluginARADocumentControllerTemplate_h; | |||||
const int jucer_AudioPluginARADocumentControllerTemplate_hSize = 1439; | |||||
extern const char* jucer_AudioPluginARAPlaybackRendererTemplate_cpp; | |||||
const int jucer_AudioPluginARAPlaybackRendererTemplate_cppSize = 5192; | |||||
extern const char* jucer_AudioPluginARAPlaybackRendererTemplate_h; | |||||
const int jucer_AudioPluginARAPlaybackRendererTemplate_hSize = 1765; | |||||
extern const char* jucer_AudioPluginEditorTemplate_cpp; | extern const char* jucer_AudioPluginEditorTemplate_cpp; | ||||
const int jucer_AudioPluginEditorTemplate_cppSize = 1355; | const int jucer_AudioPluginEditorTemplate_cppSize = 1355; | ||||
@@ -126,7 +138,7 @@ namespace BinaryData | |||||
const int jucer_AudioPluginFilterTemplate_cppSize = 6218; | const int jucer_AudioPluginFilterTemplate_cppSize = 6218; | ||||
extern const char* jucer_AudioPluginFilterTemplate_h; | extern const char* jucer_AudioPluginFilterTemplate_h; | ||||
const int jucer_AudioPluginFilterTemplate_hSize = 2299; | |||||
const int jucer_AudioPluginFilterTemplate_hSize = 2462; | |||||
extern const char* jucer_ComponentTemplate_cpp; | extern const char* jucer_ComponentTemplate_cpp; | ||||
const int jucer_ComponentTemplate_cppSize = 2147; | const int jucer_ComponentTemplate_cppSize = 2147; | ||||
@@ -195,7 +207,7 @@ namespace BinaryData | |||||
const int juce_runtime_arch_detection_cppSize = 2760; | const int juce_runtime_arch_detection_cppSize = 2760; | ||||
// Number of elements in the namedResourceList and originalFileNames arrays. | // Number of elements in the namedResourceList and originalFileNames arrays. | ||||
const int namedResourceListSize = 62; | |||||
const int namedResourceListSize = 66; | |||||
// Points to the start of a list of resource names. | // Points to the start of a list of resource names. | ||||
extern const char* namedResourceList[]; | extern const char* namedResourceList[]; | ||||
@@ -257,6 +257,14 @@ | |||||
resource="1" file="Source/BinaryData/Templates/jucer_AudioComponentTemplate.cpp"/> | resource="1" file="Source/BinaryData/Templates/jucer_AudioComponentTemplate.cpp"/> | ||||
<FILE id="i9bm2b" name="jucer_AudioComponentTemplate.h" compile="0" | <FILE id="i9bm2b" name="jucer_AudioComponentTemplate.h" compile="0" | ||||
resource="1" file="Source/BinaryData/Templates/jucer_AudioComponentTemplate.h"/> | resource="1" file="Source/BinaryData/Templates/jucer_AudioComponentTemplate.h"/> | ||||
<FILE id="qqnMJs" name="jucer_AudioPluginARADocumentControllerTemplate.cpp" | |||||
compile="0" resource="1" file="Source/BinaryData/Templates/jucer_AudioPluginARADocumentControllerTemplate.cpp"/> | |||||
<FILE id="nEnvoi" name="jucer_AudioPluginARADocumentControllerTemplate.h" | |||||
compile="0" resource="1" file="Source/BinaryData/Templates/jucer_AudioPluginARADocumentControllerTemplate.h"/> | |||||
<FILE id="H2uvhd" name="jucer_AudioPluginARAPlaybackRendererTemplate.cpp" | |||||
compile="0" resource="1" file="Source/BinaryData/Templates/jucer_AudioPluginARAPlaybackRendererTemplate.cpp"/> | |||||
<FILE id="U7eXlD" name="jucer_AudioPluginARAPlaybackRendererTemplate.h" | |||||
compile="0" resource="1" file="Source/BinaryData/Templates/jucer_AudioPluginARAPlaybackRendererTemplate.h"/> | |||||
<FILE id="BYSiw7" name="jucer_AudioPluginEditorTemplate.cpp" compile="0" | <FILE id="BYSiw7" name="jucer_AudioPluginEditorTemplate.cpp" compile="0" | ||||
resource="1" file="Source/BinaryData/Templates/jucer_AudioPluginEditorTemplate.cpp"/> | resource="1" file="Source/BinaryData/Templates/jucer_AudioPluginEditorTemplate.cpp"/> | ||||
<FILE id="wcuIlm" name="jucer_AudioPluginEditorTemplate.h" compile="0" | <FILE id="wcuIlm" name="jucer_AudioPluginEditorTemplate.h" compile="0" | ||||
@@ -46,7 +46,8 @@ namespace NewProjectTemplates | |||||
main, | main, | ||||
header, | header, | ||||
headerAndCpp, | headerAndCpp, | ||||
processorAndEditor | |||||
processorAndEditor, | |||||
araPluginFiles | |||||
}; | }; | ||||
using FilenameAndContent = std::pair<String, String>; | using FilenameAndContent = std::pair<String, String>; | ||||
@@ -87,6 +88,7 @@ namespace NewProjectTemplates | |||||
if (opt == FileCreationOptions::header) return "header"; | if (opt == FileCreationOptions::header) return "header"; | ||||
if (opt == FileCreationOptions::headerAndCpp) return "headercpp"; | if (opt == FileCreationOptions::headerAndCpp) return "headercpp"; | ||||
if (opt == FileCreationOptions::processorAndEditor) return "processoreditor"; | if (opt == FileCreationOptions::processorAndEditor) return "processoreditor"; | ||||
if (opt == FileCreationOptions::araPluginFiles) return "arapluginfiles"; | |||||
jassertfalse; | jassertfalse; | ||||
return {}; | return {}; | ||||
@@ -99,6 +101,7 @@ namespace NewProjectTemplates | |||||
if (opt == "header") return FileCreationOptions::header; | if (opt == "header") return FileCreationOptions::header; | ||||
if (opt == "headercpp") return FileCreationOptions::headerAndCpp; | if (opt == "headercpp") return FileCreationOptions::headerAndCpp; | ||||
if (opt == "processoreditor") return FileCreationOptions::processorAndEditor; | if (opt == "processoreditor") return FileCreationOptions::processorAndEditor; | ||||
if (opt == "arapluginfiles") return FileCreationOptions::araPluginFiles; | |||||
jassertfalse; | jassertfalse; | ||||
return {}; | return {}; | ||||
@@ -111,6 +114,7 @@ namespace NewProjectTemplates | |||||
if (opt == FileCreationOptions::header) return "Main.cpp + .h"; | if (opt == FileCreationOptions::header) return "Main.cpp + .h"; | ||||
if (opt == FileCreationOptions::headerAndCpp) return "Main.cpp + .h/.cpp "; | if (opt == FileCreationOptions::headerAndCpp) return "Main.cpp + .h/.cpp "; | ||||
if (opt == FileCreationOptions::processorAndEditor) return "Processor and Editor"; | if (opt == FileCreationOptions::processorAndEditor) return "Processor and Editor"; | ||||
if (opt == FileCreationOptions::araPluginFiles) return "ARA Plugin Files"; | |||||
jassertfalse; | jassertfalse; | ||||
return {}; | return {}; | ||||
@@ -222,6 +226,24 @@ namespace NewProjectTemplates | |||||
FileCreationOptions::processorAndEditor | FileCreationOptions::processorAndEditor | ||||
}, | }, | ||||
{ ProjectCategory::plugin, | |||||
"ARA", "Creates an ARA audio plug-in, augmenting the basic audio plug-in with ARA functionality.", | |||||
build_tools::ProjectType_ARAAudioPlugin::getTypeName(), | |||||
BinaryData::wizard_AudioPlugin_svg, | |||||
getModulesRequiredForAudioProcessor(), | |||||
{ | |||||
{ FileCreationOptions::araPluginFiles, { { "PluginProcessor.cpp", "jucer_AudioPluginFilterTemplate_cpp" }, | |||||
{ "PluginProcessor.h", "jucer_AudioPluginFilterTemplate_h" }, | |||||
{ "PluginEditor.cpp", "jucer_AudioPluginEditorTemplate_cpp" }, | |||||
{ "PluginEditor.h", "jucer_AudioPluginEditorTemplate_h" }, | |||||
{ "PluginARADocumentController.cpp", "jucer_AudioPluginARADocumentControllerTemplate_cpp" }, | |||||
{ "PluginARADocumentController.h", "jucer_AudioPluginARADocumentControllerTemplate_h" }, | |||||
{ "PluginARAPlaybackRenderer.cpp", "jucer_AudioPluginARAPlaybackRendererTemplate_cpp" }, | |||||
{ "PluginARAPlaybackRenderer.h", "jucer_AudioPluginARAPlaybackRendererTemplate_h" }} } | |||||
}, | |||||
FileCreationOptions::araPluginFiles | |||||
}, | |||||
{ ProjectCategory::library, | { ProjectCategory::library, | ||||
"Static Library", "Creates a static library.", | "Static Library", "Creates a static library.", | ||||
build_tools::ProjectType_StaticLibrary::getTypeName(), | build_tools::ProjectType_StaticLibrary::getTypeName(), | ||||
@@ -114,11 +114,28 @@ static std::map<String, String> getPluginFileTokenReplacements (const String& na | |||||
processorClassName = processorClassName.substring (0, 1).toUpperCase() + processorClassName.substring (1); | processorClassName = processorClassName.substring (0, 1).toUpperCase() + processorClassName.substring (1); | ||||
auto editorClassName = processorClassName + "Editor"; | auto editorClassName = processorClassName + "Editor"; | ||||
const auto araDocumentControllerCppFile = sourceFolder.getChildFile ("PluginARADocumentController.cpp"); | |||||
const auto araDocumentControllerHFile = araDocumentControllerCppFile.withFileExtension (".h"); | |||||
const auto araPlaybackRendererCppFile = sourceFolder.getChildFile ("PluginARAPlaybackRenderer.cpp"); | |||||
const auto araPlaybackRendererHFile = araPlaybackRendererCppFile.withFileExtension (".h"); | |||||
const auto araDocumentControllerHInclude = CodeHelpers::createIncludeStatement (araDocumentControllerHFile, araDocumentControllerCppFile); | |||||
const auto araPlaybackRendererHInclude = CodeHelpers::createIncludeStatement (araPlaybackRendererHFile, araPlaybackRendererCppFile); | |||||
auto araDocumentControllerClassName = build_tools::makeValidIdentifier (name, true, true, false) + "DocumentController"; | |||||
araDocumentControllerClassName = araDocumentControllerClassName.substring (0, 1).toUpperCase() + araDocumentControllerClassName.substring (1); | |||||
auto araPlaybackRendererClassName = build_tools::makeValidIdentifier (name, true, true, false) + "PlaybackRenderer"; | |||||
araPlaybackRendererClassName = araPlaybackRendererClassName.substring (0, 1).toUpperCase() + araPlaybackRendererClassName.substring (1); | |||||
tokenReplacements.insert ({"%%filter_headers%%", processorHInclude + newLine + editorHInclude }); | tokenReplacements.insert ({"%%filter_headers%%", processorHInclude + newLine + editorHInclude }); | ||||
tokenReplacements.insert ({"%%filter_class_name%%", processorClassName }); | tokenReplacements.insert ({"%%filter_class_name%%", processorClassName }); | ||||
tokenReplacements.insert ({"%%editor_class_name%%", editorClassName }); | tokenReplacements.insert ({"%%editor_class_name%%", editorClassName }); | ||||
tokenReplacements.insert ({"%%editor_cpp_headers%%", processorHInclude + newLine + editorHInclude }); | tokenReplacements.insert ({"%%editor_cpp_headers%%", processorHInclude + newLine + editorHInclude }); | ||||
tokenReplacements.insert ({"%%editor_headers%%", getJuceHeaderInclude() + newLine + processorHInclude }); | tokenReplacements.insert ({"%%editor_headers%%", getJuceHeaderInclude() + newLine + processorHInclude }); | ||||
tokenReplacements.insert ({"%%aradocumentcontroller_headers%%", araDocumentControllerHInclude }); | |||||
tokenReplacements.insert ({"%%aradocumentcontroller_class_name%%", araDocumentControllerClassName }); | |||||
tokenReplacements.insert ({"%%araplaybackrenderer_headers%%", araPlaybackRendererHInclude }); | |||||
tokenReplacements.insert ({"%%araplaybackrenderer_class_name%%", araPlaybackRendererClassName }); | |||||
return tokenReplacements; | return tokenReplacements; | ||||
} | } | ||||
@@ -218,6 +218,8 @@ private: | |||||
"If you are building a legacy VST plug-in then this path should point to a VST2 SDK. " | "If you are building a legacy VST plug-in then this path should point to a VST2 SDK. " | ||||
"The VST2 SDK can be obtained from the vstsdk3610_11_06_2018_build_37 (or older) VST3 SDK or JUCE version 5.3.2. " | "The VST2 SDK can be obtained from the vstsdk3610_11_06_2018_build_37 (or older) VST3 SDK or JUCE version 5.3.2. " | ||||
"You also need a VST2 license from Steinberg to distribute VST2 plug-ins."); | "You also need a VST2 license from Steinberg to distribute VST2 plug-ins."); | ||||
builder.add (new FilePathPropertyComponent (araPathValue, "ARA SDK", true, isThisOS), | |||||
"If you are building ARA enabled plug-ins, this should be the path to the ARA SDK folder."); | |||||
if (getSelectedOS() != TargetOS::linux) | if (getSelectedOS() != TargetOS::linux) | ||||
{ | { | ||||
@@ -263,6 +265,7 @@ private: | |||||
userModulePathValue = settings.getStoredPath (Ids::defaultUserModulePath, os); | userModulePathValue = settings.getStoredPath (Ids::defaultUserModulePath, os); | ||||
vstPathValue = settings.getStoredPath (Ids::vstLegacyPath, os); | vstPathValue = settings.getStoredPath (Ids::vstLegacyPath, os); | ||||
aaxPathValue = settings.getStoredPath (Ids::aaxPath, os); | aaxPathValue = settings.getStoredPath (Ids::aaxPath, os); | ||||
araPathValue = settings.getStoredPath (Ids::araPath, os); | |||||
androidSDKPathValue = settings.getStoredPath (Ids::androidSDKPath, os); | androidSDKPathValue = settings.getStoredPath (Ids::androidSDKPath, os); | ||||
clionExePathValue = settings.getStoredPath (Ids::clionExePath, os); | clionExePathValue = settings.getStoredPath (Ids::clionExePath, os); | ||||
androidStudioExePathValue = settings.getStoredPath (Ids::androidStudioExePath, os); | androidStudioExePathValue = settings.getStoredPath (Ids::androidStudioExePath, os); | ||||
@@ -275,6 +278,7 @@ private: | |||||
userModulePathValue .resetToDefault(); | userModulePathValue .resetToDefault(); | ||||
vstPathValue .resetToDefault(); | vstPathValue .resetToDefault(); | ||||
aaxPathValue .resetToDefault(); | aaxPathValue .resetToDefault(); | ||||
araPathValue .resetToDefault(); | |||||
androidSDKPathValue .resetToDefault(); | androidSDKPathValue .resetToDefault(); | ||||
clionExePathValue .resetToDefault(); | clionExePathValue .resetToDefault(); | ||||
androidStudioExePathValue.resetToDefault(); | androidStudioExePathValue.resetToDefault(); | ||||
@@ -286,7 +290,7 @@ private: | |||||
Value selectedOSValue; | Value selectedOSValue; | ||||
ValueTreePropertyWithDefault jucePathValue, juceModulePathValue, userModulePathValue, | ValueTreePropertyWithDefault jucePathValue, juceModulePathValue, userModulePathValue, | ||||
vstPathValue, aaxPathValue, androidSDKPathValue, | |||||
vstPathValue, aaxPathValue, araPathValue, androidSDKPathValue, | |||||
clionExePathValue, androidStudioExePathValue; | clionExePathValue, androidStudioExePathValue; | ||||
Viewport propertyViewport; | Viewport propertyViewport; | ||||
@@ -708,7 +708,7 @@ namespace | |||||
static bool isValidPathIdentifier (const String& id, const String& os) | static bool isValidPathIdentifier (const String& id, const String& os) | ||||
{ | { | ||||
return id == "vstLegacyPath" || (id == "aaxPath" && os != "linux") | |||||
return id == "vstLegacyPath" || (id == "aaxPath" && os != "linux") || id == "araPath" | |||||
|| id == "androidSDKPath" || id == "defaultJuceModulePath" || id == "defaultUserModulePath"; | || id == "androidSDKPath" || id == "defaultJuceModulePath" || id == "defaultUserModulePath"; | ||||
} | } | ||||
@@ -0,0 +1,42 @@ | |||||
/* | |||||
============================================================================== | |||||
This file was auto-generated! | |||||
It contains the basic framework code for an ARA document controller implementation. | |||||
============================================================================== | |||||
*/ | |||||
%%aradocumentcontroller_headers%% | |||||
%%araplaybackrenderer_headers%% | |||||
//============================================================================== | |||||
ARA::PlugIn::PlaybackRenderer* %%aradocumentcontroller_class_name%%::doCreatePlaybackRenderer() noexcept | |||||
{ | |||||
return new %%araplaybackrenderer_class_name%% (getDocumentController()); | |||||
} | |||||
//============================================================================== | |||||
bool %%aradocumentcontroller_class_name%%::doRestoreObjectsFromStream (juce::ARAInputStream& input, const juce::ARARestoreObjectsFilter* filter) noexcept | |||||
{ | |||||
// You should use this method to read any persistent data associated with | |||||
// your ARA model graph stored in an archive using the supplied ARAInputStream. | |||||
// Be sure to check the ARARestoreObjectsFilter to determine which objects to restore. | |||||
return true; | |||||
} | |||||
bool %%aradocumentcontroller_class_name%%::doStoreObjectsToStream (juce::ARAOutputStream& output, const juce::ARAStoreObjectsFilter* filter) noexcept | |||||
{ | |||||
// You should use this method to write any persistent data associated with | |||||
// your ARA model graph into the an archive using the supplied ARAOutputStream. | |||||
// Be sure to check the ARAStoreObjectsFilter to determine which objects to store. | |||||
return true; | |||||
} | |||||
//============================================================================== | |||||
// This creates the static ARAFactory instances for the plugin. | |||||
const ARA::ARAFactory* JUCE_CALLTYPE createARAFactory() | |||||
{ | |||||
return juce::ARADocumentControllerSpecialisation::createARAFactory<%%aradocumentcontroller_class_name%%>(); | |||||
} |
@@ -0,0 +1,36 @@ | |||||
/* | |||||
============================================================================== | |||||
This file was auto-generated! | |||||
It contains the basic framework code for an ARA document controller implementation. | |||||
============================================================================== | |||||
*/ | |||||
#pragma once | |||||
#include <juce_audio_processors/juce_audio_processors.h> | |||||
//============================================================================== | |||||
/** | |||||
*/ | |||||
class %%aradocumentcontroller_class_name%% : public juce::ARADocumentControllerSpecialisation | |||||
{ | |||||
public: | |||||
//============================================================================== | |||||
using ARADocumentControllerSpecialisation::ARADocumentControllerSpecialisation; | |||||
protected: | |||||
//============================================================================== | |||||
// Override document controller customization methods here | |||||
ARAPlaybackRenderer* doCreatePlaybackRenderer() noexcept override; | |||||
bool doRestoreObjectsFromStream (juce::ARAInputStream& input, const juce::ARARestoreObjectsFilter* filter) noexcept override; | |||||
bool doStoreObjectsToStream (juce::ARAOutputStream& output, const juce::ARAStoreObjectsFilter* filter) noexcept override; | |||||
private: | |||||
//============================================================================== | |||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%aradocumentcontroller_class_name%%) | |||||
}; |
@@ -0,0 +1,112 @@ | |||||
/* | |||||
============================================================================== | |||||
This file was auto-generated! | |||||
It contains the basic framework code for an ARA playback renderer implementation. | |||||
============================================================================== | |||||
*/ | |||||
%%araplaybackrenderer_headers%% | |||||
//============================================================================== | |||||
void %%araplaybackrenderer_class_name%%::prepareToPlay (double sampleRateIn, int maximumSamplesPerBlockIn, int numChannelsIn, juce::AudioProcessor::ProcessingPrecision, AlwaysNonRealtime alwaysNonRealtime) | |||||
{ | |||||
numChannels = numChannelsIn; | |||||
sampleRate = sampleRateIn; | |||||
maximumSamplesPerBlock = maximumSamplesPerBlockIn; | |||||
useBufferedAudioSourceReader = alwaysNonRealtime == AlwaysNonRealtime::no; | |||||
} | |||||
void %%araplaybackrenderer_class_name%%::releaseResources() | |||||
{ | |||||
} | |||||
//============================================================================== | |||||
bool %%araplaybackrenderer_class_name%%::processBlock (juce::AudioBuffer<float>& buffer, juce::AudioProcessor::Realtime realtime, const juce::AudioPlayHead::CurrentPositionInfo& positionInfo) noexcept | |||||
{ | |||||
const auto numSamples = buffer.getNumSamples(); | |||||
jassert (numSamples <= maximumSamplesPerBlock); | |||||
jassert (numChannels == buffer.getNumChannels()); | |||||
jassert (realtime == juce::AudioProcessor::Realtime::no || useBufferedAudioSourceReader); | |||||
const auto timeInSamples = positionInfo.timeInSamples; | |||||
const auto isPlaying = positionInfo.isPlaying; | |||||
bool success = true; | |||||
bool didRenderAnyRegion = false; | |||||
if (isPlaying) | |||||
{ | |||||
const auto blockRange = juce::Range<juce::int64>::withStartAndLength (timeInSamples, numSamples); | |||||
for (const auto& playbackRegion : getPlaybackRegions()) | |||||
{ | |||||
// Evaluate region borders in song time, calculate sample range to render in song time. | |||||
// Note that this example does not use head- or tailtime, so the includeHeadAndTail | |||||
// parameter is set to false here - this might need to be adjusted in actual plug-ins. | |||||
const auto playbackSampleRange = playbackRegion->getSampleRange (sampleRate, | |||||
juce::ARAPlaybackRegion::IncludeHeadAndTail::no); | |||||
auto renderRange = blockRange.getIntersectionWith (playbackSampleRange); | |||||
if (renderRange.isEmpty()) | |||||
continue; | |||||
// Evaluate region borders in modification/source time and calculate offset between | |||||
// song and source samples, then clip song samples accordingly | |||||
// (if an actual plug-in supports time stretching, this must be taken into account here). | |||||
juce::Range<juce::int64> modificationSampleRange { playbackRegion->getStartInAudioModificationSamples(), | |||||
playbackRegion->getEndInAudioModificationSamples() }; | |||||
const auto modificationSampleOffset = modificationSampleRange.getStart() - playbackSampleRange.getStart(); | |||||
renderRange = renderRange.getIntersectionWith (modificationSampleRange.movedToStartAt (playbackSampleRange.getStart())); | |||||
if (renderRange.isEmpty()) | |||||
continue; | |||||
// Now calculate the samples in renderRange for this PlaybackRegion based on the ARA model | |||||
// graph. If didRenderAnyRegion is true, add the region's output samples in renderRange to | |||||
// the buffer. Otherwise the buffer needs to be initialised so the sample value must be | |||||
// overwritten. | |||||
const int numSamplesToRead = (int) renderRange.getLength(); | |||||
const int startInBuffer = (int) (renderRange.getStart() - blockRange.getStart()); | |||||
const auto startInSource = renderRange.getStart() + modificationSampleOffset; | |||||
for (int c = 0; c < numChannels; ++c) | |||||
{ | |||||
auto* channelData = buffer.getWritePointer (c); | |||||
for (int i = 0; i < numSamplesToRead; ++i) | |||||
{ | |||||
// Calculate region output sample at index startInSource + i ... | |||||
float sample = 0.0f; | |||||
if (didRenderAnyRegion) | |||||
channelData[startInBuffer + i] += sample; | |||||
else | |||||
channelData[startInBuffer + i] = sample; | |||||
} | |||||
} | |||||
// If rendering first region, clear any excess at start or end of the region. | |||||
if (! didRenderAnyRegion) | |||||
{ | |||||
if (startInBuffer != 0) | |||||
buffer.clear (0, startInBuffer); | |||||
const int endInBuffer = startInBuffer + numSamples; | |||||
const int remainingSamples = numSamples - endInBuffer; | |||||
if (remainingSamples != 0) | |||||
buffer.clear (endInBuffer, remainingSamples); | |||||
didRenderAnyRegion = true; | |||||
} | |||||
} | |||||
} | |||||
if (! didRenderAnyRegion) | |||||
buffer.clear(); | |||||
return success; | |||||
} |
@@ -0,0 +1,45 @@ | |||||
/* | |||||
============================================================================== | |||||
This file was auto-generated! | |||||
It contains the basic framework code for an ARA playback renderer implementation. | |||||
============================================================================== | |||||
*/ | |||||
#pragma once | |||||
#include <juce_audio_processors/juce_audio_processors.h> | |||||
//============================================================================== | |||||
/** | |||||
*/ | |||||
class %%araplaybackrenderer_class_name%% : public juce::ARAPlaybackRenderer | |||||
{ | |||||
public: | |||||
//============================================================================== | |||||
using juce::ARAPlaybackRenderer::ARAPlaybackRenderer; | |||||
//============================================================================== | |||||
void prepareToPlay (double sampleRate, | |||||
int maximumSamplesPerBlock, | |||||
int numChannels, | |||||
juce::AudioProcessor::ProcessingPrecision, | |||||
AlwaysNonRealtime alwaysNonRealtime) override; | |||||
void releaseResources() override; | |||||
//============================================================================== | |||||
bool processBlock (juce::AudioBuffer<float> & buffer, | |||||
juce::AudioProcessor::Realtime realtime, | |||||
const juce::AudioPlayHead::CurrentPositionInfo& positionInfo) noexcept override; | |||||
private: | |||||
//============================================================================== | |||||
double sampleRate = 44100.0; | |||||
int maximumSamplesPerBlock = 4096; | |||||
int numChannels = 1; | |||||
bool useBufferedAudioSourceReader = true; | |||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%araplaybackrenderer_class_name%%) | |||||
}; |
@@ -14,6 +14,9 @@ | |||||
/** | /** | ||||
*/ | */ | ||||
class %%filter_class_name%% : public juce::AudioProcessor | class %%filter_class_name%% : public juce::AudioProcessor | ||||
#if JucePlugin_Enable_ARA | |||||
, public juce::AudioProcessorARAExtension | |||||
#endif | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -156,6 +156,9 @@ void Project::updateTitleDependencies() | |||||
pluginAUExportPrefixValue.setDefault (build_tools::makeValidIdentifier (projectName, false, true, false) + "AU"); | pluginAUExportPrefixValue.setDefault (build_tools::makeValidIdentifier (projectName, false, true, false) + "AU"); | ||||
pluginAAXIdentifierValue. setDefault (getDefaultAAXIdentifierString()); | pluginAAXIdentifierValue. setDefault (getDefaultAAXIdentifierString()); | ||||
pluginLV2URIValue. setDefault (getDefaultLV2URI()); | pluginLV2URIValue. setDefault (getDefaultLV2URI()); | ||||
pluginARAFactoryIDValue. setDefault (getDefaultARAFactoryIDString()); | |||||
pluginARAArchiveIDValue. setDefault (getDefaultARADocumentArchiveID()); | |||||
pluginARACompatibleArchiveIDsValue.setDefault (getDefaultARACompatibleArchiveIDs()); | |||||
} | } | ||||
String Project::getDocumentTitle() | String Project::getDocumentTitle() | ||||
@@ -166,7 +169,10 @@ String Project::getDocumentTitle() | |||||
void Project::updateCompanyNameDependencies() | void Project::updateCompanyNameDependencies() | ||||
{ | { | ||||
bundleIdentifierValue.setDefault (getDefaultBundleIdentifierString()); | bundleIdentifierValue.setDefault (getDefaultBundleIdentifierString()); | ||||
companyWebsiteValue.setDefault (getDefaultCompanyWebsiteString()); | |||||
pluginAAXIdentifierValue.setDefault (getDefaultAAXIdentifierString()); | pluginAAXIdentifierValue.setDefault (getDefaultAAXIdentifierString()); | ||||
pluginARAFactoryIDValue.setDefault (getDefaultARAFactoryIDString()); | |||||
pluginARAArchiveIDValue.setDefault (getDefaultARADocumentArchiveID()); | |||||
pluginManufacturerValue.setDefault (getDefaultPluginManufacturerString()); | pluginManufacturerValue.setDefault (getDefaultPluginManufacturerString()); | ||||
updateLicenseWarning(); | updateLicenseWarning(); | ||||
@@ -273,7 +279,7 @@ void Project::initialiseProjectValues() | |||||
companyNameValue.referTo (projectRoot, Ids::companyName, getUndoManager()); | companyNameValue.referTo (projectRoot, Ids::companyName, getUndoManager()); | ||||
companyCopyrightValue.referTo (projectRoot, Ids::companyCopyright, getUndoManager()); | companyCopyrightValue.referTo (projectRoot, Ids::companyCopyright, getUndoManager()); | ||||
companyWebsiteValue.referTo (projectRoot, Ids::companyWebsite, getUndoManager()); | |||||
companyWebsiteValue.referTo (projectRoot, Ids::companyWebsite, getUndoManager(), getDefaultCompanyWebsiteString()); | |||||
companyEmailValue.referTo (projectRoot, Ids::companyEmail, getUndoManager()); | companyEmailValue.referTo (projectRoot, Ids::companyEmail, getUndoManager()); | ||||
projectTypeValue.referTo (projectRoot, Ids::projectType, getUndoManager(), build_tools::ProjectType_GUIApp::getTypeName()); | projectTypeValue.referTo (projectRoot, Ids::projectType, getUndoManager(), build_tools::ProjectType_GUIApp::getTypeName()); | ||||
@@ -329,6 +335,8 @@ void Project::initialiseAudioPluginValues() | |||||
pluginCodeValue.referTo (projectRoot, Ids::pluginCode, getUndoManager(), makeValid4CC (getProjectUIDString() + getProjectUIDString())); | pluginCodeValue.referTo (projectRoot, Ids::pluginCode, getUndoManager(), makeValid4CC (getProjectUIDString() + getProjectUIDString())); | ||||
pluginChannelConfigsValue.referTo (projectRoot, Ids::pluginChannelConfigs, getUndoManager()); | pluginChannelConfigsValue.referTo (projectRoot, Ids::pluginChannelConfigs, getUndoManager()); | ||||
pluginAAXIdentifierValue.referTo (projectRoot, Ids::aaxIdentifier, getUndoManager(), getDefaultAAXIdentifierString()); | pluginAAXIdentifierValue.referTo (projectRoot, Ids::aaxIdentifier, getUndoManager(), getDefaultAAXIdentifierString()); | ||||
pluginARAFactoryIDValue.referTo (projectRoot, Ids::araFactoryID, getUndoManager(), getDefaultARAFactoryIDString()); | |||||
pluginARAArchiveIDValue.referTo (projectRoot, Ids::araDocumentArchiveID, getUndoManager(), getDefaultARADocumentArchiveID()); | |||||
pluginAUExportPrefixValue.referTo (projectRoot, Ids::pluginAUExportPrefix, getUndoManager(), | pluginAUExportPrefixValue.referTo (projectRoot, Ids::pluginAUExportPrefix, getUndoManager(), | ||||
build_tools::makeValidIdentifier (getProjectNameString(), false, true, false) + "AU"); | build_tools::makeValidIdentifier (getProjectNameString(), false, true, false) + "AU"); | ||||
@@ -338,6 +346,11 @@ void Project::initialiseAudioPluginValues() | |||||
pluginVST3CategoryValue.referTo (projectRoot, Ids::pluginVST3Category, getUndoManager(), getDefaultVST3Categories(), ","); | pluginVST3CategoryValue.referTo (projectRoot, Ids::pluginVST3Category, getUndoManager(), getDefaultVST3Categories(), ","); | ||||
pluginAAXCategoryValue.referTo (projectRoot, Ids::pluginAAXCategory, getUndoManager(), getDefaultAAXCategories(), ","); | pluginAAXCategoryValue.referTo (projectRoot, Ids::pluginAAXCategory, getUndoManager(), getDefaultAAXCategories(), ","); | ||||
pluginEnableARA.referTo (projectRoot, Ids::enableARA, getUndoManager(), shouldEnableARA(), ","); | |||||
pluginARAAnalyzableContentValue.referTo (projectRoot, Ids::pluginARAAnalyzableContent, getUndoManager(), getDefaultARAContentTypes(), ","); | |||||
pluginARATransformFlagsValue.referTo (projectRoot, Ids::pluginARATransformFlags, getUndoManager(), getDefaultARATransformationFlags(), ","); | |||||
pluginARACompatibleArchiveIDsValue.referTo (projectRoot, Ids::araCompatibleArchiveIDs, getUndoManager(), getDefaultARACompatibleArchiveIDs()); | |||||
pluginVSTNumMidiInputsValue.referTo (projectRoot, Ids::pluginVSTNumMidiInputs, getUndoManager(), 16); | pluginVSTNumMidiInputsValue.referTo (projectRoot, Ids::pluginVSTNumMidiInputs, getUndoManager(), 16); | ||||
pluginVSTNumMidiOutputsValue.referTo (projectRoot, Ids::pluginVSTNumMidiOutputs, getUndoManager(), 16); | pluginVSTNumMidiOutputsValue.referTo (projectRoot, Ids::pluginVSTNumMidiOutputs, getUndoManager(), 16); | ||||
@@ -504,6 +517,24 @@ void Project::updatePluginCategories() | |||||
pluginVSTCategoryValue.resetToDefault(); | pluginVSTCategoryValue.resetToDefault(); | ||||
} | } | ||||
{ | |||||
const auto araAnalyzableContent = projectRoot.getProperty (Ids::pluginARAAnalyzableContent, {}).toString(); | |||||
if (getAllARAContentTypeVars().contains (araAnalyzableContent)) | |||||
pluginARAAnalyzableContentValue = araAnalyzableContent; | |||||
else if (getAllARAContentTypeStrings().contains (araAnalyzableContent)) | |||||
pluginARAAnalyzableContentValue = Array<var> (getAllARAContentTypeVars()[getAllARAContentTypeStrings().indexOf (araAnalyzableContent)]); | |||||
} | |||||
{ | |||||
const auto araTransformationFlags = projectRoot.getProperty (Ids::pluginARATransformFlags, {}).toString(); | |||||
if (getAllARATransformationFlagVars().contains (araTransformationFlags)) | |||||
pluginARATransformFlagsValue = araTransformationFlags; | |||||
else if (getAllARATransformationFlagStrings().contains (araTransformationFlags)) | |||||
pluginARATransformFlagsValue = Array<var> (getAllARATransformationFlagVars()[getAllARATransformationFlagStrings().indexOf (araTransformationFlags)]); | |||||
} | |||||
{ | { | ||||
auto auMainType = projectRoot.getProperty (Ids::pluginAUMainType, {}).toString(); | auto auMainType = projectRoot.getProperty (Ids::pluginAUMainType, {}).toString(); | ||||
@@ -1081,6 +1112,9 @@ void Project::valueTreePropertyChanged (ValueTree& tree, const Identifier& prope | |||||
pluginVSTCategoryValue.setDefault (getDefaultVSTCategories()); | pluginVSTCategoryValue.setDefault (getDefaultVSTCategories()); | ||||
pluginVST3CategoryValue.setDefault (getDefaultVST3Categories()); | pluginVST3CategoryValue.setDefault (getDefaultVST3Categories()); | ||||
pluginAAXCategoryValue.setDefault (getDefaultAAXCategories()); | pluginAAXCategoryValue.setDefault (getDefaultAAXCategories()); | ||||
pluginEnableARA.setDefault (getDefaultEnableARA()); | |||||
pluginARAAnalyzableContentValue.setDefault (getDefaultARAContentTypes()); | |||||
pluginARATransformFlagsValue.setDefault (getDefaultARATransformationFlags()); | |||||
if (shouldWriteLegacyPluginCharacteristicsSettings) | if (shouldWriteLegacyPluginCharacteristicsSettings) | ||||
writeLegacyPluginCharacteristicsSettings(); | writeLegacyPluginCharacteristicsSettings(); | ||||
@@ -1427,14 +1461,23 @@ void Project::createPropertyEditors (PropertyListBuilder& props) | |||||
void Project::createAudioPluginPropertyEditors (PropertyListBuilder& props) | void Project::createAudioPluginPropertyEditors (PropertyListBuilder& props) | ||||
{ | { | ||||
props.add (new MultiChoicePropertyComponent (pluginFormatsValue, "Plugin Formats", | |||||
{ "VST3", "AU", "AUv3", "AAX", "Standalone", "LV2", "Unity", "Enable IAA", "VST (Legacy)" }, | |||||
{ Ids::buildVST3.toString(), Ids::buildAU.toString(), Ids::buildAUv3.toString(), | |||||
Ids::buildAAX.toString(), Ids::buildStandalone.toString(), | |||||
Ids::buildLV2.toString(), Ids::buildUnity.toString(), Ids::enableIAA.toString(), Ids::buildVST.toString() }), | |||||
"Plugin formats to build. If you have selected \"VST (Legacy)\" then you will need to ensure that you have a VST2 SDK " | |||||
"in your header search paths. The VST2 SDK can be obtained from the vstsdk3610_11_06_2018_build_37 (or older) VST3 SDK " | |||||
"or JUCE version 5.3.2. You also need a VST2 license from Steinberg to distribute VST2 plug-ins."); | |||||
{ | |||||
StringArray pluginFormatChoices { "VST3", "AU", "AUv3", "AAX", "Standalone", "LV2", "Unity", "Enable IAA", "VST (Legacy)" }; | |||||
Array<var> pluginFormatChoiceValues { Ids::buildVST3.toString(), Ids::buildAU.toString(), Ids::buildAUv3.toString(), | |||||
Ids::buildAAX.toString(), Ids::buildStandalone.toString(), | |||||
Ids::buildLV2.toString(), Ids::buildUnity.toString(), Ids::enableIAA.toString(), Ids::buildVST.toString() }; | |||||
if (! getProjectType().isARAAudioPlugin()) | |||||
{ | |||||
pluginFormatChoices.add ("Enable ARA"); | |||||
pluginFormatChoiceValues.add (Ids::enableARA.toString()); | |||||
} | |||||
props.add (new MultiChoicePropertyComponent (pluginFormatsValue, "Plugin Formats", pluginFormatChoices, pluginFormatChoiceValues), | |||||
"Plugin formats to build. If you have selected \"VST (Legacy)\" then you will need to ensure that you have a VST2 SDK " | |||||
"in your header search paths. The VST2 SDK can be obtained from the vstsdk3610_11_06_2018_build_37 (or older) VST3 SDK " | |||||
"or JUCE version 5.3.2. You also need a VST2 license from Steinberg to distribute VST2 plug-ins. If you enable ARA you " | |||||
"will have to obtain the ARA SDK by recursively cloning https://github.com/Celemony/ARA_SDK and checking out the tag " | |||||
"releases/2.1.0."); | |||||
} | |||||
props.add (new MultiChoicePropertyComponent (pluginCharacteristicsValue, "Plugin Characteristics", | props.add (new MultiChoicePropertyComponent (pluginCharacteristicsValue, "Plugin Characteristics", | ||||
{ "Plugin is a Synth", "Plugin MIDI Input", "Plugin MIDI Output", "MIDI Effect Plugin", "Plugin Editor Requires Keyboard Focus", | { "Plugin is a Synth", "Plugin MIDI Input", "Plugin MIDI Output", "MIDI Effect Plugin", "Plugin Editor Requires Keyboard Focus", | ||||
"Disable AAX Bypass", "Disable AAX Multi-Mono" }, | "Disable AAX Bypass", "Disable AAX Multi-Mono" }, | ||||
@@ -1515,6 +1558,25 @@ void Project::createAudioPluginPropertyEditors (PropertyListBuilder& props) | |||||
"This acts as a unique identifier for this plugin. " | "This acts as a unique identifier for this plugin. " | ||||
"If you make any incompatible changes to your plugin (remove parameters, reorder parameters, change preset format etc.) " | "If you make any incompatible changes to your plugin (remove parameters, reorder parameters, change preset format etc.) " | ||||
"you MUST change this value. LV2 hosts will assume that any plugins with the same URI are interchangeable."); | "you MUST change this value. LV2 hosts will assume that any plugins with the same URI are interchangeable."); | ||||
if (shouldEnableARA()) | |||||
{ | |||||
props.add (new MultiChoicePropertyComponent (pluginARAAnalyzableContentValue, "Plugin ARA Analyzeable Content Types", getAllARAContentTypeStrings(), getAllARAContentTypeVars()), | |||||
"ARA Analyzeable Content Types."); | |||||
props.add (new MultiChoicePropertyComponent (pluginARATransformFlagsValue, "Plugin ARA Transformation Flags", getAllARATransformationFlagStrings(), getAllARATransformationFlagVars()), | |||||
"ARA Transformation Flags."); | |||||
props.add (new TextPropertyComponent (pluginARAFactoryIDValue, "Plugin ARA Factory ID", 256, false), | |||||
"ARA Factory ID."); | |||||
props.add (new TextPropertyComponent (pluginARAArchiveIDValue, "Plugin ARA Document Archive ID", 256, false), | |||||
"ARA Document Archive ID."); | |||||
props.add (new TextPropertyComponent (pluginARACompatibleArchiveIDsValue, "Plugin ARA Compatible Document Archive IDs", 1024, true), | |||||
"List of compatible ARA Document Archive IDs - one per line"); | |||||
} | |||||
} | } | ||||
//============================================================================== | //============================================================================== | ||||
@@ -2110,11 +2172,31 @@ String Project::getDefaultBundleIdentifierString() const | |||||
+ "." + build_tools::makeValidIdentifier (getProjectNameString(), false, true, false); | + "." + build_tools::makeValidIdentifier (getProjectNameString(), false, true, false); | ||||
} | } | ||||
String Project::getDefaultCompanyWebsiteString() const | |||||
{ | |||||
return "www." + build_tools::makeValidIdentifier (getCompanyNameOrDefault (getCompanyNameString()), false, true, false) + ".com"; | |||||
} | |||||
String Project::getDefaultPluginManufacturerString() const | String Project::getDefaultPluginManufacturerString() const | ||||
{ | { | ||||
return getCompanyNameOrDefault (getCompanyNameString()); | return getCompanyNameOrDefault (getCompanyNameString()); | ||||
} | } | ||||
String Project::getDefaultARAFactoryIDString() const | |||||
{ | |||||
return getDefaultBundleIdentifierString() + ".factory"; | |||||
} | |||||
String Project::getDefaultARADocumentArchiveID() const | |||||
{ | |||||
return getDefaultBundleIdentifierString() + ".aradocumentarchive." + getVersionString(); | |||||
} | |||||
String Project::getDefaultARACompatibleArchiveIDs() const | |||||
{ | |||||
return String(); | |||||
} | |||||
String Project::getAUMainTypeString() const noexcept | String Project::getAUMainTypeString() const noexcept | ||||
{ | { | ||||
auto v = pluginAUMainTypeValue.get(); | auto v = pluginAUMainTypeValue.get(); | ||||
@@ -2222,6 +2304,32 @@ String Project::getIAAPluginName() const | |||||
return s; | return s; | ||||
} | } | ||||
int Project::getARAContentTypes() const noexcept | |||||
{ | |||||
int res = 0; | |||||
if (auto* arr = pluginARAAnalyzableContentValue.get().getArray()) | |||||
{ | |||||
for (auto c : *arr) | |||||
res |= (int) c; | |||||
} | |||||
return res; | |||||
} | |||||
int Project::getARATransformationFlags() const noexcept | |||||
{ | |||||
int res = 0; | |||||
if (auto* arr = pluginARATransformFlagsValue.get().getArray()) | |||||
{ | |||||
for (auto c : *arr) | |||||
res |= (int) c; | |||||
} | |||||
return res; | |||||
} | |||||
//============================================================================== | //============================================================================== | ||||
bool Project::isAUPluginHost() | bool Project::isAUPluginHost() | ||||
{ | { | ||||
@@ -2243,6 +2351,16 @@ bool Project::isLV2PluginHost() | |||||
return getEnabledModules().isModuleEnabled ("juce_audio_processors") && isConfigFlagEnabled ("JUCE_PLUGINHOST_LV2", false); | return getEnabledModules().isModuleEnabled ("juce_audio_processors") && isConfigFlagEnabled ("JUCE_PLUGINHOST_LV2", false); | ||||
} | } | ||||
bool Project::isARAPluginHost() | |||||
{ | |||||
return (isVST3PluginHost() || isAUPluginHost()) && isConfigFlagEnabled ("JUCE_PLUGINHOST_ARA", false); | |||||
} | |||||
void Project::disableStandaloneForARAPlugIn() | |||||
{ | |||||
pluginFormatsValue.referTo (projectRoot, Ids::pluginFormats, getUndoManager(), Array<var> (Ids::buildVST3.toString(), Ids::buildAU.toString()), ","); | |||||
} | |||||
//============================================================================== | //============================================================================== | ||||
StringArray Project::getAllAUMainTypeStrings() noexcept | StringArray Project::getAllAUMainTypeStrings() noexcept | ||||
{ | { | ||||
@@ -2332,6 +2450,67 @@ Array<var> Project::getDefaultAAXCategories() const noexcept | |||||
return getAllAAXCategoryVars()[getAllAAXCategoryStrings().indexOf ("AAX_ePlugInCategory_None")]; | return getAllAAXCategoryVars()[getAllAAXCategoryStrings().indexOf ("AAX_ePlugInCategory_None")]; | ||||
} | } | ||||
bool Project::getDefaultEnableARA() const noexcept | |||||
{ | |||||
return false; | |||||
} | |||||
StringArray Project::getAllARAContentTypeStrings() noexcept | |||||
{ | |||||
static StringArray araContentTypes { "Notes", | |||||
"Tempo Entries", | |||||
"Bar Signatures", | |||||
"Static Tuning", | |||||
"Dynamic Tuning Offsets", | |||||
"Key Signatures", | |||||
"Sheet Chords" }; | |||||
return araContentTypes; | |||||
} | |||||
Array<var> Project::getAllARAContentTypeVars() noexcept | |||||
{ | |||||
static Array<var> araContentVars { | |||||
/*kARAContentTypeNotes =*/ 1 << 0, | |||||
/*kARAContentTypeTempoEntries =*/ 1 << 1, | |||||
/*kARAContentTypeBarSignatures =*/ 1 << 2, | |||||
/*kARAContentTypeStaticTuning =*/ 1 << 3, | |||||
/*kARAContentTypeDynamicTuningOffsets =*/ 1 << 4, | |||||
/*kARAContentTypeKeySignatures =*/ 1 << 5, | |||||
/*kARAContentTypeSheetChords =*/ 1 << 6, | |||||
}; | |||||
return araContentVars; | |||||
} | |||||
Array<var> Project::getDefaultARAContentTypes() const noexcept | |||||
{ | |||||
return {}; | |||||
} | |||||
StringArray Project::getAllARATransformationFlagStrings() noexcept | |||||
{ | |||||
static StringArray araTransformationFlags { "Time Stretch", | |||||
"Time Stretch (reflecting tempo)", | |||||
"Content Based Fades At Tail", | |||||
"Content Based Fades At Head" }; | |||||
return araTransformationFlags; | |||||
} | |||||
Array<var> Project::getAllARATransformationFlagVars() noexcept | |||||
{ | |||||
static Array<var> araContentVars { | |||||
/*kARAPlaybackTransformationTimestretch =*/ 1 << 0, | |||||
/*kARAPlaybackTransformationTimestretchReflectingTempo =*/ 1 << 1, | |||||
/*kARAPlaybackTransformationContentBasedFadesAtTail =*/ 1 << 2, | |||||
/*kARAPlaybackTransformationContentBasedFadesAtHead =*/ 1 << 3 | |||||
}; | |||||
return araContentVars; | |||||
} | |||||
Array<var> Project::getDefaultARATransformationFlags() const noexcept | |||||
{ | |||||
return {}; | |||||
} | |||||
//============================================================================== | //============================================================================== | ||||
EnabledModulesList& Project::getEnabledModules() | EnabledModulesList& Project::getEnabledModules() | ||||
{ | { | ||||
@@ -2587,6 +2766,7 @@ StringPairArray Project::getAudioPluginFlags() const | |||||
flags.set ("JucePlugin_Build_Unity", boolToString (shouldBuildUnityPlugin())); | flags.set ("JucePlugin_Build_Unity", boolToString (shouldBuildUnityPlugin())); | ||||
flags.set ("JucePlugin_Build_LV2", boolToString (shouldBuildLV2())); | flags.set ("JucePlugin_Build_LV2", boolToString (shouldBuildLV2())); | ||||
flags.set ("JucePlugin_Enable_IAA", boolToString (shouldEnableIAA())); | flags.set ("JucePlugin_Enable_IAA", boolToString (shouldEnableIAA())); | ||||
flags.set ("JucePlugin_Enable_ARA", boolToString (shouldEnableARA())); | |||||
flags.set ("JucePlugin_Name", toStringLiteral (getPluginNameString())); | flags.set ("JucePlugin_Name", toStringLiteral (getPluginNameString())); | ||||
flags.set ("JucePlugin_Desc", toStringLiteral (getPluginDescriptionString())); | flags.set ("JucePlugin_Desc", toStringLiteral (getPluginDescriptionString())); | ||||
flags.set ("JucePlugin_Manufacturer", toStringLiteral (getPluginManufacturerString())); | flags.set ("JucePlugin_Manufacturer", toStringLiteral (getPluginManufacturerString())); | ||||
@@ -2622,6 +2802,11 @@ StringPairArray Project::getAudioPluginFlags() const | |||||
flags.set ("JucePlugin_IAAName", toStringLiteral (getIAAPluginName())); | flags.set ("JucePlugin_IAAName", toStringLiteral (getIAAPluginName())); | ||||
flags.set ("JucePlugin_VSTNumMidiInputs", getVSTNumMIDIInputsString()); | flags.set ("JucePlugin_VSTNumMidiInputs", getVSTNumMIDIInputsString()); | ||||
flags.set ("JucePlugin_VSTNumMidiOutputs", getVSTNumMIDIOutputsString()); | flags.set ("JucePlugin_VSTNumMidiOutputs", getVSTNumMIDIOutputsString()); | ||||
flags.set ("JucePlugin_ARAContentTypes", String (getARAContentTypes())); | |||||
flags.set ("JucePlugin_ARATransformationFlags", String (getARATransformationFlags())); | |||||
flags.set ("JucePlugin_ARAFactoryID", toStringLiteral(getARAFactoryIDString())); | |||||
flags.set ("JucePlugin_ARADocumentArchiveID", toStringLiteral(getARADocumentArchiveIDString())); | |||||
flags.set ("JucePlugin_ARACompatibleArchiveIDs", toStringLiteral(getARACompatibleArchiveIDStrings())); | |||||
{ | { | ||||
String plugInChannelConfig = getPluginChannelConfigsString(); | String plugInChannelConfig = getPluginChannelConfigsString(); | ||||
@@ -192,9 +192,13 @@ public: | |||||
String getBundleIdentifierString() const { return bundleIdentifierValue.get(); } | String getBundleIdentifierString() const { return bundleIdentifierValue.get(); } | ||||
String getDefaultBundleIdentifierString() const; | String getDefaultBundleIdentifierString() const; | ||||
String getDefaultCompanyWebsiteString() const; | |||||
String getDefaultAAXIdentifierString() const { return getDefaultBundleIdentifierString(); } | String getDefaultAAXIdentifierString() const { return getDefaultBundleIdentifierString(); } | ||||
String getDefaultPluginManufacturerString() const; | String getDefaultPluginManufacturerString() const; | ||||
String getDefaultLV2URI() const { return getCompanyWebsiteString() + "/plugins/" + build_tools::makeValidIdentifier (getProjectNameString(), false, true, false); } | String getDefaultLV2URI() const { return getCompanyWebsiteString() + "/plugins/" + build_tools::makeValidIdentifier (getProjectNameString(), false, true, false); } | ||||
String getDefaultARAFactoryIDString() const; | |||||
String getDefaultARADocumentArchiveID() const; | |||||
String getDefaultARACompatibleArchiveIDs() const; | |||||
String getCompanyNameString() const { return companyNameValue.get(); } | String getCompanyNameString() const { return companyNameValue.get(); } | ||||
String getCompanyCopyrightString() const { return companyCopyrightValue.get(); } | String getCompanyCopyrightString() const { return companyCopyrightValue.get(); } | ||||
@@ -241,7 +245,11 @@ public: | |||||
String getPluginCodeString() const { return pluginCodeValue.get(); } | String getPluginCodeString() const { return pluginCodeValue.get(); } | ||||
String getPluginChannelConfigsString() const { return pluginChannelConfigsValue.get(); } | String getPluginChannelConfigsString() const { return pluginChannelConfigsValue.get(); } | ||||
String getAAXIdentifierString() const { return pluginAAXIdentifierValue.get(); } | String getAAXIdentifierString() const { return pluginAAXIdentifierValue.get(); } | ||||
String getARAFactoryIDString() const { return pluginARAFactoryIDValue.get(); } | |||||
String getARADocumentArchiveIDString() const { return pluginARAArchiveIDValue.get(); } | |||||
String getARACompatibleArchiveIDStrings() const { return pluginARACompatibleArchiveIDsValue.get(); } | |||||
String getPluginAUExportPrefixString() const { return pluginAUExportPrefixValue.get(); } | String getPluginAUExportPrefixString() const { return pluginAUExportPrefixValue.get(); } | ||||
String getPluginAUMainTypeString() const { return pluginAUMainTypeValue.get(); } | |||||
String getVSTNumMIDIInputsString() const { return pluginVSTNumMidiInputsValue.get(); } | String getVSTNumMIDIInputsString() const { return pluginVSTNumMidiInputsValue.get(); } | ||||
String getVSTNumMIDIOutputsString() const { return pluginVSTNumMidiOutputsValue.get(); } | String getVSTNumMIDIOutputsString() const { return pluginVSTNumMidiOutputsValue.get(); } | ||||
@@ -269,6 +277,7 @@ public: | |||||
bool shouldBuildUnityPlugin() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::buildUnity); } | bool shouldBuildUnityPlugin() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::buildUnity); } | ||||
bool shouldBuildLV2() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::buildLV2); } | bool shouldBuildLV2() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::buildLV2); } | ||||
bool shouldEnableIAA() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::enableIAA); } | bool shouldEnableIAA() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::enableIAA); } | ||||
bool shouldEnableARA() const { return (isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::enableARA)) || getProjectType().isARAAudioPlugin(); } | |||||
bool isPluginSynth() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginIsSynth); } | bool isPluginSynth() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginIsSynth); } | ||||
bool pluginWantsMidiInput() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginWantsMidiIn); } | bool pluginWantsMidiInput() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginWantsMidiIn); } | ||||
@@ -278,6 +287,8 @@ public: | |||||
bool isPluginAAXBypassDisabled() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginAAXDisableBypass); } | bool isPluginAAXBypassDisabled() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginAAXDisableBypass); } | ||||
bool isPluginAAXMultiMonoDisabled() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginAAXDisableMultiMono); } | bool isPluginAAXMultiMonoDisabled() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginAAXDisableMultiMono); } | ||||
void disableStandaloneForARAPlugIn(); | |||||
static StringArray getAllAUMainTypeStrings() noexcept; | static StringArray getAllAUMainTypeStrings() noexcept; | ||||
static Array<var> getAllAUMainTypeVars() noexcept; | static Array<var> getAllAUMainTypeVars() noexcept; | ||||
Array<var> getDefaultAUMainTypes() const noexcept; | Array<var> getDefaultAUMainTypes() const noexcept; | ||||
@@ -292,11 +303,22 @@ public: | |||||
static Array<var> getAllAAXCategoryVars() noexcept; | static Array<var> getAllAAXCategoryVars() noexcept; | ||||
Array<var> getDefaultAAXCategories() const noexcept; | Array<var> getDefaultAAXCategories() const noexcept; | ||||
bool getDefaultEnableARA() const noexcept; | |||||
static StringArray getAllARAContentTypeStrings() noexcept; | |||||
static Array<var> getAllARAContentTypeVars() noexcept; | |||||
Array<var> getDefaultARAContentTypes() const noexcept; | |||||
static StringArray getAllARATransformationFlagStrings() noexcept; | |||||
static Array<var> getAllARATransformationFlagVars() noexcept; | |||||
Array<var> getDefaultARATransformationFlags() const noexcept; | |||||
String getAUMainTypeString() const noexcept; | String getAUMainTypeString() const noexcept; | ||||
bool isAUSandBoxSafe() const noexcept; | bool isAUSandBoxSafe() const noexcept; | ||||
String getVSTCategoryString() const noexcept; | String getVSTCategoryString() const noexcept; | ||||
String getVST3CategoryString() const noexcept; | String getVST3CategoryString() const noexcept; | ||||
int getAAXCategory() const noexcept; | int getAAXCategory() const noexcept; | ||||
int getARAContentTypes() const noexcept; | |||||
int getARATransformationFlags() const noexcept; | |||||
String getIAATypeCode() const; | String getIAATypeCode() const; | ||||
String getIAAPluginName() const; | String getIAAPluginName() const; | ||||
@@ -317,6 +339,7 @@ public: | |||||
bool isVSTPluginHost(); | bool isVSTPluginHost(); | ||||
bool isVST3PluginHost(); | bool isVST3PluginHost(); | ||||
bool isLV2PluginHost(); | bool isLV2PluginHost(); | ||||
bool isARAPluginHost(); | |||||
//============================================================================== | //============================================================================== | ||||
bool shouldBuildTargetType (build_tools::ProjectType::Target::Type targetType) const noexcept; | bool shouldBuildTargetType (build_tools::ProjectType::Target::Type targetType) const noexcept; | ||||
@@ -548,6 +571,7 @@ private: | |||||
ValueTreePropertyWithDefault pluginFormatsValue, pluginNameValue, pluginDescriptionValue, pluginManufacturerValue, pluginManufacturerCodeValue, | ValueTreePropertyWithDefault pluginFormatsValue, pluginNameValue, pluginDescriptionValue, pluginManufacturerValue, pluginManufacturerCodeValue, | ||||
pluginCodeValue, pluginChannelConfigsValue, pluginCharacteristicsValue, pluginAUExportPrefixValue, pluginAAXIdentifierValue, | pluginCodeValue, pluginChannelConfigsValue, pluginCharacteristicsValue, pluginAUExportPrefixValue, pluginAAXIdentifierValue, | ||||
pluginAUMainTypeValue, pluginAUSandboxSafeValue, pluginVSTCategoryValue, pluginVST3CategoryValue, pluginAAXCategoryValue, | pluginAUMainTypeValue, pluginAUSandboxSafeValue, pluginVSTCategoryValue, pluginVST3CategoryValue, pluginAAXCategoryValue, | ||||
pluginEnableARA, pluginARAAnalyzableContentValue, pluginARAFactoryIDValue, pluginARAArchiveIDValue, pluginARACompatibleArchiveIDsValue, pluginARATransformFlagsValue, | |||||
pluginVSTNumMidiInputsValue, pluginVSTNumMidiOutputsValue, pluginLV2URIValue; | pluginVSTNumMidiInputsValue, pluginVSTNumMidiOutputsValue, pluginLV2URIValue; | ||||
//============================================================================== | //============================================================================== | ||||
@@ -131,6 +131,9 @@ public: | |||||
aaxPathValueWrapper.init ({ settings, Ids::aaxFolder, nullptr }, | aaxPathValueWrapper.init ({ settings, Ids::aaxFolder, nullptr }, | ||||
getAppSettings().getStoredPath (Ids::aaxPath, TargetOS::windows), TargetOS::windows); | getAppSettings().getStoredPath (Ids::aaxPath, TargetOS::windows), TargetOS::windows); | ||||
araPathValueWrapper.init ({ settings, Ids::araFolder, nullptr }, | |||||
getAppSettings().getStoredPath (Ids::araPath, TargetOS::windows), TargetOS::windows); | |||||
} | } | ||||
//============================================================================== | //============================================================================== | ||||
@@ -773,6 +773,9 @@ public: | |||||
aaxPathValueWrapper.init ({ settings, Ids::aaxFolder, nullptr }, | aaxPathValueWrapper.init ({ settings, Ids::aaxFolder, nullptr }, | ||||
getAppSettings().getStoredPath (Ids::aaxPath, TargetOS::osx), TargetOS::osx); | getAppSettings().getStoredPath (Ids::aaxPath, TargetOS::osx), TargetOS::osx); | ||||
araPathValueWrapper.init ({ settings, Ids::araFolder, nullptr }, | |||||
getAppSettings().getStoredPath (Ids::araPath, TargetOS::osx), TargetOS::osx); | |||||
} | } | ||||
protected: | protected: | ||||
@@ -1897,6 +1900,7 @@ public: | |||||
options.isAuSandboxSafe = owner.project.isAUSandBoxSafe(); | options.isAuSandboxSafe = owner.project.isAUSandBoxSafe(); | ||||
options.isPluginSynth = owner.project.isPluginSynth(); | options.isPluginSynth = owner.project.isPluginSynth(); | ||||
options.suppressResourceUsage = owner.getSuppressPlistResourceUsage(); | options.suppressResourceUsage = owner.getSuppressPlistResourceUsage(); | ||||
options.isPluginARAEffect = owner.project.shouldEnableARA(); | |||||
options.write (infoPlistFile); | options.write (infoPlistFile); | ||||
} | } | ||||
@@ -273,6 +273,13 @@ void ProjectExporter::createPropertyEditors (PropertyListBuilder& props) | |||||
"If you're building an AAX plug-in, this must be the folder containing the AAX SDK. This can be an absolute path, or a path relative to the Projucer project file."); | "If you're building an AAX plug-in, this must be the folder containing the AAX SDK. This can be an absolute path, or a path relative to the Projucer project file."); | ||||
} | } | ||||
if (project.shouldEnableARA() || project.isARAPluginHost()) | |||||
{ | |||||
props.add (new FilePathPropertyComponent (araPathValueWrapper.getWrappedValueTreePropertyWithDefault(), "ARA SDK Folder", true, | |||||
getTargetOSForExporter() == TargetOS::getThisOS(), "*", project.getProjectFolder()), | |||||
"If you're building an ARA enabled plug-in, this must be the folder containing the ARA SDK. This can be an absolute path, or a path relative to the Projucer project file."); | |||||
} | |||||
props.add (new TextPropertyComponent (extraPPDefsValue, "Extra Preprocessor Definitions", 32768, true), | props.add (new TextPropertyComponent (extraPPDefsValue, "Extra Preprocessor Definitions", 32768, true), | ||||
"Extra preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace, commas, " | "Extra preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace, commas, " | ||||
"or new-lines to separate the items - to include a space or comma in a definition, precede it with a backslash."); | "or new-lines to separate the items - to include a space or comma in a definition, precede it with a backslash."); | ||||
@@ -335,6 +342,8 @@ void ProjectExporter::addSettingsForProjectType (const build_tools::ProjectType& | |||||
{ | { | ||||
addExtraIncludePathsIfPluginOrHost(); | addExtraIncludePathsIfPluginOrHost(); | ||||
addARAPathsIfPluginOrHost(); | |||||
if (type.isAudioPlugin()) | if (type.isAudioPlugin()) | ||||
addCommonAudioPluginSettings(); | addCommonAudioPluginSettings(); | ||||
@@ -385,6 +394,12 @@ void ProjectExporter::addExtraIncludePathsIfPluginOrHost() | |||||
} | } | ||||
} | } | ||||
void ProjectExporter::addARAPathsIfPluginOrHost() | |||||
{ | |||||
if (project.shouldEnableARA() || project.isARAPluginHost()) | |||||
addARAFoldersToPath(); | |||||
} | |||||
void ProjectExporter::addCommonAudioPluginSettings() | void ProjectExporter::addCommonAudioPluginSettings() | ||||
{ | { | ||||
if (shouldBuildTargetType (build_tools::ProjectType::Target::AAXPlugIn)) | if (shouldBuildTargetType (build_tools::ProjectType::Target::AAXPlugIn)) | ||||
@@ -420,6 +435,14 @@ void ProjectExporter::addAAXFoldersToPath() | |||||
} | } | ||||
} | } | ||||
void ProjectExporter::addARAFoldersToPath() | |||||
{ | |||||
const auto araFolder = getARAPathString(); | |||||
if (araFolder.isNotEmpty()) | |||||
addToExtraSearchPaths (build_tools::RelativePath (araFolder, build_tools::RelativePath::projectFolder)); | |||||
} | |||||
//============================================================================== | //============================================================================== | ||||
StringPairArray ProjectExporter::getAllPreprocessorDefs (const BuildConfiguration& config, const build_tools::ProjectType::Target::Type targetType) const | StringPairArray ProjectExporter::getAllPreprocessorDefs (const BuildConfiguration& config, const build_tools::ProjectType::Target::Type targetType) const | ||||
{ | { | ||||
@@ -468,6 +491,10 @@ void ProjectExporter::addTargetSpecificPreprocessorDefs (StringPairArray& defs, | |||||
for (auto& flag : targetFlags) | for (auto& flag : targetFlags) | ||||
defs.set (flag.first, (targetType == flag.second ? "1" : "0")); | defs.set (flag.first, (targetType == flag.second ? "1" : "0")); | ||||
} | } | ||||
if (project.shouldEnableARA()) | |||||
{ | |||||
defs.set ("JucePlugin_Enable_ARA", "1"); | |||||
} | |||||
} | } | ||||
void ProjectExporter::addDefaultPreprocessorDefs (StringPairArray& defs) const | void ProjectExporter::addDefaultPreprocessorDefs (StringPairArray& defs) const | ||||
@@ -144,6 +144,7 @@ public: | |||||
String getVSTLegacyPathString() const { return vstLegacyPathValueWrapper.getCurrentValue(); } | String getVSTLegacyPathString() const { return vstLegacyPathValueWrapper.getCurrentValue(); } | ||||
String getAAXPathString() const { return aaxPathValueWrapper.getCurrentValue(); } | String getAAXPathString() const { return aaxPathValueWrapper.getCurrentValue(); } | ||||
String getARAPathString() const { return araPathValueWrapper.getCurrentValue(); } | |||||
// NB: this is the path to the parent "modules" folder that contains the named module, not the | // NB: this is the path to the parent "modules" folder that contains the named module, not the | ||||
// module folder itself. | // module folder itself. | ||||
@@ -405,7 +406,7 @@ protected: | |||||
const File projectFolder; | const File projectFolder; | ||||
//============================================================================== | //============================================================================== | ||||
ValueTreePropertyWithDefaultWrapper vstLegacyPathValueWrapper, aaxPathValueWrapper; | |||||
ValueTreePropertyWithDefaultWrapper vstLegacyPathValueWrapper, aaxPathValueWrapper, araPathValueWrapper; | |||||
ValueTreePropertyWithDefault targetLocationValue, extraCompilerFlagsValue, extraLinkerFlagsValue, externalLibrariesValue, | ValueTreePropertyWithDefault targetLocationValue, extraCompilerFlagsValue, extraLinkerFlagsValue, externalLibrariesValue, | ||||
userNotesValue, gnuExtensionsValue, bigIconValue, smallIconValue, extraPPDefsValue; | userNotesValue, gnuExtensionsValue, bigIconValue, smallIconValue, extraPPDefsValue; | ||||
@@ -467,10 +468,12 @@ private: | |||||
void createIconProperties (PropertyListBuilder&); | void createIconProperties (PropertyListBuilder&); | ||||
void addExtraIncludePathsIfPluginOrHost(); | void addExtraIncludePathsIfPluginOrHost(); | ||||
void addARAPathsIfPluginOrHost(); | |||||
void addCommonAudioPluginSettings(); | void addCommonAudioPluginSettings(); | ||||
void addLegacyVSTFolderToPathIfSpecified(); | void addLegacyVSTFolderToPathIfSpecified(); | ||||
build_tools::RelativePath getInternalVST3SDKPath(); | build_tools::RelativePath getInternalVST3SDKPath(); | ||||
void addAAXFoldersToPath(); | void addAAXFoldersToPath(); | ||||
void addARAFoldersToPath(); | |||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ProjectExporter) | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ProjectExporter) | ||||
}; | }; |
@@ -276,6 +276,10 @@ static bool isGlobalPathValid (const File& relativeTo, const Identifier& key, co | |||||
{ | { | ||||
fileToCheckFor = "Interfaces/AAX_Exports.cpp"; | fileToCheckFor = "Interfaces/AAX_Exports.cpp"; | ||||
} | } | ||||
else if (key == Ids::araPath) | |||||
{ | |||||
fileToCheckFor = "ARA_API/ARAInterface.h"; | |||||
} | |||||
else if (key == Ids::androidSDKPath) | else if (key == Ids::androidSDKPath) | ||||
{ | { | ||||
#if JUCE_WINDOWS | #if JUCE_WINDOWS | ||||
@@ -367,6 +371,12 @@ static String getFallbackPathForOS (const Identifier& key, DependencyPathOS os) | |||||
else if (os == TargetOS::osx) return "~/SDKs/AAX"; | else if (os == TargetOS::osx) return "~/SDKs/AAX"; | ||||
else return {}; // no AAX on this OS! | else return {}; // no AAX on this OS! | ||||
} | } | ||||
else if (key == Ids::araPath) | |||||
{ | |||||
if (os == TargetOS::windows) return "C:\\SDKs\\ARA_SDK"; | |||||
else if (os == TargetOS::osx) return "~/SDKs/ARA_SDK"; | |||||
else return {}; | |||||
} | |||||
else if (key == Ids::androidSDKPath) | else if (key == Ids::androidSDKPath) | ||||
{ | { | ||||
if (os == TargetOS::windows) return "${user.home}\\AppData\\Local\\Android\\Sdk"; | if (os == TargetOS::windows) return "${user.home}\\AppData\\Local\\Android\\Sdk"; | ||||
@@ -68,6 +68,7 @@ namespace Ids | |||||
DECLARE_ID (auFolder); | DECLARE_ID (auFolder); | ||||
DECLARE_ID (vstLegacyPath); | DECLARE_ID (vstLegacyPath); | ||||
DECLARE_ID (aaxPath); | DECLARE_ID (aaxPath); | ||||
DECLARE_ID (araPath); | |||||
DECLARE_ID (flags); | DECLARE_ID (flags); | ||||
DECLARE_ID (line); | DECLARE_ID (line); | ||||
DECLARE_ID (index); | DECLARE_ID (index); | ||||
@@ -154,7 +155,11 @@ namespace Ids | |||||
DECLARE_ID (enableIncrementalLinking); | DECLARE_ID (enableIncrementalLinking); | ||||
DECLARE_ID (bundleIdentifier); | DECLARE_ID (bundleIdentifier); | ||||
DECLARE_ID (aaxIdentifier); | DECLARE_ID (aaxIdentifier); | ||||
DECLARE_ID (araFactoryID); | |||||
DECLARE_ID (araDocumentArchiveID); | |||||
DECLARE_ID (araCompatibleArchiveIDs); | |||||
DECLARE_ID (aaxFolder); | DECLARE_ID (aaxFolder); | ||||
DECLARE_ID (araFolder); | |||||
DECLARE_ID (compile); | DECLARE_ID (compile); | ||||
DECLARE_ID (noWarnings); | DECLARE_ID (noWarnings); | ||||
DECLARE_ID (skipPCH); | DECLARE_ID (skipPCH); | ||||
@@ -330,6 +335,7 @@ namespace Ids | |||||
DECLARE_ID (buildUnity); | DECLARE_ID (buildUnity); | ||||
DECLARE_ID (buildLV2); | DECLARE_ID (buildLV2); | ||||
DECLARE_ID (enableIAA); | DECLARE_ID (enableIAA); | ||||
DECLARE_ID (enableARA); | |||||
DECLARE_ID (pluginName); | DECLARE_ID (pluginName); | ||||
DECLARE_ID (pluginDesc); | DECLARE_ID (pluginDesc); | ||||
DECLARE_ID (pluginManufacturer); | DECLARE_ID (pluginManufacturer); | ||||
@@ -352,6 +358,8 @@ namespace Ids | |||||
DECLARE_ID (pluginAAXCategory); | DECLARE_ID (pluginAAXCategory); | ||||
DECLARE_ID (pluginAAXDisableBypass); | DECLARE_ID (pluginAAXDisableBypass); | ||||
DECLARE_ID (pluginAAXDisableMultiMono); | DECLARE_ID (pluginAAXDisableMultiMono); | ||||
DECLARE_ID (pluginARAAnalyzableContent); | |||||
DECLARE_ID (pluginARATransformFlags); | |||||
DECLARE_ID (pluginVSTNumMidiInputs); | DECLARE_ID (pluginVSTNumMidiInputs); | ||||
DECLARE_ID (pluginVSTNumMidiOutputs); | DECLARE_ID (pluginVSTNumMidiOutputs); | ||||
DECLARE_ID (suppressPlistResourceUsage); | DECLARE_ID (suppressPlistResourceUsage); | ||||