| @@ -214,7 +214,7 @@ private: | |||
| { | |||
| builder.add (new FilePathPropertyComponent (aaxPathValue, "AAX SDK", true, isThisOS), | |||
| "If you are building AAX plug-ins, this should be the path to the AAX SDK folder."); | |||
| builder.add (new FilePathPropertyComponent (rtasPathValue, "RTAS SDK", true, isThisOS), | |||
| builder.add (new FilePathPropertyComponent (rtasPathValue, "RTAS SDK (deprecated)", true, isThisOS), | |||
| "If you are building RTAS plug-ins, this should be the path to the RTAS SDK folder."); | |||
| } | |||
| @@ -1064,7 +1064,7 @@ void Project::createPropertyEditors (PropertyListBuilder& props) | |||
| void Project::createAudioPluginPropertyEditors (PropertyListBuilder& props) | |||
| { | |||
| props.add (new MultiChoicePropertyComponent (pluginFormatsValue, "Plugin Formats", | |||
| { "VST3", "AU", "AUv3", "RTAS", "AAX", "Standalone", "Unity", "Enable IAA", "VST (Legacy)" }, | |||
| { "VST3", "AU", "AUv3", "RTAS (deprecated)", "AAX", "Standalone", "Unity", "Enable IAA", "VST (Legacy)" }, | |||
| { Ids::buildVST3.toString(), Ids::buildAU.toString(), Ids::buildAUv3.toString(), | |||
| Ids::buildRTAS.toString(), Ids::buildAAX.toString(), Ids::buildStandalone.toString(), Ids::buildUnity.toString(), | |||
| Ids::enableIAA.toString(), Ids::buildVST.toString() }), | |||
| @@ -24,11 +24,11 @@ | |||
| ============================================================================== | |||
| */ | |||
| #if JucePlugin_Build_RTAS | |||
| #include "../../juce_core/system/juce_TargetPlatform.h" | |||
| #include "../utility/juce_CheckSettingMacros.h" | |||
| #if JucePlugin_Build_RTAS | |||
| // (these functions are in their own file because of problems including windows.h | |||
| // at the same time as the Digi headers) | |||
| @@ -45,14 +45,13 @@ | |||
| #include "../utility/juce_IncludeModuleHeaders.h" | |||
| #pragma pack (pop) | |||
| namespace juce | |||
| { | |||
| //============================================================================== | |||
| void JUCE_CALLTYPE attachSubWindow (void* hostWindow, | |||
| int& titleW, int& titleH, | |||
| Component* comp) | |||
| { | |||
| using namespace juce; | |||
| RECT clientRect; | |||
| GetClientRect ((HWND) hostWindow, &clientRect); | |||
| @@ -77,6 +76,8 @@ void JUCE_CALLTYPE resizeHostWindow (void* hostWindow, | |||
| int& titleW, int& titleH, | |||
| Component* comp) | |||
| { | |||
| using namespace juce; | |||
| RECT clientRect, windowRect; | |||
| GetClientRect ((HWND) hostWindow, &clientRect); | |||
| GetWindowRect ((HWND) hostWindow, &windowRect); | |||
| @@ -94,12 +95,12 @@ extern "C" BOOL WINAPI DllMainRTAS (HINSTANCE, DWORD, LPVOID); | |||
| extern "C" BOOL WINAPI DllMain (HINSTANCE instance, DWORD reason, LPVOID reserved) | |||
| { | |||
| if (reason == DLL_PROCESS_ATTACH) | |||
| Process::setCurrentModuleInstanceHandle (instance); | |||
| juce::Process::setCurrentModuleInstanceHandle (instance); | |||
| if (GetModuleHandleA ("DAE.DLL") != 0) | |||
| return DllMainRTAS (instance, reason, reserved); | |||
| ignoreUnused (reserved); | |||
| juce::ignoreUnused (reserved); | |||
| return TRUE; | |||
| } | |||
| @@ -121,7 +122,7 @@ namespace | |||
| TCHAR windowType [32] = { 0 }; | |||
| GetClassName (parent, windowType, 31); | |||
| if (String (windowType).equalsIgnoreCase ("MDIClient")) | |||
| if (juce::String (windowType).equalsIgnoreCase ("MDIClient")) | |||
| { | |||
| w = parent; | |||
| break; | |||
| @@ -154,6 +155,4 @@ void JUCE_CALLTYPE passFocusToHostWindow (void* hostWindow) | |||
| #endif | |||
| } // namespace juce | |||
| #endif | |||
| @@ -171,14 +171,15 @@ class JucePlugInProcess : public CEffectProcessMIDI, | |||
| { | |||
| public: | |||
| //============================================================================== | |||
| JucePlugInProcess() | |||
| // RTAS builds will be removed from JUCE in the next release | |||
| JUCE_DEPRECATED_WITH_BODY (JucePlugInProcess(), | |||
| { | |||
| juceFilter.reset (createPluginFilterOfType (AudioProcessor::wrapperType_RTAS)); | |||
| AddChunk (juceChunkType, "Juce Audio Plugin Data"); | |||
| ++numInstances; | |||
| } | |||
| }) | |||
| ~JucePlugInProcess() | |||
| { | |||
| @@ -316,7 +317,7 @@ public: | |||
| if (Component* const modalComponent = Component::getCurrentlyModalComponent()) | |||
| modalComponent->exitModalState (0); | |||
| filter->editorBeingDeleted (editorComp); | |||
| filter->editorBeingDeleted (editorComp.get()); | |||
| editorComp.reset(); | |||
| wrapper.reset(); | |||
| @@ -951,6 +952,10 @@ public: | |||
| { | |||
| std::unique_ptr<AudioProcessor> plugin (createPluginFilterOfType (AudioProcessor::wrapperType_RTAS)); | |||
| #ifndef JucePlugin_PreferredChannelConfigurations | |||
| #error You need to set the "Plugin Channel Configurations" field in the Projucer to build RTAS plug-ins | |||
| #endif | |||
| const short channelConfigs[][2] = { JucePlugin_PreferredChannelConfigurations }; | |||
| const int numConfigs = numElementsInArray (channelConfigs); | |||