From 4229dc0a4f402f0792a57ad6c7f93f8e5d68dcc2 Mon Sep 17 00:00:00 2001 From: Tom Poole Date: Tue, 10 Apr 2018 14:50:25 +0100 Subject: [PATCH] Made a lot of ScopedPointer usage conform to the std::unique_ptr interface --- .../DemoRunner/Source/Demos/JUCEDemos.cpp | 2 +- examples/DemoRunner/Source/Main.cpp | 4 +- .../Source/UI/DemoContentComponent.cpp | 8 +- .../DemoRunner/Source/UI/MainComponent.cpp | 6 +- .../DemoRunner/Source/UI/SettingsContent.h | 5 +- .../AudioPerformanceTest.jucer | 24 +- .../VisualStudio2017/AudioPerformanceTest.sln | 20 + .../AudioPerformanceTest_App.vcxproj | 2345 ++++++++++ .../AudioPerformanceTest_App.vcxproj.filters | 3845 +++++++++++++++++ .../Builds/VisualStudio2017/resources.rc | 31 + extras/AudioPerformanceTest/Source/Main.cpp | 2 +- .../Source/Filters/FilterIOConfiguration.cpp | 10 +- .../Source/Filters/FilterIOConfiguration.h | 2 +- extras/AudioPluginHost/Source/HostStartup.cpp | 6 +- .../Source/UI/GraphEditorPanel.cpp | 36 +- .../Source/UI/MainHostWindow.cpp | 14 +- extras/BinaryBuilder/Source/Main.cpp | 2 +- extras/NetworkGraphicsDemo/Source/Demos.h | 20 +- .../Source/MasterComponent.h | 4 +- ...ucer_ApplicationUsageDataWindowComponent.h | 3 +- .../Windows/jucer_PIPCreatorWindowComponent.h | 3 +- .../jucer_SVGPathDataWindowComponent.h | 8 +- .../Source/Application/jucer_Application.cpp | 188 +- .../Source/Application/jucer_AutoUpdater.cpp | 51 +- .../Source/Application/jucer_MainWindow.cpp | 4 +- .../CodeEditor/jucer_LiveBuildCodeEditor.h | 2 +- .../Components/jucer_TabbedComponentHandler.h | 4 +- .../PaintElements/jucer_PaintElement.cpp | 3 +- .../PaintElements/jucer_PaintElementGroup.cpp | 2 +- .../jucer_ColourPropertyComponent.h | 2 +- .../Properties/jucer_PositionPropertyBase.h | 3 +- .../UI/jucer_ComponentOverlayComponent.cpp | 3 +- .../UI/jucer_JucerDocumentEditor.cpp | 9 +- .../UI/jucer_ResourceEditorPanel.cpp | 3 +- .../UI/jucer_TestComponent.cpp | 2 +- .../ComponentEditor/jucer_ComponentLayout.cpp | 25 +- .../ComponentEditor/jucer_JucerDocument.cpp | 24 +- .../ComponentEditor/jucer_ObjectTypes.cpp | 14 +- .../ComponentEditor/jucer_PaintRoutine.cpp | 2 +- .../Licenses/jucer_LicenseController.cpp | 10 +- .../Source/Licenses/jucer_LicenseThread.h | 21 +- .../Source/Licenses/jucer_LicenseWebview.h | 5 +- .../jucer_CompileEngineClient.cpp | 7 +- .../jucer_CompileEngineServer.cpp | 4 +- .../jucer_CompileEngineSettings.h | 5 +- .../jucer_DownloadCompileEngineThread.cpp | 6 +- .../Project/UI/Sidebar/jucer_LiveBuildTab.h | 13 +- .../Project/UI/Sidebar/jucer_TabComponents.h | 11 +- .../Project/UI/jucer_HeaderComponent.cpp | 15 +- .../UI/jucer_ProjectContentComponent.cpp | 23 +- .../Projucer/Source/Project/jucer_Project.cpp | 4 +- .../jucer_ProjectExport_Android.h | 2 +- .../ProjectSaving/jucer_ProjectExport_CLion.h | 4 +- .../ProjectSaving/jucer_ProjectExport_Xcode.h | 4 +- .../ProjectSaving/jucer_ProjectExporter.cpp | 8 +- .../Source/ProjectSaving/jucer_ProjectSaver.h | 2 +- .../Source/Settings/jucer_StoredSettings.cpp | 2 +- .../Utility/PIPs/jucer_PIPGenerator.cpp | 2 +- .../Utility/UI/jucer_JucerTreeViewBase.cpp | 4 +- .../UI/jucer_SlidingPanelComponent.cpp | 3 +- .../Utility/UI/jucer_UserSettingsPopup.h | 12 +- .../Wizards/jucer_NewProjectWizardComponent.h | 7 +- .../jucer_TemplateThumbnailsComponent.h | 4 +- .../native/juce_linux_ALSA.cpp | 16 +- .../native/juce_linux_Midi.cpp | 2 +- .../native/juce_win32_Midi.cpp | 10 +- .../native/juce_win32_WASAPI.cpp | 26 +- .../AAX/juce_AAX_Wrapper.cpp | 18 +- .../AU/juce_AU_Wrapper.mm | 38 +- .../AU/juce_AUv3_Wrapper.mm | 111 +- .../Standalone/juce_StandaloneFilterApp.cpp | 2 +- .../Standalone/juce_StandaloneFilterWindow.h | 28 +- .../VST/juce_VST_Wrapper.cpp | 2 +- .../VST3/juce_VST3_Wrapper.cpp | 23 +- .../juce_AudioUnitPluginFormat.mm | 2 +- .../format_types/juce_VST3PluginFormat.cpp | 2 +- .../format_types/juce_VSTPluginFormat.cpp | 4 +- .../processors/juce_AudioProcessorGraph.cpp | 4 +- .../juce_GenericAudioProcessorEditor.cpp | 2 +- .../topology/juce_RuleBasedTopologySource.cpp | 2 +- .../memory/juce_SharedResourcePointer.h | 4 +- .../juce_core/native/juce_win32_Threads.cpp | 2 +- modules/juce_core/threads/juce_Thread.h | 2 +- .../juce_dsp/frequency/juce_Convolution.cpp | 5 +- modules/juce_dsp/frequency/juce_FFT.cpp | 4 +- .../native/juce_linux_Messaging.cpp | 4 +- .../native/juce_win32_Messaging.cpp | 2 +- .../juce_graphics/native/juce_linux_Fonts.cpp | 4 +- .../native/juce_linux_X11_Windowing.cpp | 20 +- .../native/juce_win32_FileChooser.cpp | 4 +- .../native/juce_win32_Windowing.cpp | 4 +- .../juce_linux_X11_WebBrowserComponent.cpp | 7 +- .../native/juce_win32_ActiveXComponent.cpp | 2 +- .../native/juce_win32_SystemTrayIcon.cpp | 2 +- .../native/juce_win32_WebBrowserComponent.cpp | 2 +- .../juce_opengl/native/juce_OpenGL_win32.h | 4 +- modules/juce_osc/osc/juce_OSCBundle.cpp | 4 +- .../juce_video/capture/juce_CameraDevice.cpp | 8 +- modules/juce_video/native/juce_win32_Video.h | 10 +- 99 files changed, 6808 insertions(+), 497 deletions(-) create mode 100644 extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest.sln create mode 100644 extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj create mode 100644 extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj.filters create mode 100644 extras/AudioPerformanceTest/Builds/VisualStudio2017/resources.rc diff --git a/examples/DemoRunner/Source/Demos/JUCEDemos.cpp b/examples/DemoRunner/Source/Demos/JUCEDemos.cpp index b8e8c9dfcb..2e7c9de1f6 100644 --- a/examples/DemoRunner/Source/Demos/JUCEDemos.cpp +++ b/examples/DemoRunner/Source/Demos/JUCEDemos.cpp @@ -100,7 +100,7 @@ static String getCurrentDefaultAudioDeviceName (AudioDeviceManager& deviceManage AudioDeviceManager& getSharedAudioDeviceManager (int numInputChannels, int numOutputChannels) { if (sharedAudioDeviceManager == nullptr) - sharedAudioDeviceManager = new AudioDeviceManager(); + sharedAudioDeviceManager.reset (new AudioDeviceManager()); auto* currentDevice = sharedAudioDeviceManager->getCurrentAudioDevice(); diff --git a/examples/DemoRunner/Source/Main.cpp b/examples/DemoRunner/Source/Main.cpp index d2d722e936..4cc2b4f7d3 100644 --- a/examples/DemoRunner/Source/Main.cpp +++ b/examples/DemoRunner/Source/Main.cpp @@ -95,7 +95,7 @@ public: return; #endif - mainWindow = new MainAppWindow (getApplicationName()); + mainWindow.reset (new MainAppWindow (getApplicationName())); } void backButtonPressed() override { mainWindow->getMainComponent().getSidePanel().showOrHide (false); } @@ -131,7 +131,7 @@ private: setVisible (true); #if JUCE_WINDOWS || JUCE_LINUX || JUCE_MAC - taskbarIcon = new DemoTaskbarComponent(); + taskbarIcon.reset (new DemoTaskbarComponent()); #endif } diff --git a/examples/DemoRunner/Source/UI/DemoContentComponent.cpp b/examples/DemoRunner/Source/UI/DemoContentComponent.cpp index 68d93d4368..0cbd997847 100644 --- a/examples/DemoRunner/Source/UI/DemoContentComponent.cpp +++ b/examples/DemoRunner/Source/UI/DemoContentComponent.cpp @@ -45,7 +45,7 @@ struct DemoContent : public Component if (comp != nullptr) { - addAndMakeVisible (comp); + addAndMakeVisible (comp.get()); resized(); } } @@ -105,10 +105,12 @@ DemoContentComponent::DemoContentComponent (Component& mainComponent, std::funct : TabbedComponent (TabbedButtonBar::Orientation::TabsAtTop), demoChangedCallback (callback) { - addTab ("Demo", Colours::transparentBlack, demoContent = new DemoContent(), false); + demoContent.reset (new DemoContent()); + addTab ("Demo", Colours::transparentBlack, demoContent.get(), false); #if ! (JUCE_ANDROID || JUCE_IOS) - addTab ("Code", Colours::transparentBlack, codeContent = new CodeContent(), false); + codeContent.reset (new CodeContent()); + addTab ("Code", Colours::transparentBlack, codeContent.get(), false); #endif addTab ("Settings", Colours::transparentBlack, new SettingsContent (dynamic_cast (mainComponent)), true); diff --git a/examples/DemoRunner/Source/UI/MainComponent.cpp b/examples/DemoRunner/Source/UI/MainComponent.cpp index d36aa047fe..a87daa9c13 100644 --- a/examples/DemoRunner/Source/UI/MainComponent.cpp +++ b/examples/DemoRunner/Source/UI/MainComponent.cpp @@ -243,7 +243,7 @@ private: //============================================================================== MainComponent::MainComponent() { - contentComponent = new DemoContentComponent (*this, [this] (bool isHeavyweight) + contentComponent.reset (new DemoContentComponent (*this, [this] (bool isHeavyweight) { #if (JUCE_ANDROID || JUCE_IOS) demosPanel.showOrHide (false); @@ -260,12 +260,12 @@ MainComponent::MainComponent() isShowingHeavyweightDemo = isHeavyweight; resized(); - }); + })); demosPanel.setContent (new DemoList (*contentComponent)); demosPanel.setTitleBarComponent (new SidePanelHeader (*this), true); - addAndMakeVisible (contentComponent); + addAndMakeVisible (contentComponent.get()); addAndMakeVisible (showDemosButton); addAndMakeVisible (demosPanel); diff --git a/examples/DemoRunner/Source/UI/SettingsContent.h b/examples/DemoRunner/Source/UI/SettingsContent.h index 5f8794de6a..51c9ee0355 100644 --- a/examples/DemoRunner/Source/UI/SettingsContent.h +++ b/examples/DemoRunner/Source/UI/SettingsContent.h @@ -98,8 +98,9 @@ private: rendererLabel.setJustificationType (Justification::centredRight); rendererLabel.attachToComponent (&rendererSelector, true); - addAndMakeVisible (audioSettings = new AudioDeviceSelectorComponent (getSharedAudioDeviceManager(), - 0, 256, 0, 256, true, true, true, false)); + audioSettings.reset (new AudioDeviceSelectorComponent (getSharedAudioDeviceManager(), + 0, 256, 0, 256, true, true, true, false)); + addAndMakeVisible (audioSettings.get()); audioSettings->setItemHeight (itemHeight); setOpaque (true); diff --git a/extras/AudioPerformanceTest/AudioPerformanceTest.jucer b/extras/AudioPerformanceTest/AudioPerformanceTest.jucer index f050db3054..8fee5b41dd 100644 --- a/extras/AudioPerformanceTest/AudioPerformanceTest.jucer +++ b/extras/AudioPerformanceTest/AudioPerformanceTest.jucer @@ -49,25 +49,25 @@ - + - - + + - - + + + - - - - - - + + + + + - + diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest.sln b/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest.sln new file mode 100644 index 0000000000..ee79a7aa64 --- /dev/null +++ b/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest.sln @@ -0,0 +1,20 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2017 + +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AudioPerformanceTest - App", "AudioPerformanceTest_App.vcxproj", "{78607AE9-F43B-3DDB-0FE1-D745771AF527}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {78607AE9-F43B-3DDB-0FE1-D745771AF527}.Debug|x64.ActiveCfg = Debug|x64 + {78607AE9-F43B-3DDB-0FE1-D745771AF527}.Debug|x64.Build.0 = Debug|x64 + {78607AE9-F43B-3DDB-0FE1-D745771AF527}.Release|x64.ActiveCfg = Release|x64 + {78607AE9-F43B-3DDB-0FE1-D745771AF527}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj b/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj new file mode 100644 index 0000000000..e050297cb4 --- /dev/null +++ b/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj @@ -0,0 +1,2345 @@ + + + + + + Debug + x64 + + + Release + x64 + + + + {78607AE9-F43B-3DDB-0FE1-D745771AF527} + v141 + 10.0.16299.0 + + + + Application + false + false + v141 + v141 + 10.0.16299.0 + + + Application + false + true + v141 + v141 + 10.0.16299.0 + + + + + + + + v141 + 10.0.16299.0 + + + <_ProjectFileVersion>10.0.30319.1 + .exe + $(SolutionDir)$(Platform)\$(Configuration)\App\ + $(Platform)\$(Configuration)\App\ + AudioPerformanceTest + true + $(SolutionDir)$(Platform)\$(Configuration)\App\ + $(Platform)\$(Configuration)\App\ + AudioPerformanceTest + true + v141 + 10.0.16299.0 + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Disabled + ProgramDatabase + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + stdcpp14 + + + _DEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\AudioPerformanceTest.exe + true + libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) + true + $(IntDir)\AudioPerformanceTest.pdb + Windows + true + + + true + $(IntDir)\AudioPerformanceTest.bsc + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Full + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + stdcpp14 + + + NDEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\AudioPerformanceTest.exe + true + %(IgnoreSpecificDefaultLibraries) + false + $(IntDir)\AudioPerformanceTest.pdb + Windows + true + true + true + + + true + $(IntDir)\AudioPerformanceTest.bsc + + + + + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj.filters b/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj.filters new file mode 100644 index 0000000000..7a52572e9f --- /dev/null +++ b/extras/AudioPerformanceTest/Builds/VisualStudio2017/AudioPerformanceTest_App.vcxproj.filters @@ -0,0 +1,3845 @@ + + + + + + {D163E404-6FE0-D71C-79C0-B2C2204C6939} + + + {EA26FD9B-DE67-F842-284B-F11CFEA08C63} + + + {EB58F05A-A968-CEBE-40C4-107CDD8F240F} + + + {5FCF559E-451A-CB1E-B177-A5DC5A0005BB} + + + {31054003-EA72-6A9D-D650-56451D9820E6} + + + {D78296AF-218E-B17E-7F8B-9D148601188D} + + + {B96EBA26-E668-FFAF-FC53-1EC1337DAF5A} + + + {D8532E5E-469E-5042-EFC8-238241704735} + + + {777B5D1D-9AF0-B22B-8894-034603EE97F5} + + + {8292766D-2459-2E7E-7615-17216318BA93} + + + {10472B2C-9888-D269-F351-0D0AC3BCD16C} + + + {BF23FC10-1D57-2A9B-706F-6DD8A7B593D4} + + + {092EFC17-7C95-7E04-0ACA-0D61A462EE81} + + + {0AFC1CE8-F6E6-9817-8C21-8432B2A375DA} + + + {0D1AF264-3AC1-78A2-B2A4-AE6171F9194A} + + + {9A5DB854-CFFB-5F88-C566-0E10F994DDB3} + + + {38A5DDC7-416E-548F-39DA-887875FE6B20} + + + {980FE2DB-05D3-5FDA-79DA-067A56F5D19D} + + + {F336DC25-747A-0663-93D6-E3EB9AA0CBF8} + + + {7D78546A-80FC-4DCA-00B9-F191F0AB2179} + + + {9EB3EC7F-2AB7-DDAA-3C05-DF382B728D3F} + + + {02D37B85-7DE2-C8E7-A274-A5A0FBE99D69} + + + {DAF3BAAF-5207-4C34-61B9-A97DDC930D50} + + + {C7885588-8436-4C21-DC1E-58879BF53BDC} + + + {E4ECEA39-0EFF-2443-91B3-1E5DA7AD5AE4} + + + {210B8D25-68E0-32C3-1449-6A40F109C5E9} + + + {378AD911-E8E4-D230-E76B-34542849509D} + + + {F6CED5B6-0A8C-56D2-C1AC-DED6BE774A13} + + + {E684D858-09E8-0251-8E86-5657129641E1} + + + {1EF1BF17-F941-243A-04D1-EE617D140CBA} + + + {344DB016-679C-FBD0-3EC6-4570C47522DE} + + + {3D9758A0-9359-1710-87C1-05D475C08B17} + + + {E824435F-FC7B-10BE-5D1A-5DACC51A8836} + + + {86737735-F6BA-F64A-5EC7-5C9F36755F79} + + + {6B7BE34D-1BC1-C7B9-111F-C55CA8250943} + + + {9B6B6D54-D378-80C2-8CC9-D1D8FB44C2A8} + + + {D0584AC3-6837-14F6-90BF-5EA604D1F074} + + + {794B64EC-B809-32E3-AD00-4EE6A74802CA} + + + {67BE498C-9E1F-C73A-B99A-387C034CE680} + + + {1A9C8538-959B-25E3-473D-B462C9A9D458} + + + {AA9F594C-DFAF-C0A7-0CCD-9F90E54D3A01} + + + {230BF784-34F4-3BE8-46D4-54E6B67E5E9E} + + + {39F680F3-5161-4D1C-EAD0-3911ED808874} + + + {3197198B-A978-E330-C7FB-07E5CE8236C7} + + + {42F7BE9D-3C8A-AE26-289B-8F355C068036} + + + {7868764A-6572-381A-906C-9C26792A4C29} + + + {03678508-A517-48BB-FB4A-485628C34E08} + + + {07D27C1D-3227-F527-356C-17DA11551A99} + + + {6146D580-99D2-A6C8-5908-30DC355BB6BA} + + + {C67003E8-BEA8-2188-F4B3-A122F4B4FA3F} + + + {09B91E68-1FF4-C7ED-9055-D4D96E66A0BA} + + + {4F24EEED-AA33-AC6C-9A39-72E71CF83EF0} + + + {0F70B1A9-BB50-23F5-2AE7-F95E51A00389} + + + {D4C8DC40-2CD2-04B6-05D0-1E7A88841390} + + + {58BED6AF-DB89-7560-B2B8-D937C1C0825A} + + + {B958F86B-6926-8D9B-2FC6-8BFD4BDC72C9} + + + {DB624F7D-D513-25AC-C13C-B9062EB3BEEE} + + + {89AA9B6C-4029-A34F-C1B0-3B5D8691F4D4} + + + {1A7F541C-B032-9C66-C320-A13B2A8A9866} + + + {4BAB7C18-51AB-0D9D-83CD-9C37F28D2E38} + + + {5523922E-8B0C-A52B-477C-752C09F8197F} + + + {857B6D8B-0ECB-FE9E-D1EB-D5E45E72F057} + + + {BAA582FA-40B7-320E-EE7A-4C3892C7BE72} + + + {632B4C79-AF7D-BFB5-D006-5AE67F607130} + + + {B10E20C2-4583-2B79-60B7-FE4D4B044313} + + + {CFB54F15-8A8A-0505-9B7F-ECA41CEE38E8} + + + {911F0159-A7A8-4A43-3FD4-154F62F4A44B} + + + {9D5816C2-E2B2-2E3F-B095-AC8BD1100D29} + + + {3FDCD000-763F-8477-9AF8-70ABA2E91E5E} + + + {0947506F-66FA-EF8D-8A4E-4D48BCDBB226} + + + {E4B6AED3-F54C-3FF2-069F-640BACAE0E08} + + + {D5EADBCC-6A1C-C940-0206-26E49110AF08} + + + {D27DC92D-5BEB-9294-DCD1-81D54E245AD5} + + + {BCD73D20-42B1-6CDB-DE66-B06236A60F47} + + + {20DC13F6-2369-8841-9F0B-D13FA14EEE74} + + + {A302A8DB-120F-9EBB-A3D5-2C29963AA56B} + + + {45489C2A-6E0E-CCDC-6638-0DACEEB63CCA} + + + {F1B90726-DB55-0293-BFAF-C65C7DF5489C} + + + {2C55FD42-0ACD-B0B8-7EAE-EB17F09BAEEC} + + + {B68CD2B2-701F-9AB7-4638-2485D6E06BCF} + + + {B0B7C78E-729E-0FFA-D611-82AE8BC7FE2C} + + + {0A4F7E12-220C-14EF-0026-9C0629FA9C17} + + + {37F49E10-4E62-6D5C-FF70-722D0CA3D97E} + + + {160D9882-0F68-278D-C5F9-8960FD7421D2} + + + {4CED05DA-E0A2-E548-F753-1F2EF299A8E3} + + + {294E4CD5-B06F-97D1-04A3-51871CEA507C} + + + {77228F15-BD91-06FF-2C7E-0377D25C2C94} + + + {5CB531E6-BF9A-2C50-056C-EE5A525D28D3} + + + {E4EA47E5-B41C-2A19-1783-7E9104096ECD} + + + {46A17AC9-0BFF-B5CE-26D6-B9D1992C88AC} + + + {D90A8DF7-FBAB-D363-13C0-6707BB22B72B} + + + {8AE77C40-6839-EC37-4515-BD3CC269BCE4} + + + {0EAD99DB-011F-09E5-45A2-365F646EB004} + + + {F57590C6-3B90-1BE1-1006-488BA33E8BD9} + + + {7C319D73-0D93-5842-0874-398D2D3038D5} + + + {2CB4DB0C-DD3B-6195-D822-76EC7A5C88D2} + + + {FE3CB19C-EF43-5CF5-DAF0-09D4E43D0AB9} + + + {895C2D33-E08D-B1BA-BB36-FC4CA65090C8} + + + {D64A57DB-A956-5519-1929-1D929B56E1B0} + + + {5A99CC24-AC45-7ED6-C11A-B8B86E76D884} + + + {7A131EEC-25A7-22F6-2839-A2194DDF3007} + + + {EA9DB76C-CEF7-6BFC-2070-28B7DF8E8063} + + + {3C206A40-6F1B-E683-ACF1-DEC3703D0140} + + + {DF95D4BF-E18C-125A-5EBB-8993A06E232C} + + + {118946F2-AC24-0F09-62D5-753DF87A60CD} + + + {07329F9B-7D3D-CEB3-C771-714842076140} + + + {08BBBECB-B0D1-7611-37EC-F57E1D0CE2A2} + + + {268E8F2A-980C-BF2F-B161-AACABC9D91F3} + + + {A4D76113-9EDC-DA60-D89B-5BACF7F1C426} + + + {FE955B6B-68AC-AA07-70D8-2413F6DB65C8} + + + {7ED5A90E-41AF-A1EF-659B-37CEEAB9BA61} + + + + + AudioPerformanceTest\Source + + + JUCE Modules\juce_audio_basics\buffers + + + JUCE Modules\juce_audio_basics\buffers + + + JUCE Modules\juce_audio_basics\buffers + + + JUCE Modules\juce_audio_basics\effects + + + JUCE Modules\juce_audio_basics\effects + + + JUCE Modules\juce_audio_basics\effects + + + JUCE Modules\juce_audio_basics\midi + + + JUCE Modules\juce_audio_basics\midi + + + JUCE Modules\juce_audio_basics\midi + + + JUCE Modules\juce_audio_basics\midi + + + JUCE Modules\juce_audio_basics\midi + + + JUCE Modules\juce_audio_basics\midi + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\synthesisers + + + JUCE Modules\juce_audio_basics + + + JUCE Modules\juce_audio_basics + + + JUCE Modules\juce_audio_devices\audio_io + + + JUCE Modules\juce_audio_devices\audio_io + + + JUCE Modules\juce_audio_devices\audio_io + + + JUCE Modules\juce_audio_devices\midi_io + + + JUCE Modules\juce_audio_devices\midi_io + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\sources + + + JUCE Modules\juce_audio_devices\sources + + + JUCE Modules\juce_audio_devices + + + JUCE Modules\juce_audio_devices + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\sampler + + + JUCE Modules\juce_audio_formats + + + JUCE Modules\juce_audio_formats + + + JUCE Modules\juce_audio_processors\format + + + JUCE Modules\juce_audio_processors\format + + + JUCE Modules\juce_audio_processors\format_types + + + JUCE Modules\juce_audio_processors\format_types + + + JUCE Modules\juce_audio_processors\format_types + + + JUCE Modules\juce_audio_processors\format_types + + + JUCE Modules\juce_audio_processors\format_types + + + JUCE Modules\juce_audio_processors\processors + + + JUCE Modules\juce_audio_processors\processors + + + JUCE Modules\juce_audio_processors\processors + + + JUCE Modules\juce_audio_processors\processors + + + JUCE Modules\juce_audio_processors\processors + + + JUCE Modules\juce_audio_processors\processors + + + JUCE Modules\juce_audio_processors\scanning + + + JUCE Modules\juce_audio_processors\scanning + + + JUCE Modules\juce_audio_processors\scanning + + + JUCE Modules\juce_audio_processors\utilities + + + JUCE Modules\juce_audio_processors\utilities + + + JUCE Modules\juce_audio_processors + + + JUCE Modules\juce_audio_processors + + + JUCE Modules\juce_audio_utils\audio_cd + + + JUCE Modules\juce_audio_utils\gui + + + JUCE Modules\juce_audio_utils\gui + + + JUCE Modules\juce_audio_utils\gui + + + JUCE Modules\juce_audio_utils\gui + + + JUCE Modules\juce_audio_utils\gui + + + JUCE Modules\juce_audio_utils\gui + + + JUCE Modules\juce_audio_utils\native + + + JUCE Modules\juce_audio_utils\native + + + JUCE Modules\juce_audio_utils\native + + + JUCE Modules\juce_audio_utils\native + + + JUCE Modules\juce_audio_utils\native + + + JUCE Modules\juce_audio_utils\native + + + JUCE Modules\juce_audio_utils\native + + + JUCE Modules\juce_audio_utils\native + + + JUCE Modules\juce_audio_utils\native + + + JUCE Modules\juce_audio_utils\native + + + JUCE Modules\juce_audio_utils\players + + + JUCE Modules\juce_audio_utils\players + + + JUCE Modules\juce_audio_utils + + + JUCE Modules\juce_audio_utils + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\javascript + + + JUCE Modules\juce_core\javascript + + + JUCE Modules\juce_core\logging + + + JUCE Modules\juce_core\logging + + + JUCE Modules\juce_core\maths + + + JUCE Modules\juce_core\maths + + + JUCE Modules\juce_core\maths + + + JUCE Modules\juce_core\memory + + + JUCE Modules\juce_core\misc + + + JUCE Modules\juce_core\misc + + + JUCE Modules\juce_core\misc + + + JUCE Modules\juce_core\misc + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\network + + + JUCE Modules\juce_core\network + + + JUCE Modules\juce_core\network + + + JUCE Modules\juce_core\network + + + JUCE Modules\juce_core\network + + + JUCE Modules\juce_core\network + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\system + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\time + + + JUCE Modules\juce_core\time + + + JUCE Modules\juce_core\time + + + JUCE Modules\juce_core\unit_tests + + + JUCE Modules\juce_core\xml + + + JUCE Modules\juce_core\xml + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip + + + JUCE Modules\juce_core\zip + + + JUCE Modules\juce_core\zip + + + JUCE Modules\juce_core + + + JUCE Modules\juce_core + + + JUCE Modules\juce_data_structures\app_properties + + + JUCE Modules\juce_data_structures\app_properties + + + JUCE Modules\juce_data_structures\undomanager + + + JUCE Modules\juce_data_structures\values + + + JUCE Modules\juce_data_structures\values + + + JUCE Modules\juce_data_structures\values + + + JUCE Modules\juce_data_structures\values + + + JUCE Modules\juce_data_structures + + + JUCE Modules\juce_data_structures + + + JUCE Modules\juce_events\broadcasters + + + JUCE Modules\juce_events\broadcasters + + + JUCE Modules\juce_events\broadcasters + + + JUCE Modules\juce_events\interprocess + + + JUCE Modules\juce_events\interprocess + + + JUCE Modules\juce_events\interprocess + + + JUCE Modules\juce_events\messages + + + JUCE Modules\juce_events\messages + + + JUCE Modules\juce_events\messages + + + JUCE Modules\juce_events\messages + + + JUCE Modules\juce_events\native + + + JUCE Modules\juce_events\native + + + JUCE Modules\juce_events\native + + + JUCE Modules\juce_events\native + + + JUCE Modules\juce_events\native + + + JUCE Modules\juce_events\native + + + JUCE Modules\juce_events\timers + + + JUCE Modules\juce_events\timers + + + JUCE Modules\juce_events + + + JUCE Modules\juce_events + + + JUCE Modules\juce_graphics\colour + + + JUCE Modules\juce_graphics\colour + + + JUCE Modules\juce_graphics\colour + + + JUCE Modules\juce_graphics\colour + + + JUCE Modules\juce_graphics\contexts + + + JUCE Modules\juce_graphics\contexts + + + JUCE Modules\juce_graphics\contexts + + + JUCE Modules\juce_graphics\effects + + + JUCE Modules\juce_graphics\effects + + + JUCE Modules\juce_graphics\fonts + + + JUCE Modules\juce_graphics\fonts + + + JUCE Modules\juce_graphics\fonts + + + JUCE Modules\juce_graphics\fonts + + + JUCE Modules\juce_graphics\fonts + + + JUCE Modules\juce_graphics\fonts + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats + + + JUCE Modules\juce_graphics\image_formats + + + JUCE Modules\juce_graphics\image_formats + + + JUCE Modules\juce_graphics\images + + + JUCE Modules\juce_graphics\images + + + JUCE Modules\juce_graphics\images + + + JUCE Modules\juce_graphics\images + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\placement + + + JUCE Modules\juce_graphics + + + JUCE Modules\juce_graphics + + + JUCE Modules\juce_gui_basics\application + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\commands + + + JUCE Modules\juce_gui_basics\commands + + + JUCE Modules\juce_gui_basics\commands + + + JUCE Modules\juce_gui_basics\commands + + + JUCE Modules\juce_gui_basics\components + + + JUCE Modules\juce_gui_basics\components + + + JUCE Modules\juce_gui_basics\components + + + JUCE Modules\juce_gui_basics\components + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\keyboard + + + JUCE Modules\juce_gui_basics\keyboard + + + JUCE Modules\juce_gui_basics\keyboard + + + JUCE Modules\juce_gui_basics\keyboard + + + JUCE Modules\juce_gui_basics\keyboard + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\lookandfeel + + + JUCE Modules\juce_gui_basics\lookandfeel + + + JUCE Modules\juce_gui_basics\lookandfeel + + + JUCE Modules\juce_gui_basics\lookandfeel + + + JUCE Modules\juce_gui_basics\lookandfeel + + + JUCE Modules\juce_gui_basics\menus + + + JUCE Modules\juce_gui_basics\menus + + + JUCE Modules\juce_gui_basics\menus + + + JUCE Modules\juce_gui_basics\menus + + + JUCE Modules\juce_gui_basics\misc + + + JUCE Modules\juce_gui_basics\misc + + + JUCE Modules\juce_gui_basics\misc + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\positioning + + + JUCE Modules\juce_gui_basics\positioning + + + JUCE Modules\juce_gui_basics\positioning + + + JUCE Modules\juce_gui_basics\positioning + + + JUCE Modules\juce_gui_basics\positioning + + + JUCE Modules\juce_gui_basics\positioning + + + JUCE Modules\juce_gui_basics\positioning + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics + + + JUCE Modules\juce_gui_basics + + + JUCE Modules\juce_gui_extra\code_editor + + + JUCE Modules\juce_gui_extra\code_editor + + + JUCE Modules\juce_gui_extra\code_editor + + + JUCE Modules\juce_gui_extra\code_editor + + + JUCE Modules\juce_gui_extra\code_editor + + + JUCE Modules\juce_gui_extra\documents + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra + + + JUCE Modules\juce_gui_extra + + + JUCE Library Code + + + JUCE Library Code + + + JUCE Library Code + + + JUCE Library Code + + + JUCE Library Code + + + JUCE Library Code + + + JUCE Library Code + + + JUCE Library Code + + + JUCE Library Code + + + JUCE Library Code + + + JUCE Library Code + + + + + AudioPerformanceTest\Source + + + JUCE Modules\juce_audio_basics\audio_play_head + + + JUCE Modules\juce_audio_basics\buffers + + + JUCE Modules\juce_audio_basics\buffers + + + JUCE Modules\juce_audio_basics\buffers + + + JUCE Modules\juce_audio_basics\buffers + + + JUCE Modules\juce_audio_basics\effects + + + JUCE Modules\juce_audio_basics\effects + + + JUCE Modules\juce_audio_basics\effects + + + JUCE Modules\juce_audio_basics\effects + + + JUCE Modules\juce_audio_basics\effects + + + JUCE Modules\juce_audio_basics\effects + + + JUCE Modules\juce_audio_basics\midi + + + JUCE Modules\juce_audio_basics\midi + + + JUCE Modules\juce_audio_basics\midi + + + JUCE Modules\juce_audio_basics\midi + + + JUCE Modules\juce_audio_basics\midi + + + JUCE Modules\juce_audio_basics\midi + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\mpe + + + JUCE Modules\juce_audio_basics\native + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\sources + + + JUCE Modules\juce_audio_basics\synthesisers + + + JUCE Modules\juce_audio_basics + + + JUCE Modules\juce_audio_devices\audio_io + + + JUCE Modules\juce_audio_devices\audio_io + + + JUCE Modules\juce_audio_devices\audio_io + + + JUCE Modules\juce_audio_devices\audio_io + + + JUCE Modules\juce_audio_devices\midi_io + + + JUCE Modules\juce_audio_devices\midi_io + + + JUCE Modules\juce_audio_devices\midi_io + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\native + + + JUCE Modules\juce_audio_devices\sources + + + JUCE Modules\juce_audio_devices\sources + + + JUCE Modules\juce_audio_devices + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected + + + JUCE Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected + + + JUCE Modules\juce_audio_formats\codecs\flac + + + JUCE Modules\juce_audio_formats\codecs\flac + + + JUCE Modules\juce_audio_formats\codecs\flac + + + JUCE Modules\juce_audio_formats\codecs\flac + + + JUCE Modules\juce_audio_formats\codecs\flac + + + JUCE Modules\juce_audio_formats\codecs\flac + + + JUCE Modules\juce_audio_formats\codecs\flac + + + JUCE Modules\juce_audio_formats\codecs\flac + + + JUCE Modules\juce_audio_formats\codecs\flac + + + JUCE Modules\juce_audio_formats\codecs\flac + + + JUCE Modules\juce_audio_formats\codecs\flac + + + JUCE Modules\juce_audio_formats\codecs\flac + + + JUCE Modules\juce_audio_formats\codecs\flac + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\coupled + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\coupled + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\floor + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\uncoupled + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\codecs + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\format + + + JUCE Modules\juce_audio_formats\sampler + + + JUCE Modules\juce_audio_formats + + + JUCE Modules\juce_audio_processors\format + + + JUCE Modules\juce_audio_processors\format + + + JUCE Modules\juce_audio_processors\format_types + + + JUCE Modules\juce_audio_processors\format_types + + + JUCE Modules\juce_audio_processors\format_types + + + JUCE Modules\juce_audio_processors\format_types + + + JUCE Modules\juce_audio_processors\format_types + + + JUCE Modules\juce_audio_processors\format_types + + + JUCE Modules\juce_audio_processors\format_types + + + JUCE Modules\juce_audio_processors\format_types + + + JUCE Modules\juce_audio_processors\format_types + + + JUCE Modules\juce_audio_processors\processors + + + JUCE Modules\juce_audio_processors\processors + + + JUCE Modules\juce_audio_processors\processors + + + JUCE Modules\juce_audio_processors\processors + + + JUCE Modules\juce_audio_processors\processors + + + JUCE Modules\juce_audio_processors\processors + + + JUCE Modules\juce_audio_processors\processors + + + JUCE Modules\juce_audio_processors\processors + + + JUCE Modules\juce_audio_processors\scanning + + + JUCE Modules\juce_audio_processors\scanning + + + JUCE Modules\juce_audio_processors\scanning + + + JUCE Modules\juce_audio_processors\utilities + + + JUCE Modules\juce_audio_processors\utilities + + + JUCE Modules\juce_audio_processors\utilities + + + JUCE Modules\juce_audio_processors\utilities + + + JUCE Modules\juce_audio_processors\utilities + + + JUCE Modules\juce_audio_processors\utilities + + + JUCE Modules\juce_audio_processors + + + JUCE Modules\juce_audio_utils\audio_cd + + + JUCE Modules\juce_audio_utils\audio_cd + + + JUCE Modules\juce_audio_utils\gui + + + JUCE Modules\juce_audio_utils\gui + + + JUCE Modules\juce_audio_utils\gui + + + JUCE Modules\juce_audio_utils\gui + + + JUCE Modules\juce_audio_utils\gui + + + JUCE Modules\juce_audio_utils\gui + + + JUCE Modules\juce_audio_utils\gui + + + JUCE Modules\juce_audio_utils\gui + + + JUCE Modules\juce_audio_utils\players + + + JUCE Modules\juce_audio_utils\players + + + JUCE Modules\juce_audio_utils + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\containers + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\files + + + JUCE Modules\juce_core\javascript + + + JUCE Modules\juce_core\javascript + + + JUCE Modules\juce_core\logging + + + JUCE Modules\juce_core\logging + + + JUCE Modules\juce_core\maths + + + JUCE Modules\juce_core\maths + + + JUCE Modules\juce_core\maths + + + JUCE Modules\juce_core\maths + + + JUCE Modules\juce_core\maths + + + JUCE Modules\juce_core\maths + + + JUCE Modules\juce_core\maths + + + JUCE Modules\juce_core\memory + + + JUCE Modules\juce_core\memory + + + JUCE Modules\juce_core\memory + + + JUCE Modules\juce_core\memory + + + JUCE Modules\juce_core\memory + + + JUCE Modules\juce_core\memory + + + JUCE Modules\juce_core\memory + + + JUCE Modules\juce_core\memory + + + JUCE Modules\juce_core\memory + + + JUCE Modules\juce_core\memory + + + JUCE Modules\juce_core\memory + + + JUCE Modules\juce_core\memory + + + JUCE Modules\juce_core\memory + + + JUCE Modules\juce_core\misc + + + JUCE Modules\juce_core\misc + + + JUCE Modules\juce_core\misc + + + JUCE Modules\juce_core\misc + + + JUCE Modules\juce_core\misc + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\native + + + JUCE Modules\juce_core\network + + + JUCE Modules\juce_core\network + + + JUCE Modules\juce_core\network + + + JUCE Modules\juce_core\network + + + JUCE Modules\juce_core\network + + + JUCE Modules\juce_core\network + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\streams + + + JUCE Modules\juce_core\system + + + JUCE Modules\juce_core\system + + + JUCE Modules\juce_core\system + + + JUCE Modules\juce_core\system + + + JUCE Modules\juce_core\system + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\text + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\threads + + + JUCE Modules\juce_core\time + + + JUCE Modules\juce_core\time + + + JUCE Modules\juce_core\time + + + JUCE Modules\juce_core\unit_tests + + + JUCE Modules\juce_core\xml + + + JUCE Modules\juce_core\xml + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip\zlib + + + JUCE Modules\juce_core\zip + + + JUCE Modules\juce_core\zip + + + JUCE Modules\juce_core\zip + + + JUCE Modules\juce_core + + + JUCE Modules\juce_data_structures\app_properties + + + JUCE Modules\juce_data_structures\app_properties + + + JUCE Modules\juce_data_structures\undomanager + + + JUCE Modules\juce_data_structures\undomanager + + + JUCE Modules\juce_data_structures\values + + + JUCE Modules\juce_data_structures\values + + + JUCE Modules\juce_data_structures\values + + + JUCE Modules\juce_data_structures\values + + + JUCE Modules\juce_data_structures\values + + + JUCE Modules\juce_data_structures + + + JUCE Modules\juce_events\broadcasters + + + JUCE Modules\juce_events\broadcasters + + + JUCE Modules\juce_events\broadcasters + + + JUCE Modules\juce_events\broadcasters + + + JUCE Modules\juce_events\broadcasters + + + JUCE Modules\juce_events\interprocess + + + JUCE Modules\juce_events\interprocess + + + JUCE Modules\juce_events\interprocess + + + JUCE Modules\juce_events\messages + + + JUCE Modules\juce_events\messages + + + JUCE Modules\juce_events\messages + + + JUCE Modules\juce_events\messages + + + JUCE Modules\juce_events\messages + + + JUCE Modules\juce_events\messages + + + JUCE Modules\juce_events\messages + + + JUCE Modules\juce_events\messages + + + JUCE Modules\juce_events\messages + + + JUCE Modules\juce_events\native + + + JUCE Modules\juce_events\native + + + JUCE Modules\juce_events\native + + + JUCE Modules\juce_events\native + + + JUCE Modules\juce_events\timers + + + JUCE Modules\juce_events\timers + + + JUCE Modules\juce_events + + + JUCE Modules\juce_graphics\colour + + + JUCE Modules\juce_graphics\colour + + + JUCE Modules\juce_graphics\colour + + + JUCE Modules\juce_graphics\colour + + + JUCE Modules\juce_graphics\colour + + + JUCE Modules\juce_graphics\contexts + + + JUCE Modules\juce_graphics\contexts + + + JUCE Modules\juce_graphics\contexts + + + JUCE Modules\juce_graphics\contexts + + + JUCE Modules\juce_graphics\effects + + + JUCE Modules\juce_graphics\effects + + + JUCE Modules\juce_graphics\effects + + + JUCE Modules\juce_graphics\fonts + + + JUCE Modules\juce_graphics\fonts + + + JUCE Modules\juce_graphics\fonts + + + JUCE Modules\juce_graphics\fonts + + + JUCE Modules\juce_graphics\fonts + + + JUCE Modules\juce_graphics\fonts + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\geometry + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + JUCE Modules\juce_graphics\images + + + JUCE Modules\juce_graphics\images + + + JUCE Modules\juce_graphics\images + + + JUCE Modules\juce_graphics\images + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\native + + + JUCE Modules\juce_graphics\placement + + + JUCE Modules\juce_graphics\placement + + + JUCE Modules\juce_graphics + + + JUCE Modules\juce_gui_basics\application + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\buttons + + + JUCE Modules\juce_gui_basics\commands + + + JUCE Modules\juce_gui_basics\commands + + + JUCE Modules\juce_gui_basics\commands + + + JUCE Modules\juce_gui_basics\commands + + + JUCE Modules\juce_gui_basics\commands + + + JUCE Modules\juce_gui_basics\components + + + JUCE Modules\juce_gui_basics\components + + + JUCE Modules\juce_gui_basics\components + + + JUCE Modules\juce_gui_basics\components + + + JUCE Modules\juce_gui_basics\components + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\drawables + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\filebrowser + + + JUCE Modules\juce_gui_basics\keyboard + + + JUCE Modules\juce_gui_basics\keyboard + + + JUCE Modules\juce_gui_basics\keyboard + + + JUCE Modules\juce_gui_basics\keyboard + + + JUCE Modules\juce_gui_basics\keyboard + + + JUCE Modules\juce_gui_basics\keyboard + + + JUCE Modules\juce_gui_basics\keyboard + + + JUCE Modules\juce_gui_basics\keyboard + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\layout + + + JUCE Modules\juce_gui_basics\lookandfeel + + + JUCE Modules\juce_gui_basics\lookandfeel + + + JUCE Modules\juce_gui_basics\lookandfeel + + + JUCE Modules\juce_gui_basics\lookandfeel + + + JUCE Modules\juce_gui_basics\lookandfeel + + + JUCE Modules\juce_gui_basics\menus + + + JUCE Modules\juce_gui_basics\menus + + + JUCE Modules\juce_gui_basics\menus + + + JUCE Modules\juce_gui_basics\menus + + + JUCE Modules\juce_gui_basics\misc + + + JUCE Modules\juce_gui_basics\misc + + + JUCE Modules\juce_gui_basics\misc + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\mouse + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\native + + + JUCE Modules\juce_gui_basics\positioning + + + JUCE Modules\juce_gui_basics\positioning + + + JUCE Modules\juce_gui_basics\positioning + + + JUCE Modules\juce_gui_basics\positioning + + + JUCE Modules\juce_gui_basics\positioning + + + JUCE Modules\juce_gui_basics\positioning + + + JUCE Modules\juce_gui_basics\positioning + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\properties + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\widgets + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics\windows + + + JUCE Modules\juce_gui_basics + + + JUCE Modules\juce_gui_extra\code_editor + + + JUCE Modules\juce_gui_extra\code_editor + + + JUCE Modules\juce_gui_extra\code_editor + + + JUCE Modules\juce_gui_extra\code_editor + + + JUCE Modules\juce_gui_extra\code_editor + + + JUCE Modules\juce_gui_extra\code_editor + + + JUCE Modules\juce_gui_extra\code_editor + + + JUCE Modules\juce_gui_extra\documents + + + JUCE Modules\juce_gui_extra\embedding + + + JUCE Modules\juce_gui_extra\embedding + + + JUCE Modules\juce_gui_extra\embedding + + + JUCE Modules\juce_gui_extra\embedding + + + JUCE Modules\juce_gui_extra\embedding + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\misc + + + JUCE Modules\juce_gui_extra\native + + + JUCE Modules\juce_gui_extra + + + JUCE Library Code + + + JUCE Library Code + + + + + JUCE Modules\juce_audio_formats\codecs\flac + + + JUCE Modules\juce_audio_formats\codecs\oggvorbis + + + JUCE Modules\juce_graphics\image_formats\jpglib + + + JUCE Modules\juce_graphics\image_formats\pnglib + + + + + JUCE Library Code + + + diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2017/resources.rc b/extras/AudioPerformanceTest/Builds/VisualStudio2017/resources.rc new file mode 100644 index 0000000000..2dec142923 --- /dev/null +++ b/extras/AudioPerformanceTest/Builds/VisualStudio2017/resources.rc @@ -0,0 +1,31 @@ +#ifdef JUCE_USER_DEFINED_RC_FILE + #include JUCE_USER_DEFINED_RC_FILE +#else + +#undef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#include + +VS_VERSION_INFO VERSIONINFO +FILEVERSION 1,0,0,0 +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "ROLI Ltd.\0" + VALUE "LegalCopyright", "ROLI Ltd.\0" + VALUE "FileDescription", "AudioPerformanceTest\0" + VALUE "FileVersion", "1.0.0\0" + VALUE "ProductName", "AudioPerformanceTest\0" + VALUE "ProductVersion", "1.0.0\0" + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif diff --git a/extras/AudioPerformanceTest/Source/Main.cpp b/extras/AudioPerformanceTest/Source/Main.cpp index c7a96755b5..c221c7e87d 100644 --- a/extras/AudioPerformanceTest/Source/Main.cpp +++ b/extras/AudioPerformanceTest/Source/Main.cpp @@ -43,7 +43,7 @@ public: //============================================================================== void initialise (const String&) override { - mainWindow = new MainWindow (getApplicationName()); + mainWindow.reset (new MainWindow (getApplicationName())); } void shutdown() override diff --git a/extras/AudioPluginHost/Source/Filters/FilterIOConfiguration.cpp b/extras/AudioPluginHost/Source/Filters/FilterIOConfiguration.cpp index 3261ba9ede..db17db8218 100644 --- a/extras/AudioPluginHost/Source/Filters/FilterIOConfiguration.cpp +++ b/extras/AudioPluginHost/Source/Filters/FilterIOConfiguration.cpp @@ -448,10 +448,16 @@ FilterIOConfigurationWindow::FilterIOConfigurationWindow (AudioProcessor& p) } if (p.getBusCount (true) > 0 || p.canAddBus (true)) - addAndMakeVisible (inConfig = new InputOutputConfig (*this, true)); + { + inConfig.reset (new InputOutputConfig (*this, true)); + addAndMakeVisible (inConfig.get()); + } if (p.getBusCount (false) > 0 || p.canAddBus (false)) - addAndMakeVisible (outConfig = new InputOutputConfig (*this, false)); + { + outConfig.reset (new InputOutputConfig (*this, false)); + addAndMakeVisible (outConfig.get()); + } currentLayout = p.getBusesLayout(); setSize (400, (inConfig != nullptr && outConfig != nullptr ? 160 : 0) + 200); diff --git a/extras/AudioPluginHost/Source/Filters/FilterIOConfiguration.h b/extras/AudioPluginHost/Source/Filters/FilterIOConfiguration.h index 4666ddc73f..1531874543 100644 --- a/extras/AudioPluginHost/Source/Filters/FilterIOConfiguration.h +++ b/extras/AudioPluginHost/Source/Filters/FilterIOConfiguration.h @@ -48,7 +48,7 @@ private: Label title; ScopedPointer inConfig, outConfig; - InputOutputConfig* getConfig (bool isInput) noexcept { return isInput ? inConfig : outConfig; } + InputOutputConfig* getConfig (bool isInput) noexcept { return isInput ? inConfig.get() : outConfig.get(); } void update(); MainHostWindow* getMainWindow() const; diff --git a/extras/AudioPluginHost/Source/HostStartup.cpp b/extras/AudioPluginHost/Source/HostStartup.cpp index b350f6420e..ac827684ba 100644 --- a/extras/AudioPluginHost/Source/HostStartup.cpp +++ b/extras/AudioPluginHost/Source/HostStartup.cpp @@ -49,14 +49,14 @@ public: options.filenameSuffix = "settings"; options.osxLibrarySubFolder = "Preferences"; - appProperties = new ApplicationProperties(); + appProperties.reset (new ApplicationProperties()); appProperties->setStorageParameters (options); - mainWindow = new MainHostWindow(); + mainWindow.reset (new MainHostWindow()); mainWindow->setUsingNativeTitleBar (true); commandManager.registerAllCommandsForTarget (this); - commandManager.registerAllCommandsForTarget (mainWindow); + commandManager.registerAllCommandsForTarget (mainWindow.get()); mainWindow->menuItemsChanged(); diff --git a/extras/AudioPluginHost/Source/UI/GraphEditorPanel.cpp b/extras/AudioPluginHost/Source/UI/GraphEditorPanel.cpp index dfd815521b..61fc57c91d 100644 --- a/extras/AudioPluginHost/Source/UI/GraphEditorPanel.cpp +++ b/extras/AudioPluginHost/Source/UI/GraphEditorPanel.cpp @@ -57,8 +57,8 @@ auto deadMansPedalFile = getAppProperties().getUserSettings() ->getFile().getSiblingFile ("RecentlyCrashedPluginsList"); - scanner = new PluginDirectoryScanner (knownPluginList, formatToScan, paths, - true, deadMansPedalFile, true); + scanner.reset (new PluginDirectoryScanner (knownPluginList, formatToScan, paths, + true, deadMansPedalFile, true)); for (int i = 5; --i >= 0;) pool.addJob (new ScanJob (*this), true); @@ -399,7 +399,7 @@ struct GraphEditorPanel::FilterComponent : public Component, void showPopupMenu() { - menu = new PopupMenu; + menu.reset (new PopupMenu); menu->addItem (1, "Delete this filter"); menu->addItem (2, "Disconnect all pins"); menu->addItem (3, "Toggle Bypass"); @@ -820,7 +820,7 @@ void GraphEditorPanel::updateComponents() void GraphEditorPanel::showPopupMenu (Point mousePos) { - menu = new PopupMenu; + menu.reset (new PopupMenu); if (auto* mainWindow = findParentComponentOfClass()) { @@ -842,15 +842,15 @@ void GraphEditorPanel::beginConnectorDrag (AudioProcessorGraph::NodeAndChannel s { auto* c = dynamic_cast (e.originalComponent); connectors.removeObject (c, false); - draggingConnector = c; + draggingConnector.reset (c); if (draggingConnector == nullptr) - draggingConnector = new ConnectorComponent (*this); + draggingConnector.reset (new ConnectorComponent (*this)); draggingConnector->setInput (source); draggingConnector->setOutput (dest); - addAndMakeVisible (draggingConnector); + addAndMakeVisible (draggingConnector.get()); draggingConnector->toFront (false); dragConnector (e); @@ -1148,31 +1148,37 @@ GraphDocumentComponent::GraphDocumentComponent (AudioPluginFormatManager& fm, { init(); - deviceManager.addChangeListener (graphPanel); + deviceManager.addChangeListener (graphPanel.get()); deviceManager.addAudioCallback (&graphPlayer); deviceManager.addMidiInputCallback (String(), &graphPlayer.getMidiMessageCollector()); } void GraphDocumentComponent::init() { - addAndMakeVisible (graphPanel = new GraphEditorPanel (*graph)); + graphPanel.reset (new GraphEditorPanel (*graph)); + addAndMakeVisible (graphPanel.get()); graphPlayer.setProcessor (&graph->graph); keyState.addListener (&graphPlayer.getMidiMessageCollector()); - addAndMakeVisible (keyboardComp = new MidiKeyboardComponent (keyState, MidiKeyboardComponent::horizontalKeyboard)); - addAndMakeVisible (statusBar = new TooltipBar()); + keyboardComp.reset (new MidiKeyboardComponent (keyState, MidiKeyboardComponent::horizontalKeyboard)); + addAndMakeVisible (keyboardComp.get()); + statusBar.reset (new TooltipBar()); + addAndMakeVisible (statusBar.get()); graphPanel->updateComponents(); if (isOnTouchDevice()) { if (isOnTouchDevice()) - addAndMakeVisible (titleBarComponent = new TitleBarComponent (*this)); + { + titleBarComponent.reset (new TitleBarComponent (*this)); + addAndMakeVisible (titleBarComponent.get()); + } - pluginListBoxModel = new PluginListBoxModel (pluginListBox, pluginList); + pluginListBoxModel.reset (new PluginListBoxModel (pluginListBox, pluginList)); - pluginListBox.setModel (pluginListBoxModel); + pluginListBox.setModel (pluginListBoxModel.get()); pluginListBox.setRowHeight (40); pluginListSidePanel.setContent (&pluginListBox, false); @@ -1230,7 +1236,7 @@ void GraphDocumentComponent::releaseGraph() if (graphPanel != nullptr) { - deviceManager.removeChangeListener (graphPanel); + deviceManager.removeChangeListener (graphPanel.get()); graphPanel = nullptr; } diff --git a/extras/AudioPluginHost/Source/UI/MainHostWindow.cpp b/extras/AudioPluginHost/Source/UI/MainHostWindow.cpp index 23f99fcadd..feace10313 100644 --- a/extras/AudioPluginHost/Source/UI/MainHostWindow.cpp +++ b/extras/AudioPluginHost/Source/UI/MainHostWindow.cpp @@ -87,7 +87,7 @@ MainHostWindow::MainHostWindow() ScopedPointer savedAudioState (getAppProperties().getUserSettings() ->getXmlValue ("audioDeviceState")); - safeThis->deviceManager.initialise (granted ? 256 : 0, 256, savedAudioState, true); + safeThis->deviceManager.initialise (granted ? 256 : 0, 256, savedAudioState.get(), true); }); #if JUCE_IOS || JUCE_ANDROID @@ -98,9 +98,9 @@ MainHostWindow::MainHostWindow() centreWithSize (800, 600); #endif - graphHolder = new GraphDocumentComponent (formatManager, deviceManager, knownPluginList); + graphHolder.reset (new GraphDocumentComponent (formatManager, deviceManager, knownPluginList)); - setContentNonOwned (graphHolder, false); + setContentNonOwned (graphHolder.get(), false); restoreWindowStateFromString (getAppProperties().getUserSettings()->getValue ("mainWindowPos")); @@ -224,11 +224,11 @@ void MainHostWindow::changeListenerCallback (ChangeBroadcaster* changed) if (savedPluginList != nullptr) { - getAppProperties().getUserSettings()->setValue ("pluginList", savedPluginList); + getAppProperties().getUserSettings()->setValue ("pluginList", savedPluginList.get()); getAppProperties().saveIfNeeded(); } } - else if (graphHolder != nullptr && changed == graphHolder->graph) + else if (graphHolder != nullptr && changed == graphHolder->graph.get()) { auto title = JUCEApplication::getInstance()->getApplicationName(); auto f = graphHolder->graph->getFile(); @@ -506,7 +506,7 @@ bool MainHostWindow::perform (const InvocationInfo& info) case CommandIDs::showPluginListEditor: if (pluginListWindow == nullptr) - pluginListWindow = new PluginListWindow (*this, formatManager); + pluginListWindow.reset (new PluginListWindow (*this, formatManager)); pluginListWindow->toFront (true); break; @@ -579,7 +579,7 @@ void MainHostWindow::showAudioSettings() { ScopedPointer audioState (safeThis->deviceManager.createStateXml()); - getAppProperties().getUserSettings()->setValue ("audioDeviceState", audioState); + getAppProperties().getUserSettings()->setValue ("audioDeviceState", audioState.get()); getAppProperties().getUserSettings()->saveIfNeeded(); if (safeThis->graphHolder != nullptr) diff --git a/extras/BinaryBuilder/Source/Main.cpp b/extras/BinaryBuilder/Source/Main.cpp index eaf759cc04..5310e885d0 100644 --- a/extras/BinaryBuilder/Source/Main.cpp +++ b/extras/BinaryBuilder/Source/Main.cpp @@ -81,7 +81,7 @@ static int addFile (const File& file, cppStream << "const char* " << classname << "::" << name << " = (const char*) temp" << tempNum << ";\r\n\r\n"; - return mb.getSize(); + return (int) mb.getSize(); } static bool isHiddenFile (const File& f, const File& root) diff --git a/extras/NetworkGraphicsDemo/Source/Demos.h b/extras/NetworkGraphicsDemo/Source/Demos.h index b2e0797451..0ae21e8b42 100644 --- a/extras/NetworkGraphicsDemo/Source/Demos.h +++ b/extras/NetworkGraphicsDemo/Source/Demos.h @@ -85,7 +85,7 @@ struct BackgroundLogo : public AnimatedContent )blahblah"; ScopedPointer svg (XmlDocument::parse (logoData)); - logo = Drawable::createFromSVG (*svg); + logo.reset (Drawable::createFromSVG (*svg)); } String getName() const override { return "Background Image"; } @@ -205,18 +205,18 @@ struct FlockDemo : public BackgroundLogo { Bird() { - Random rng; - pos.x = rng.nextFloat() * 10.0f - 5.0f; - pos.y = rng.nextFloat() * 10.0f - 5.0f; - velocity.x = rng.nextFloat() * 0.001f; - velocity.y = rng.nextFloat() * 0.001f; + Random randGen; + pos.x = randGen.nextFloat() * 10.0f - 5.0f; + pos.y = randGen.nextFloat() * 10.0f - 5.0f; + velocity.x = randGen.nextFloat() * 0.001f; + velocity.y = randGen.nextFloat() * 0.001f; - colour = Colour::fromHSV (rng.nextFloat(), 0.2f, 0.9f, rng.nextFloat() * 0.4f + 0.2f); + colour = Colour::fromHSV (randGen.nextFloat(), 0.2f, 0.9f, randGen.nextFloat() * 0.4f + 0.2f); shape.addTriangle (0.0f, 0.0f, -0.3f, 1.0f, 0.3f, 1.0f); shape = shape.createPathWithRoundedCorners (0.2f); - shape.applyTransform (AffineTransform::scale (rng.nextFloat() + 1.0f)); + shape.applyTransform (AffineTransform::scale (randGen.nextFloat() + 1.0f)); } Point pos, velocity, acc; @@ -410,8 +410,8 @@ struct FlockWithText : public FlockDemo as.append (text, Font (textSize * scale), Colour (0x80ffffff).withMultipliedAlpha (alpha)); as.setJustification (Justification::centred); - auto centre = canvas.clients[clientIndex % canvas.clients.size()].centre * scale; - as.draw (g, Rectangle (textBlockWidth * scale, textBlockWidth * scale).withCentre (centre)); + auto middle = canvas.clients[clientIndex % canvas.clients.size()].centre * scale; + as.draw (g, Rectangle (textBlockWidth * scale, textBlockWidth * scale).withCentre (middle)); } void tick() diff --git a/extras/NetworkGraphicsDemo/Source/MasterComponent.h b/extras/NetworkGraphicsDemo/Source/MasterComponent.h index c260e759cb..481fcec2b2 100644 --- a/extras/NetworkGraphicsDemo/Source/MasterComponent.h +++ b/extras/NetworkGraphicsDemo/Source/MasterComponent.h @@ -42,8 +42,8 @@ struct MasterContentComponent : public Component, createAllDemos (demos); setContent (0); - setSize (15.0f * currentCanvas.getLimits().getWidth(), - 15.0f * currentCanvas.getLimits().getHeight()); + setSize ((int) (15.0f * currentCanvas.getLimits().getWidth()), + (int) (15.0f * currentCanvas.getLimits().getHeight())); if (! OSCSender::connect (getBroadcastIPAddress(), masterPortNumber)) error = "Master app OSC sender: network connection error."; diff --git a/extras/Projucer/Source/Application/Windows/jucer_ApplicationUsageDataWindowComponent.h b/extras/Projucer/Source/Application/Windows/jucer_ApplicationUsageDataWindowComponent.h index 3e784c6e08..ce8164c37a 100644 --- a/extras/Projucer/Source/Application/Windows/jucer_ApplicationUsageDataWindowComponent.h +++ b/extras/Projucer/Source/Application/Windows/jucer_ApplicationUsageDataWindowComponent.h @@ -64,7 +64,8 @@ public: if (showCheckbox) { - addAndMakeVisible (shareApplicationUsageDataToggle = new ToggleButton()); + shareApplicationUsageDataToggle.reset (new ToggleButton()); + addAndMakeVisible (shareApplicationUsageDataToggle.get()); auto* controller = ProjucerApplication::getApp().licenseController.get(); diff --git a/extras/Projucer/Source/Application/Windows/jucer_PIPCreatorWindowComponent.h b/extras/Projucer/Source/Application/Windows/jucer_PIPCreatorWindowComponent.h index 184c04bf45..4a609531e5 100644 --- a/extras/Projucer/Source/Application/Windows/jucer_PIPCreatorWindowComponent.h +++ b/extras/Projucer/Source/Application/Windows/jucer_PIPCreatorWindowComponent.h @@ -63,7 +63,8 @@ class PIPCreatorWindowComponent : public Component, public: PIPCreatorWindowComponent() { - setLookAndFeel (lf = new PIPCreatorLookAndFeel()); + lf.reset (new PIPCreatorLookAndFeel()); + setLookAndFeel (lf.get()); addAndMakeVisible (propertyViewport); propertyViewport.setViewedComponent (&propertyGroup, false); diff --git a/extras/Projucer/Source/Application/Windows/jucer_SVGPathDataWindowComponent.h b/extras/Projucer/Source/Application/Windows/jucer_SVGPathDataWindowComponent.h index 7c48ecb769..cafc1663bc 100644 --- a/extras/Projucer/Source/Application/Windows/jucer_SVGPathDataWindowComponent.h +++ b/extras/Projucer/Source/Application/Windows/jucer_SVGPathDataWindowComponent.h @@ -163,11 +163,13 @@ public: dragOver = false; repaint(); - if (ScopedPointer e = XmlDocument::parse (File (files[0]))) + ScopedPointer element (XmlDocument::parse (File (files[0]))); + + if (element != nullptr) { - if (auto* ePath = e->getChildByName ("path")) + if (auto* ePath = element->getChildByName ("path")) userText.setText (ePath->getStringAttribute ("d"), true); - else if (auto* ePolygon = e->getChildByName ("polygon")) + else if (auto* ePolygon = element->getChildByName ("polygon")) userText.setText (ePolygon->getStringAttribute ("points"), true); } } diff --git a/extras/Projucer/Source/Application/jucer_Application.cpp b/extras/Projucer/Source/Application/jucer_Application.cpp index f9a7647e90..c606b225eb 100644 --- a/extras/Projucer/Source/Application/jucer_Application.cpp +++ b/extras/Projucer/Source/Application/jucer_Application.cpp @@ -85,7 +85,7 @@ void ProjucerApplication::initialise (const String& commandLine) isRunningCommandLine = commandLine.isNotEmpty(); - licenseController = new LicenseController; + licenseController.reset (new LicenseController); licenseController->addLicenseStatusChangedCallback (this); if (isRunningCommandLine) @@ -111,10 +111,10 @@ void ProjucerApplication::initialise (const String& commandLine) openDocumentManager.registerType (new ProjucerAppClasses::LiveBuildCodeEditorDocument::Type(), 2); - childProcessCache = new ChildProcessCache(); + childProcessCache.reset (new ChildProcessCache()); initCommandManager(); - menuModel = new MainMenuModel(); + menuModel.reset (new MainMenuModel()); settings->appearance.refreshPresetSchemeList(); @@ -131,9 +131,9 @@ void ProjucerApplication::initialiseBasics() { LookAndFeel::setDefaultLookAndFeel (&lookAndFeel); - settings = new StoredSettings(); + settings.reset (new StoredSettings()); ImageCache::setCacheTimeout (30 * 1000); - icons = new Icons(); + icons.reset (new Icons()); tooltipWindow.setMillisecondsBeforeTipAppears (1200); } @@ -147,10 +147,10 @@ bool ProjucerApplication::initialiseLogger (const char* filePrefix) String folder = "com.juce.projucer"; #endif - logger = FileLogger::createDateStampedLogger (folder, filePrefix, ".txt", - getApplicationName() + " " + getApplicationVersion() - + " --- Build date: " __DATE__); - Logger::setCurrentLogger (logger); + logger.reset (FileLogger::createDateStampedLogger (folder, filePrefix, ".txt", + getApplicationName() + " " + getApplicationVersion() + + " --- Build date: " __DATE__)); + Logger::setCurrentLogger (logger.get()); } return logger != nullptr; @@ -167,10 +167,10 @@ void ProjucerApplication::handleAsyncUpdate() // workaround broken "Open Recent" submenu: not passing the // submenu's title here avoids the defect in JuceMainMenuHandler::addMenuItem - MenuBarModel::setMacMainMenu (menuModel, &extraAppleMenuItems); //, "Open Recent"); + MenuBarModel::setMacMainMenu (menuModel.get(), &extraAppleMenuItems); //, "Open Recent"); #endif - versionChecker = new LatestVersionChecker(); + versionChecker.reset (new LatestVersionChecker()); if (licenseController != nullptr) { @@ -334,7 +334,7 @@ ProjucerApplication& ProjucerApplication::getApp() ApplicationCommandManager& ProjucerApplication::getCommandManager() { - ApplicationCommandManager* cm = ProjucerApplication::getApp().commandManager; + auto* cm = ProjucerApplication::getApp().commandManager.get(); jassert (cm != nullptr); return *cm; } @@ -378,11 +378,11 @@ void ProjucerApplication::createMenu (PopupMenu& menu, const String& menuName) void ProjucerApplication::createFileMenu (PopupMenu& menu) { - menu.addCommandItem (commandManager, CommandIDs::newProject); - menu.addCommandItem (commandManager, CommandIDs::newProjectFromClipboard); - menu.addCommandItem (commandManager, CommandIDs::newPIP); + menu.addCommandItem (commandManager.get(), CommandIDs::newProject); + menu.addCommandItem (commandManager.get(), CommandIDs::newProjectFromClipboard); + menu.addCommandItem (commandManager.get(), CommandIDs::newPIP); menu.addSeparator(); - menu.addCommandItem (commandManager, CommandIDs::open); + menu.addCommandItem (commandManager.get(), CommandIDs::open); { PopupMenu recentFiles; @@ -392,7 +392,7 @@ void ProjucerApplication::createFileMenu (PopupMenu& menu) if (recentFiles.getNumItems() > 0) { recentFiles.addSeparator(); - recentFiles.addCommandItem (commandManager, CommandIDs::clearRecentFiles); + recentFiles.addCommandItem (commandManager.get(), CommandIDs::clearRecentFiles); } menu.addSubMenu ("Open Recent", recentFiles); @@ -406,58 +406,58 @@ void ProjucerApplication::createFileMenu (PopupMenu& menu) } menu.addSeparator(); - menu.addCommandItem (commandManager, CommandIDs::closeDocument); - menu.addCommandItem (commandManager, CommandIDs::saveDocument); - menu.addCommandItem (commandManager, CommandIDs::saveDocumentAs); - menu.addCommandItem (commandManager, CommandIDs::saveAll); + menu.addCommandItem (commandManager.get(), CommandIDs::closeDocument); + menu.addCommandItem (commandManager.get(), CommandIDs::saveDocument); + menu.addCommandItem (commandManager.get(), CommandIDs::saveDocumentAs); + menu.addCommandItem (commandManager.get(), CommandIDs::saveAll); menu.addSeparator(); - menu.addCommandItem (commandManager, CommandIDs::closeProject); - menu.addCommandItem (commandManager, CommandIDs::saveProject); + menu.addCommandItem (commandManager.get(), CommandIDs::closeProject); + menu.addCommandItem (commandManager.get(), CommandIDs::saveProject); menu.addSeparator(); - menu.addCommandItem (commandManager, CommandIDs::openInIDE); - menu.addCommandItem (commandManager, CommandIDs::saveAndOpenInIDE); + menu.addCommandItem (commandManager.get(), CommandIDs::openInIDE); + menu.addCommandItem (commandManager.get(), CommandIDs::saveAndOpenInIDE); menu.addSeparator(); #if ! JUCER_ENABLE_GPL_MODE - menu.addCommandItem (commandManager, CommandIDs::loginLogout); + menu.addCommandItem (commandManager.get(), CommandIDs::loginLogout); #endif #if ! JUCE_MAC - menu.addCommandItem (commandManager, CommandIDs::showAboutWindow); - menu.addCommandItem (commandManager, CommandIDs::showAppUsageWindow); - menu.addCommandItem (commandManager, CommandIDs::showGlobalPathsWindow); + menu.addCommandItem (commandManager.get(), CommandIDs::showAboutWindow); + menu.addCommandItem (commandManager.get(), CommandIDs::showAppUsageWindow); + menu.addCommandItem (commandManager.get(), CommandIDs::showGlobalPathsWindow); menu.addSeparator(); - menu.addCommandItem (commandManager, StandardApplicationCommandIDs::quit); + menu.addCommandItem (commandManager.get(), StandardApplicationCommandIDs::quit); #endif } void ProjucerApplication::createEditMenu (PopupMenu& menu) { - menu.addCommandItem (commandManager, StandardApplicationCommandIDs::undo); - menu.addCommandItem (commandManager, StandardApplicationCommandIDs::redo); + menu.addCommandItem (commandManager.get(), StandardApplicationCommandIDs::undo); + menu.addCommandItem (commandManager.get(), StandardApplicationCommandIDs::redo); menu.addSeparator(); - menu.addCommandItem (commandManager, StandardApplicationCommandIDs::cut); - menu.addCommandItem (commandManager, StandardApplicationCommandIDs::copy); - menu.addCommandItem (commandManager, StandardApplicationCommandIDs::paste); - menu.addCommandItem (commandManager, StandardApplicationCommandIDs::del); - menu.addCommandItem (commandManager, StandardApplicationCommandIDs::selectAll); - menu.addCommandItem (commandManager, StandardApplicationCommandIDs::deselectAll); + menu.addCommandItem (commandManager.get(), StandardApplicationCommandIDs::cut); + menu.addCommandItem (commandManager.get(), StandardApplicationCommandIDs::copy); + menu.addCommandItem (commandManager.get(), StandardApplicationCommandIDs::paste); + menu.addCommandItem (commandManager.get(), StandardApplicationCommandIDs::del); + menu.addCommandItem (commandManager.get(), StandardApplicationCommandIDs::selectAll); + menu.addCommandItem (commandManager.get(), StandardApplicationCommandIDs::deselectAll); menu.addSeparator(); - menu.addCommandItem (commandManager, CommandIDs::showFindPanel); - menu.addCommandItem (commandManager, CommandIDs::findSelection); - menu.addCommandItem (commandManager, CommandIDs::findNext); - menu.addCommandItem (commandManager, CommandIDs::findPrevious); + menu.addCommandItem (commandManager.get(), CommandIDs::showFindPanel); + menu.addCommandItem (commandManager.get(), CommandIDs::findSelection); + menu.addCommandItem (commandManager.get(), CommandIDs::findNext); + menu.addCommandItem (commandManager.get(), CommandIDs::findPrevious); } void ProjucerApplication::createViewMenu (PopupMenu& menu) { - menu.addCommandItem (commandManager, CommandIDs::showProjectSettings); - menu.addCommandItem (commandManager, CommandIDs::showProjectTab); - menu.addCommandItem (commandManager, CommandIDs::showBuildTab); - menu.addCommandItem (commandManager, CommandIDs::showFileExplorerPanel); - menu.addCommandItem (commandManager, CommandIDs::showModulesPanel); - menu.addCommandItem (commandManager, CommandIDs::showExportersPanel); - menu.addCommandItem (commandManager, CommandIDs::showExporterSettings); + menu.addCommandItem (commandManager.get(), CommandIDs::showProjectSettings); + menu.addCommandItem (commandManager.get(), CommandIDs::showProjectTab); + menu.addCommandItem (commandManager.get(), CommandIDs::showBuildTab); + menu.addCommandItem (commandManager.get(), CommandIDs::showFileExplorerPanel); + menu.addCommandItem (commandManager.get(), CommandIDs::showModulesPanel); + menu.addCommandItem (commandManager.get(), CommandIDs::showExportersPanel); + menu.addCommandItem (commandManager.get(), CommandIDs::showExporterSettings); menu.addSeparator(); createColourSchemeItems (menu); @@ -465,19 +465,19 @@ void ProjucerApplication::createViewMenu (PopupMenu& menu) void ProjucerApplication::createBuildMenu (PopupMenu& menu) { - menu.addCommandItem (commandManager, CommandIDs::toggleBuildEnabled); - menu.addCommandItem (commandManager, CommandIDs::buildNow); - menu.addCommandItem (commandManager, CommandIDs::toggleContinuousBuild); + menu.addCommandItem (commandManager.get(), CommandIDs::toggleBuildEnabled); + menu.addCommandItem (commandManager.get(), CommandIDs::buildNow); + menu.addCommandItem (commandManager.get(), CommandIDs::toggleContinuousBuild); menu.addSeparator(); - menu.addCommandItem (commandManager, CommandIDs::launchApp); - menu.addCommandItem (commandManager, CommandIDs::killApp); - menu.addCommandItem (commandManager, CommandIDs::cleanAll); + menu.addCommandItem (commandManager.get(), CommandIDs::launchApp); + menu.addCommandItem (commandManager.get(), CommandIDs::killApp); + menu.addCommandItem (commandManager.get(), CommandIDs::cleanAll); menu.addSeparator(); - menu.addCommandItem (commandManager, CommandIDs::reinstantiateComp); - menu.addCommandItem (commandManager, CommandIDs::showWarnings); + menu.addCommandItem (commandManager.get(), CommandIDs::reinstantiateComp); + menu.addCommandItem (commandManager.get(), CommandIDs::showWarnings); menu.addSeparator(); - menu.addCommandItem (commandManager, CommandIDs::nextError); - menu.addCommandItem (commandManager, CommandIDs::prevError); + menu.addCommandItem (commandManager.get(), CommandIDs::nextError); + menu.addCommandItem (commandManager.get(), CommandIDs::prevError); } void ProjucerApplication::createColourSchemeItems (PopupMenu& menu) @@ -518,9 +518,9 @@ void ProjucerApplication::createColourSchemeItems (PopupMenu& menu) void ProjucerApplication::createWindowMenu (PopupMenu& menu) { - menu.addCommandItem (commandManager, CommandIDs::goToPreviousWindow); - menu.addCommandItem (commandManager, CommandIDs::goToNextWindow); - menu.addCommandItem (commandManager, CommandIDs::closeWindow); + menu.addCommandItem (commandManager.get(), CommandIDs::goToPreviousWindow); + menu.addCommandItem (commandManager.get(), CommandIDs::goToNextWindow); + menu.addCommandItem (commandManager.get(), CommandIDs::closeWindow); menu.addSeparator(); int counter = 0; @@ -534,14 +534,14 @@ void ProjucerApplication::createWindowMenu (PopupMenu& menu) } menu.addSeparator(); - menu.addCommandItem (commandManager, CommandIDs::closeAllWindows); + menu.addCommandItem (commandManager.get(), CommandIDs::closeAllWindows); } void ProjucerApplication::createDocumentMenu (PopupMenu& menu) { - menu.addCommandItem (commandManager, CommandIDs::goToPreviousDoc); - menu.addCommandItem (commandManager, CommandIDs::goToNextDoc); - menu.addCommandItem (commandManager, CommandIDs::goToCounterpart); + menu.addCommandItem (commandManager.get(), CommandIDs::goToPreviousDoc); + menu.addCommandItem (commandManager.get(), CommandIDs::goToNextDoc); + menu.addCommandItem (commandManager.get(), CommandIDs::goToCounterpart); menu.addSeparator(); auto numDocs = jmin (50, openDocumentManager.getNumOpenDocuments()); @@ -553,31 +553,31 @@ void ProjucerApplication::createDocumentMenu (PopupMenu& menu) } menu.addSeparator(); - menu.addCommandItem (commandManager, CommandIDs::closeAllDocuments); + menu.addCommandItem (commandManager.get(), CommandIDs::closeAllDocuments); } void ProjucerApplication::createToolsMenu (PopupMenu& menu) { - menu.addCommandItem (commandManager, CommandIDs::showUTF8Tool); - menu.addCommandItem (commandManager, CommandIDs::showSVGPathTool); - menu.addCommandItem (commandManager, CommandIDs::showTranslationTool); + menu.addCommandItem (commandManager.get(), CommandIDs::showUTF8Tool); + menu.addCommandItem (commandManager.get(), CommandIDs::showSVGPathTool); + menu.addCommandItem (commandManager.get(), CommandIDs::showTranslationTool); } void ProjucerApplication::createHelpMenu (PopupMenu& menu) { - menu.addCommandItem (commandManager, CommandIDs::showForum); + menu.addCommandItem (commandManager.get(), CommandIDs::showForum); menu.addSeparator(); - menu.addCommandItem (commandManager, CommandIDs::showAPIModules); - menu.addCommandItem (commandManager, CommandIDs::showAPIClasses); - menu.addCommandItem (commandManager, CommandIDs::showTutorials); + menu.addCommandItem (commandManager.get(), CommandIDs::showAPIModules); + menu.addCommandItem (commandManager.get(), CommandIDs::showAPIClasses); + menu.addCommandItem (commandManager.get(), CommandIDs::showTutorials); } void ProjucerApplication::createExtraAppleMenuItems (PopupMenu& menu) { - menu.addCommandItem (commandManager, CommandIDs::showAboutWindow); - menu.addCommandItem (commandManager, CommandIDs::showAppUsageWindow); + menu.addCommandItem (commandManager.get(), CommandIDs::showAboutWindow); + menu.addCommandItem (commandManager.get(), CommandIDs::showAppUsageWindow); menu.addSeparator(); - menu.addCommandItem (commandManager, CommandIDs::showGlobalPathsWindow); + menu.addCommandItem (commandManager.get(), CommandIDs::showGlobalPathsWindow); } void ProjucerApplication::createExamplesPopupMenu (PopupMenu& menu) noexcept @@ -602,7 +602,7 @@ void ProjucerApplication::createExamplesPopupMenu (PopupMenu& menu) noexcept else { menu.addSeparator(); - menu.addCommandItem (commandManager, CommandIDs::launchDemoRunner); + menu.addCommandItem (commandManager.get(), CommandIDs::launchDemoRunner); } } @@ -809,16 +809,16 @@ void ProjucerApplication::launchDemoRunner() else if (findDemoRunnerProject() != File()) { auto& lf = Desktop::getInstance().getDefaultLookAndFeel(); - demoRunnerAlert = lf.createAlertWindow ("Open Project", - "Couldn't find a compiled version of the Demo Runner." - #if JUCE_LINUX - " Do you want to build it now?", "Build project", "Cancel", - #else - " Do you want to open the project?", "Open project", "Cancel", - #endif - {}, - AlertWindow::QuestionIcon, 2, - mainWindowList.getFrontmostWindow (false)); + demoRunnerAlert.reset (lf.createAlertWindow ("Open Project", + "Couldn't find a compiled version of the Demo Runner." + #if JUCE_LINUX + " Do you want to build it now?", "Build project", "Cancel", + #else + " Do you want to open the project?", "Open project", "Cancel", + #endif + {}, + AlertWindow::QuestionIcon, 2, + mainWindowList.getFrontmostWindow (false))); demoRunnerAlert->enterModalState (true, ModalCallbackFunction::create ([this] (int retVal) { @@ -1327,7 +1327,7 @@ void ProjucerApplication::updateAllBuildTabs() void ProjucerApplication::initCommandManager() { - commandManager = new ApplicationCommandManager(); + commandManager.reset (new ApplicationCommandManager()); commandManager->registerAllCommandsForTarget (this); { @@ -1386,11 +1386,11 @@ void ProjucerApplication::setupAnalytics() void ProjucerApplication::showSetJUCEPathAlert() { auto& lf = Desktop::getInstance().getDefaultLookAndFeel(); - pathAlert = lf.createAlertWindow ("Set JUCE Path", "Your global JUCE path is invalid. This path is used to access the JUCE examples and demo project - " - "would you like to set it now?", - "Set path", "Cancel", "Don't ask again", - AlertWindow::WarningIcon, 3, - mainWindowList.getFrontmostWindow (false)); + pathAlert.reset (lf.createAlertWindow ("Set JUCE Path", "Your global JUCE path is invalid. This path is used to access the JUCE examples and demo project - " + "would you like to set it now?", + "Set path", "Cancel", "Don't ask again", + AlertWindow::WarningIcon, 3, + mainWindowList.getFrontmostWindow (false))); pathAlert->enterModalState (true, ModalCallbackFunction::create ([this] (int retVal) { diff --git a/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp b/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp index 5945125190..6ac28bebd0 100644 --- a/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp +++ b/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp @@ -214,7 +214,7 @@ public: total += written; - setStatusMessage (String (TRANS ("Downloading... (123)")) + setStatusMessage (String (TRANS("Downloading... (123)")) .replace ("123", File::descriptionOfSizeInBytes (total))); } @@ -243,36 +243,42 @@ public: const char* overwriteFolderPath) : hasOverwriteButton (overwriteFolderPath != nullptr) { - addAndMakeVisible (titleLabel = new Label ("Title Label", - TRANS ("Download \"123\" version 456?").replace ("123", productName) - .replace ("456", version.toString()))); + titleLabel.reset (new Label ("Title Label", + TRANS("Download \"123\" version 456?") + .replace ("123", productName) + .replace ("456", version.toString()))); + addAndMakeVisible (titleLabel.get()); titleLabel->setFont (Font (15.00f, Font::bold)); titleLabel->setJustificationType (Justification::centredLeft); titleLabel->setEditable (false, false, false); - addAndMakeVisible (contentLabel = new Label ("Content Label", - TRANS ("A new version of \"123\" is available - would you like to download it?") - .replace ("123", productName))); + contentLabel.reset(new Label ("Content Label", + TRANS("A new version of \"123\" is available - would you like to download it?") + .replace ("123", productName))); + addAndMakeVisible (contentLabel.get()); contentLabel->setFont (Font (15.00f, Font::plain)); contentLabel->setJustificationType (Justification::topLeft); contentLabel->setEditable (false, false, false); - addAndMakeVisible (okButton = new TextButton ("OK Button")); + okButton.reset (new TextButton ("OK Button")); + addAndMakeVisible (okButton.get()); okButton->setButtonText (TRANS(hasOverwriteButton ? "Choose Another Folder..." : "OK")); okButton->onClick = [this] { exitParentDialog (2); }; - addAndMakeVisible (cancelButton = new TextButton ("Cancel Button")); + cancelButton.reset (new TextButton ("Cancel Button")); + addAndMakeVisible (cancelButton.get()); cancelButton->setButtonText (TRANS("Cancel")); cancelButton->onClick = [this] { exitParentDialog (-1); }; - addAndMakeVisible (changeLogLabel = new Label ("Change Log Label", - TRANS("Release Notes:"))); + changeLogLabel.reset (new Label ("Change Log Label", TRANS("Release Notes:"))); + addAndMakeVisible (changeLogLabel.get()); changeLogLabel->setFont (Font (15.00f, Font::plain)); changeLogLabel->setJustificationType (Justification::topLeft); changeLogLabel->setEditable (false, false, false); - addAndMakeVisible (changeLog = new TextEditor ("Change Log")); + changeLog.reset (new TextEditor ("Change Log")); + addAndMakeVisible (changeLog.get()); changeLog->setMultiLine (true); changeLog->setReturnKeyStartsNewLine (true); changeLog->setReadOnly (true); @@ -283,24 +289,27 @@ public: if (hasOverwriteButton) { - addAndMakeVisible (overwriteLabel = new Label ("Overwrite Label", - TRANS("Updating will overwrite everything in the following folder:"))); + overwriteLabel.reset (new Label ("Overwrite Label", + TRANS("Updating will overwrite everything in the following folder:"))); + addAndMakeVisible (overwriteLabel.get()); overwriteLabel->setFont (Font (15.00f, Font::plain)); overwriteLabel->setJustificationType (Justification::topLeft); overwriteLabel->setEditable (false, false, false); - addAndMakeVisible (overwritePath = new Label ("Overwrite Path", overwriteFolderPath)); + overwritePath.reset (new Label ("Overwrite Path", overwriteFolderPath)); + addAndMakeVisible (overwritePath.get()); overwritePath->setFont (Font (15.00f, Font::bold)); overwritePath->setJustificationType (Justification::topLeft); overwritePath->setEditable (false, false, false); - addAndMakeVisible (overwriteButton = new TextButton ("Overwrite Button")); + overwriteButton.reset (new TextButton ("Overwrite Button")); + addAndMakeVisible (overwriteButton.get()); overwriteButton->setButtonText (TRANS("Overwrite")); overwriteButton->onClick = [this] { exitParentDialog (1); }; } - juceIcon = Drawable::createFromImageData (BinaryData::juce_icon_png, - BinaryData::juce_icon_pngSize); + juceIcon.reset (Drawable::createFromImageData (BinaryData::juce_icon_png, + BinaryData::juce_icon_pngSize)); setSize (518, overwritePath != nullptr ? 345 : 269); @@ -371,7 +380,7 @@ public: releaseNotes, overwritePath), true); DialogWindow::LaunchOptions lo; - lo.dialogTitle = TRANS ("Download \"123\" version 456?").replace ("456", version.toString()) + lo.dialogTitle = TRANS("Download \"123\" version 456?").replace ("456", version.toString()) .replace ("123", productName); lo.dialogBackgroundColour = userDialog->findColour (backgroundColourId); lo.content = userDialog; @@ -763,8 +772,8 @@ void LatestVersionChecker::askUserForLocationToDownload (URL& newVersionToDownlo if (targetFolder.getChildFile (".git").isDirectory()) { AlertWindow::showMessageBox (AlertWindow::WarningIcon, - TRANS ("Downloading new JUCE version"), - TRANS ("This folder is a GIT repository!\n\n" + TRANS("Downloading new JUCE version"), + TRANS("This folder is a GIT repository!\n\n" "You should use a \"git pull\" to update it to the latest version. " "Or to use the Projucer to get an update, you should select an empty " "folder into which you'd like to download the new code.")); diff --git a/extras/Projucer/Source/Application/jucer_MainWindow.cpp b/extras/Projucer/Source/Application/jucer_MainWindow.cpp index 394d3f5cfb..a6255d26c5 100644 --- a/extras/Projucer/Source/Application/jucer_MainWindow.cpp +++ b/extras/Projucer/Source/Application/jucer_MainWindow.cpp @@ -142,7 +142,7 @@ void MainWindow::closeButtonPressed() bool MainWindow::closeProject (Project* project, bool askUserToSave) { - jassert (project == currentProject && project != nullptr); + jassert (project == currentProject.get() && project != nullptr); if (project == nullptr) return true; @@ -177,7 +177,7 @@ void MainWindow::moveProject (File newProjectFileToOpen) { auto openInIDE = currentProject->shouldOpenInIDEAfterSaving(); - closeProject (currentProject, false); + closeProject (currentProject.get(), false); openFile (newProjectFileToOpen); if (currentProject != nullptr) diff --git a/extras/Projucer/Source/CodeEditor/jucer_LiveBuildCodeEditor.h b/extras/Projucer/Source/CodeEditor/jucer_LiveBuildCodeEditor.h index 8f37ed8a9c..efbdfd3f7f 100644 --- a/extras/Projucer/Source/CodeEditor/jucer_LiveBuildCodeEditor.h +++ b/extras/Projucer/Source/CodeEditor/jucer_LiveBuildCodeEditor.h @@ -362,7 +362,7 @@ private: String text = getTextInRange (selection).toLowerCase(); if (isIntegerLiteral (text) || isFloatLiteral (text)) - overlay = new LiteralHighlightOverlay (*this, selection, mightBeColourValue (text)); + overlay.reset (new LiteralHighlightOverlay (*this, selection, mightBeColourValue (text))); } } diff --git a/extras/Projucer/Source/ComponentEditor/Components/jucer_TabbedComponentHandler.h b/extras/Projucer/Source/ComponentEditor/Components/jucer_TabbedComponentHandler.h index 9cc48e2422..c8fdc2523d 100644 --- a/extras/Projucer/Source/ComponentEditor/Components/jucer_TabbedComponentHandler.h +++ b/extras/Projucer/Source/ComponentEditor/Components/jucer_TabbedComponentHandler.h @@ -384,7 +384,7 @@ private: jucerComp->setFilename (jucerComponentFile); jucerComp->setToInitialSize(); - addAndMakeVisible (jucerComp); + addAndMakeVisible (jucerComp.get()); } } else @@ -698,7 +698,7 @@ private: : ComponentUndoableAction (comp, l), indexToRemove (indexToRemove_) { - previousState = getTabState (comp, indexToRemove); + previousState.reset (getTabState (comp, indexToRemove)); } bool perform() diff --git a/extras/Projucer/Source/ComponentEditor/PaintElements/jucer_PaintElement.cpp b/extras/Projucer/Source/ComponentEditor/PaintElements/jucer_PaintElement.cpp index a4b8c99f4d..9a6e61621f 100644 --- a/extras/Projucer/Source/ComponentEditor/PaintElements/jucer_PaintElement.cpp +++ b/extras/Projucer/Source/ComponentEditor/PaintElements/jucer_PaintElement.cpp @@ -53,7 +53,8 @@ PaintElement::PaintElement (PaintRoutine* owner_, setMinimumOnscreenAmounts (0, 0, 0, 0); setSizeLimits (borderThickness * 2 + 1, borderThickness * 2 + 1, 8192, 8192); - addChildComponent (border = new ResizableBorderComponent (this, this)); + border.reset (new ResizableBorderComponent (this, this)); + addChildComponent (border.get()); border->setBorderThickness (BorderSize (borderThickness)); diff --git a/extras/Projucer/Source/ComponentEditor/PaintElements/jucer_PaintElementGroup.cpp b/extras/Projucer/Source/ComponentEditor/PaintElements/jucer_PaintElementGroup.cpp index c835c96f11..4d0fec4b92 100644 --- a/extras/Projucer/Source/ComponentEditor/PaintElements/jucer_PaintElementGroup.cpp +++ b/extras/Projucer/Source/ComponentEditor/PaintElements/jucer_PaintElementGroup.cpp @@ -65,7 +65,7 @@ void PaintElementGroup::groupSelected (PaintRoutine* routine) { ScopedPointer xml (routine->getElement(i)->createXml()); - if (auto* newOne = ObjectTypes::createElementForXml (xml, routine)) + if (auto* newOne = ObjectTypes::createElementForXml (xml.get(), routine)) newGroup->subElements.add (newOne); if (i > frontIndex) diff --git a/extras/Projucer/Source/ComponentEditor/Properties/jucer_ColourPropertyComponent.h b/extras/Projucer/Source/ComponentEditor/Properties/jucer_ColourPropertyComponent.h index b5acfba651..e3bff7deac 100644 --- a/extras/Projucer/Source/ComponentEditor/Properties/jucer_ColourPropertyComponent.h +++ b/extras/Projucer/Source/ComponentEditor/Properties/jucer_ColourPropertyComponent.h @@ -36,7 +36,7 @@ public: : PropertyComponent (name) { colourPropEditor.reset (new ColourPropEditorComponent (this, canReset)); - addAndMakeVisible (colourPropEditor); + addAndMakeVisible (colourPropEditor.get()); } virtual void setColour (Colour newColour) = 0; diff --git a/extras/Projucer/Source/ComponentEditor/Properties/jucer_PositionPropertyBase.h b/extras/Projucer/Source/ComponentEditor/Properties/jucer_PositionPropertyBase.h index 71498b4126..180b549fbc 100644 --- a/extras/Projucer/Source/ComponentEditor/Properties/jucer_PositionPropertyBase.h +++ b/extras/Projucer/Source/ComponentEditor/Properties/jucer_PositionPropertyBase.h @@ -68,7 +68,8 @@ public: refresh(); // (to clear the text editor if it's got focus) }; - addAndMakeVisible (textEditor = new PositionPropLabel (*this)); + textEditor.reset (new PositionPropLabel (*this)); + addAndMakeVisible (textEditor.get()); } String getText() const diff --git a/extras/Projucer/Source/ComponentEditor/UI/jucer_ComponentOverlayComponent.cpp b/extras/Projucer/Source/ComponentEditor/UI/jucer_ComponentOverlayComponent.cpp index 779a13d7d5..64250a8ce0 100644 --- a/extras/Projucer/Source/ComponentEditor/UI/jucer_ComponentOverlayComponent.cpp +++ b/extras/Projucer/Source/ComponentEditor/UI/jucer_ComponentOverlayComponent.cpp @@ -41,7 +41,8 @@ ComponentOverlayComponent::ComponentOverlayComponent (Component* const target_, setMinimumOnscreenAmounts (0, 0, 0, 0); setSizeLimits (borderThickness * 2 + 2, borderThickness * 2 + 2, 8192, 8192); - addChildComponent (border = new ResizableBorderComponent (this, this)); + border.reset (new ResizableBorderComponent (this, this)); + addChildComponent (border.get()); border->setBorderThickness (BorderSize (borderThickness)); diff --git a/extras/Projucer/Source/ComponentEditor/UI/jucer_JucerDocumentEditor.cpp b/extras/Projucer/Source/ComponentEditor/UI/jucer_JucerDocumentEditor.cpp index a05aa28197..ec066a39ba 100644 --- a/extras/Projucer/Source/ComponentEditor/UI/jucer_JucerDocumentEditor.cpp +++ b/extras/Projucer/Source/ComponentEditor/UI/jucer_JucerDocumentEditor.cpp @@ -47,7 +47,8 @@ public: : PropertyComponent ("extra callbacks", 250), document (doc) { - addAndMakeVisible (listBox = new ListBox (String(), this)); + listBox.reset (new ListBox (String(), this)); + addAndMakeVisible (listBox.get()); listBox->setRowHeight (22); document.addChangeListener (this); @@ -611,7 +612,7 @@ void JucerDocumentEditor::saveLastSelectedTab() const ScopedPointer root (projectProps.getXmlValue ("GUIComponentsLastTab")); if (root == nullptr) - root = new XmlElement ("FILES"); + root.reset (new XmlElement ("FILES")); auto fileName = document->getCppFile().getFileName(); @@ -1155,7 +1156,9 @@ bool JucerDocumentEditor::perform (const InvocationInfo& info) case StandardApplicationCommandIDs::paste: { - if (ScopedPointer doc = XmlDocument::parse (SystemClipboard::getTextFromClipboard())) + ScopedPointer doc (XmlDocument::parse (SystemClipboard::getTextFromClipboard())); + + if (doc != nullptr) { if (doc->hasTagName (ComponentLayout::clipboardXmlTag)) { diff --git a/extras/Projucer/Source/ComponentEditor/UI/jucer_ResourceEditorPanel.cpp b/extras/Projucer/Source/ComponentEditor/UI/jucer_ResourceEditorPanel.cpp index 4ed707a1b2..11bf9cb7c7 100644 --- a/extras/Projucer/Source/ComponentEditor/UI/jucer_ResourceEditorPanel.cpp +++ b/extras/Projucer/Source/ComponentEditor/UI/jucer_ResourceEditorPanel.cpp @@ -79,7 +79,8 @@ ResourceEditorPanel::ResourceEditorPanel (JucerDocument& doc) delButton.setEnabled (false); delButton.onClick = [this] { document.getResources().remove (listBox->getSelectedRow (0)); }; - addAndMakeVisible (listBox = new TableListBox (String(), this)); + listBox.reset (new TableListBox (String(), this)); + addAndMakeVisible (listBox.get()); listBox->getHeader().addColumn ("name", 1, 150, 80, 400); listBox->getHeader().addColumn ("original file", 2, 350, 80, 800); listBox->getHeader().addColumn ("size", 3, 100, 40, 150); diff --git a/extras/Projucer/Source/ComponentEditor/UI/jucer_TestComponent.cpp b/extras/Projucer/Source/ComponentEditor/UI/jucer_TestComponent.cpp index da9460879c..e47b848966 100644 --- a/extras/Projucer/Source/ComponentEditor/UI/jucer_TestComponent.cpp +++ b/extras/Projucer/Source/ComponentEditor/UI/jucer_TestComponent.cpp @@ -99,7 +99,7 @@ void TestComponent::setFilename (const String& newName) filename = newName; lastModificationTime = findFile().getLastModificationTime(); - loadedDocument = JucerDocument::createForCppFile (nullptr, findFile()); + loadedDocument.reset (JucerDocument::createForCppFile (nullptr, findFile())); updateContents(); repaint(); diff --git a/extras/Projucer/Source/ComponentEditor/jucer_ComponentLayout.cpp b/extras/Projucer/Source/ComponentEditor/jucer_ComponentLayout.cpp index 136599af3b..db8120c153 100644 --- a/extras/Projucer/Source/ComponentEditor/jucer_ComponentLayout.cpp +++ b/extras/Projucer/Source/ComponentEditor/jucer_ComponentLayout.cpp @@ -129,7 +129,7 @@ public: oldIndex (-1) { if (ComponentTypeHandler* const h = ComponentTypeHandler::getHandlerFor (*comp)) - xml = h->createXmlFor (comp, &layout); + xml.reset (h->createXmlFor (comp, &layout)); else jassertfalse; @@ -415,18 +415,17 @@ Component* ComponentLayout::addNewComponent (ComponentTypeHandler* const type, i { c->setSize (type->getDefaultWidth(), type->getDefaultHeight()); c->setCentrePosition (x, y); - updateStoredComponentPosition (c, false); + updateStoredComponentPosition (c.get(), false); c->getProperties().set ("id", nextCompUID++); - ScopedPointer xml (type->createXmlFor (c, this)); - c.reset(); - c = addComponentFromXml (*xml, true); + ScopedPointer xml (type->createXmlFor (c.get(), this)); + c.reset (addComponentFromXml (*xml, true)); - String memberName (CodeHelpers::makeValidIdentifier (type->getClassName (c), true, true, false)); - setComponentMemberVariableName (c, memberName); + String memberName (CodeHelpers::makeValidIdentifier (type->getClassName (c.get()), true, true, false)); + setComponentMemberVariableName (c.get(), memberName); - selected.selectOnly (c); + selected.selectOnly (c.get()); } return c.release(); @@ -447,16 +446,16 @@ Component* ComponentLayout::addComponentFromXml (const XmlElement& xml, const bo { ScopedPointer newComp (type->createNewComponent (getDocument())); - if (type->restoreFromXml (xml, newComp, this)) + if (type->restoreFromXml (xml, newComp.get(), this)) { // ensure that the new comp's name is unique - setComponentMemberVariableName (newComp, getComponentMemberVariableName (newComp)); + setComponentMemberVariableName (newComp.get(), getComponentMemberVariableName (newComp.get())); // check for duped IDs.. - while (findComponentWithId (ComponentTypeHandler::getComponentId (newComp)) != nullptr) - ComponentTypeHandler::setComponentId (newComp, Random::getSystemRandom().nextInt64()); + while (findComponentWithId (ComponentTypeHandler::getComponentId (newComp.get())) != nullptr) + ComponentTypeHandler::setComponentId (newComp.get(), Random::getSystemRandom().nextInt64()); - components.add (newComp); + components.add (newComp.get()); changed(); return newComp.release(); } diff --git a/extras/Projucer/Source/ComponentEditor/jucer_JucerDocument.cpp b/extras/Projucer/Source/ComponentEditor/jucer_JucerDocument.cpp index 7910a38b7a..fe05b237f8 100644 --- a/extras/Projucer/Source/ComponentEditor/jucer_JucerDocument.cpp +++ b/extras/Projucer/Source/ComponentEditor/jucer_JucerDocument.cpp @@ -76,7 +76,7 @@ struct UserDocChangeTimer : public Timer void JucerDocument::userEditedCpp() { if (userDocChangeTimer == nullptr) - userDocChangeTimer = new UserDocChangeTimer (*this); + userDocChangeTimer.reset (new UserDocChangeTimer (*this)); userDocChangeTimer->startTimer (500); } @@ -577,10 +577,10 @@ bool JucerDocument::reloadFromDocument() if (newXML == nullptr || ! newXML->hasTagName (jucerCompXmlTag)) return false; - if (currentXML != nullptr && currentXML->isEquivalentTo (newXML, true)) + if (currentXML != nullptr && currentXML->isEquivalentTo (newXML.get(), true)) return true; - currentXML = newXML; + currentXML.reset (newXML.release()); stopTimer(); resources.loadFromCpp (getCppFile(), cppContent); @@ -646,8 +646,12 @@ XmlElement* JucerDocument::pullMetaDataFromCppFile (const String& cpp) bool JucerDocument::isValidJucerCppFile (const File& f) { if (f.hasFileExtension (".cpp")) - if (ScopedPointer xml = pullMetaDataFromCppFile (f.loadFileAsString())) + { + ScopedPointer xml (pullMetaDataFromCppFile (f.loadFileAsString())); + + if (xml != nullptr) return xml->hasTagName (jucerCompXmlTag); + } return false; } @@ -666,10 +670,10 @@ static JucerDocument* createDocument (SourceCodeDocument* cpp) ScopedPointer newDoc; if (docType.equalsIgnoreCase ("Button")) - newDoc = new ButtonDocument (cpp); + newDoc.reset (new ButtonDocument (cpp)); if (docType.equalsIgnoreCase ("Component") || docType.isEmpty()) - newDoc = new ComponentDocument (cpp); + newDoc.reset (new ComponentDocument (cpp)); if (newDoc != nullptr && newDoc->reloadFromDocument()) return newDoc.release(); @@ -720,7 +724,9 @@ public: Component* createEditor() override { - if (ScopedPointer jucerDoc = JucerDocument::createForCppFile (getProject(), getFile())) + ScopedPointer jucerDoc (JucerDocument::createForCppFile (getProject(), getFile())); + + if (jucerDoc != nullptr) return new JucerDocumentEditor (jucerDoc.release()); return SourceCodeDocument::createEditor(); @@ -766,7 +772,9 @@ struct NewGUIComponentWizard : public NewFileWizard::Type { if (auto* header = dynamic_cast (odm.openFile (nullptr, headerFile))) { - if (ScopedPointer jucerDoc = new ComponentDocument (cpp)) + ScopedPointer jucerDoc (new ComponentDocument (cpp)); + + if (jucerDoc != nullptr) { jucerDoc->setClassName (newFile.getFileNameWithoutExtension()); diff --git a/extras/Projucer/Source/ComponentEditor/jucer_ObjectTypes.cpp b/extras/Projucer/Source/ComponentEditor/jucer_ObjectTypes.cpp index 15ce0455fa..7a65601759 100644 --- a/extras/Projucer/Source/ComponentEditor/jucer_ObjectTypes.cpp +++ b/extras/Projucer/Source/ComponentEditor/jucer_ObjectTypes.cpp @@ -108,13 +108,13 @@ PaintElement* createElementForXml (const XmlElement* const e, PaintRoutine* cons ScopedPointer pe; - if (e->hasTagName (PaintElementRectangle::getTagName())) pe = new PaintElementRectangle (owner); - else if (e->hasTagName (PaintElementRoundedRectangle::getTagName())) pe = new PaintElementRoundedRectangle (owner); - else if (e->hasTagName (PaintElementEllipse::getTagName())) pe = new PaintElementEllipse (owner); - else if (e->hasTagName (PaintElementImage::getTagName())) pe = new PaintElementImage (owner); - else if (e->hasTagName (PaintElementPath::getTagName())) pe = new PaintElementPath (owner); - else if (e->hasTagName (PaintElementText::getTagName())) pe = new PaintElementText (owner); - else if (e->hasTagName (PaintElementGroup::getTagName())) pe = new PaintElementGroup (owner); + if (e->hasTagName (PaintElementRectangle::getTagName())) pe.reset (new PaintElementRectangle (owner)); + else if (e->hasTagName (PaintElementRoundedRectangle::getTagName())) pe.reset (new PaintElementRoundedRectangle (owner)); + else if (e->hasTagName (PaintElementEllipse::getTagName())) pe.reset (new PaintElementEllipse (owner)); + else if (e->hasTagName (PaintElementImage::getTagName())) pe.reset (new PaintElementImage (owner)); + else if (e->hasTagName (PaintElementPath::getTagName())) pe.reset (new PaintElementPath (owner)); + else if (e->hasTagName (PaintElementText::getTagName())) pe.reset (new PaintElementText (owner)); + else if (e->hasTagName (PaintElementGroup::getTagName())) pe.reset (new PaintElementGroup (owner)); if (pe != nullptr && pe->loadFromXml (*e)) return pe.release(); diff --git a/extras/Projucer/Source/ComponentEditor/jucer_PaintRoutine.cpp b/extras/Projucer/Source/ComponentEditor/jucer_PaintRoutine.cpp index 4aeced4e2b..1ff6a87730 100644 --- a/extras/Projucer/Source/ComponentEditor/jucer_PaintRoutine.cpp +++ b/extras/Projucer/Source/ComponentEditor/jucer_PaintRoutine.cpp @@ -169,7 +169,7 @@ public: : PaintElementUndoableAction (element), oldIndex (-1) { - xml = element->createXml(); + xml.reset (element->createXml()); oldIndex = routine.indexOfElement (element); } diff --git a/extras/Projucer/Source/Licenses/jucer_LicenseController.cpp b/extras/Projucer/Source/Licenses/jucer_LicenseController.cpp index 4ab9d2d891..778363d7d9 100644 --- a/extras/Projucer/Source/Licenses/jucer_LicenseController.cpp +++ b/extras/Projucer/Source/Licenses/jucer_LicenseController.cpp @@ -147,7 +147,7 @@ void LicenseController::startWebviewIfNeeded() #if ! JUCER_ENABLE_GPL_MODE if (thread == nullptr) - thread = new LicenseThread (*this, false); + thread.reset (new LicenseThread (*this, false)); #endif } @@ -163,7 +163,7 @@ void LicenseController::logout() WebBrowserComponent::clearCookies(); #endif - thread = new LicenseThread (*this, false); + thread.reset (new LicenseThread (*this, false)); #endif } @@ -173,7 +173,7 @@ void LicenseController::chooseNewLicense() #if ! JUCER_ENABLE_GPL_MODE thread.reset(); - thread = new LicenseThread (*this, true); + thread.reset (new LicenseThread (*this, true)); #endif } @@ -293,14 +293,14 @@ LicenseState LicenseController::licenseStateFromOldSettings (XmlElement* license LicenseState LicenseController::licenseStateFromSettings (PropertiesFile& props) { - ScopedPointer licenseXml = props.getXmlValue ("license"); + ScopedPointer licenseXml (props.getXmlValue ("license")); if (licenseXml != nullptr) { // this is here for backwards compatibility with old-style settings files using XML text elements if (licenseXml->getChildElementAllSubText ("type", {}) != String()) { - auto stateFromOldSettings = licenseStateFromOldSettings (licenseXml); + auto stateFromOldSettings = licenseStateFromOldSettings (licenseXml.get()); licenseStateToSettings (stateFromOldSettings, props); diff --git a/extras/Projucer/Source/Licenses/jucer_LicenseThread.h b/extras/Projucer/Source/Licenses/jucer_LicenseThread.h index 751353c859..5ad95790f4 100644 --- a/extras/Projucer/Source/Licenses/jucer_LicenseThread.h +++ b/extras/Projucer/Source/Licenses/jucer_LicenseThread.h @@ -165,9 +165,9 @@ struct LicenseThread : NetWorkerThread jassert (stateToUpdate.authToken.isNotEmpty()); auto accessTokenHeader = "x-access-token: " + stateToUpdate.authToken; + ScopedPointer shared (getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user"), false)); - if (ScopedPointer shared - = getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user"), false)) + if (shared != nullptr) { const int statusCode = shared->withExtraHeaders (accessTokenHeader).getStatusCode(); @@ -215,8 +215,8 @@ struct LicenseThread : NetWorkerThread if (! selectNewLicense) { - ScopedPointer shared = getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user/licences?search_internal_id=com.roli.projucer&version=5"), - false); + ScopedPointer shared (getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user/licences?search_internal_id=com.roli.projucer&version=5"), + false)); if (shared == nullptr) break; @@ -274,8 +274,8 @@ struct LicenseThread : NetWorkerThread String postData (JSON::toString (var (redeamObject.get()))); - ScopedPointer shared = getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user/products").withPOSTData (postData), - true); + ScopedPointer shared (getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user/products").withPOSTData (postData), + true)); if (shared == nullptr) break; @@ -306,8 +306,9 @@ struct LicenseThread : NetWorkerThread jsonLicenseRequest->setProperty (licenseTypeIdentifier, "software"); String postData (JSON::toString (var (jsonLicenseRequest.get()))); - ScopedPointer shared - = getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user/products/redeem").withPOSTData (postData), true); + ScopedPointer shared (getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user/products/redeem") + .withPOSTData (postData), + true)); if (shared != nullptr) { @@ -390,7 +391,9 @@ struct LicenseThread : NetWorkerThread if (avatarURL.isNotEmpty()) { - if (ScopedPointer shared = getSharedWebInputStream (URL (avatarURL), false)) + ScopedPointer shared (getSharedWebInputStream (URL (avatarURL), false)); + + if (shared != nullptr) { MemoryBlock mb; shared->readIntoMemoryBlock (mb); diff --git a/extras/Projucer/Source/Licenses/jucer_LicenseWebview.h b/extras/Projucer/Source/Licenses/jucer_LicenseWebview.h index fbedec5195..1626ab4cf9 100644 --- a/extras/Projucer/Source/Licenses/jucer_LicenseWebview.h +++ b/extras/Projucer/Source/Licenses/jucer_LicenseWebview.h @@ -137,9 +137,8 @@ private: } const uint32 backgroundColour = 0xff414141; - ScopedPointer juceLogo - = Drawable::createFromImageData (BinaryData::jucelogowithtext_svg, - BinaryData::jucelogowithtext_svgSize); + ScopedPointer juceLogo { Drawable::createFromImageData (BinaryData::jucelogowithtext_svg, + BinaryData::jucelogowithtext_svgSize) }; IconButton avatarButton; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Header) diff --git a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.cpp b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.cpp index 5b8deb894d..a57e4fe8c2 100644 --- a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.cpp +++ b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.cpp @@ -213,8 +213,7 @@ public: void restartServer() { - server.reset(); - server = new ClientIPC (owner); + server.reset (new ClientIPC (owner)); sendRebuild(); } @@ -516,7 +515,7 @@ CompileEngineChildProcess::~CompileEngineChildProcess() void CompileEngineChildProcess::createProcess() { jassert (process == nullptr); - process = new ChildProcess (*this, project); + process.reset (new ChildProcess (*this, project)); if (! process->openedOk) process.reset(); @@ -598,7 +597,7 @@ void CompileEngineChildProcess::killApp() void CompileEngineChildProcess::handleAppLaunched() { - runningAppProcess = process; + runningAppProcess.reset (process.release()); runningAppProcess->isRunningApp = true; createProcess(); } diff --git a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineServer.cpp b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineServer.cpp index ad2246b5be..e16e6c7398 100644 --- a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineServer.cpp +++ b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineServer.cpp @@ -158,7 +158,7 @@ public: setParentProcessID (info[3].getHexValue32()); #endif - zombieKiller = new ZombiePatrol (*this); + zombieKiller.reset (new ZombiePatrol (*this)); } ~ServerIPC() @@ -259,7 +259,7 @@ void* createClangServer (const String& commandLine) StringArray info; info.addTokens (commandLine.fromFirstOccurrenceOf (commandPrefix, false, false), commandTokenSeparator, ""); - ScopedPointer ipc = new ServerIPC (info); + ScopedPointer ipc (new ServerIPC (info)); if (ipc->dll.isLoaded()) { diff --git a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineSettings.h b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineSettings.h index 1374bee87d..f197d4ecbb 100644 --- a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineSettings.h +++ b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineSettings.h @@ -98,12 +98,11 @@ private: return "WINDOWS"; #elif JUCE_LINUX return "LINUX"; - #endif - + #else // unknown platform?! jassertfalse; - return {}; + #endif } //============================================================================== diff --git a/extras/Projucer/Source/LiveBuildEngine/jucer_DownloadCompileEngineThread.cpp b/extras/Projucer/Source/LiveBuildEngine/jucer_DownloadCompileEngineThread.cpp index 5d9bb6e6f9..be1ef96875 100644 --- a/extras/Projucer/Source/LiveBuildEngine/jucer_DownloadCompileEngineThread.cpp +++ b/extras/Projucer/Source/LiveBuildEngine/jucer_DownloadCompileEngineThread.cpp @@ -88,9 +88,9 @@ Result DownloadCompileEngineThread::download (MemoryBlock& dest) StringPairArray responseHeaders; URL url = getDownloadUrl(); - ScopedPointer in = url.createInputStream (false, nullptr, nullptr, - String(), timeoutMs, &responseHeaders, - &statusCode, 0); + ScopedPointer in (url.createInputStream (false, nullptr, nullptr, + String(), timeoutMs, &responseHeaders, + &statusCode, 0)); if (in == nullptr || statusCode != 200) return Result::fail ("Download error: cannot establish connection"); diff --git a/extras/Projucer/Source/Project/UI/Sidebar/jucer_LiveBuildTab.h b/extras/Projucer/Source/Project/UI/Sidebar/jucer_LiveBuildTab.h index c4e6064fe2..0b86f6356b 100644 --- a/extras/Projucer/Source/Project/UI/Sidebar/jucer_LiveBuildTab.h +++ b/extras/Projucer/Source/Project/UI/Sidebar/jucer_LiveBuildTab.h @@ -69,7 +69,8 @@ class LiveBuildTab : public Component, public: LiveBuildTab (CompileEngineChildProcess* child, String lastErrorMessage) { - addAndMakeVisible (settingsButton = new IconButton ("Settings", &getIcons().settings)); + settingsButton.reset (new IconButton ("Settings", &getIcons().settings)); + addAndMakeVisible (settingsButton.get()); settingsButton->onClick = [this] { if (auto* pcc = findParentComponentOfClass()) @@ -87,16 +88,17 @@ public: isEnabled = false; errorMessage = getErrorMessage(); - errorMessageLabel = new Label ("Error", errorMessage); + errorMessageLabel.reset (new Label ("Error", errorMessage)); errorMessageLabel->setJustificationType (Justification::centred); errorMessageLabel->setFont (Font (12.0f)); errorMessageLabel->setMinimumHorizontalScale (1.0f); - addAndMakeVisible (errorMessageLabel); + addAndMakeVisible (errorMessageLabel.get()); if (showDownloadButton) { - addAndMakeVisible (downloadButton = new TextButton ("Download")); + downloadButton.reset (new TextButton ("Download")); + addAndMakeVisible (downloadButton.get()); downloadButton->onClick = [this] { downloadDLL(); }; } @@ -110,7 +112,8 @@ public: buttonText = "Re-enable"; } - addAndMakeVisible (enableButton = new TextButton (buttonText)); + enableButton.reset (new TextButton (buttonText)); + addAndMakeVisible (enableButton.get()); enableButton->onClick = [this] { if (auto* pcc = findParentComponentOfClass()) diff --git a/extras/Projucer/Source/Project/UI/Sidebar/jucer_TabComponents.h b/extras/Projucer/Source/Project/UI/Sidebar/jucer_TabComponents.h index c8562efee1..3040dd5a20 100644 --- a/extras/Projucer/Source/Project/UI/Sidebar/jucer_TabComponents.h +++ b/extras/Projucer/Source/Project/UI/Sidebar/jucer_TabComponents.h @@ -173,22 +173,25 @@ public: { if (hasAddButton) { - addAndMakeVisible (addButton = new IconButton ("Add", &getIcons().plus)); + addButton.reset (new IconButton ("Add", &getIcons().plus)); + addAndMakeVisible (addButton.get()); addButton->onClick = [this] { showAddMenu(); }; } if (hasSettingsButton) { - addAndMakeVisible (settingsButton = new IconButton ("Settings", &getIcons().settings)); + settingsButton.reset (new IconButton ("Settings", &getIcons().settings)); + addAndMakeVisible (settingsButton.get()); settingsButton->onClick = [this] { showSettings(); }; } if (hasFindPanel) { - addAndMakeVisible (findPanel = new FindPanel ([this] (const String& filter) { treeToDisplay->rootItem->setSearchFilter (filter); })); + findPanel.reset (new FindPanel ([this] (const String& filter) { treeToDisplay->rootItem->setSearchFilter (filter); })); + addAndMakeVisible (findPanel.get()); } - addAndMakeVisible (treeToDisplay); + addAndMakeVisible (treeToDisplay.get()); } ~ConcertinaTreeComponent() diff --git a/extras/Projucer/Source/Project/UI/jucer_HeaderComponent.cpp b/extras/Projucer/Source/Project/UI/jucer_HeaderComponent.cpp index 1f191496a0..f3ba6502ac 100644 --- a/extras/Projucer/Source/Project/UI/jucer_HeaderComponent.cpp +++ b/extras/Projucer/Source/Project/UI/jucer_HeaderComponent.cpp @@ -43,7 +43,8 @@ HeaderComponent::HeaderComponent() exporterBox.onChange = [this] { updateExporterButton(); }; - addAndMakeVisible (juceIcon = new ImageComponent ("icon")); + juceIcon.reset (new ImageComponent ("icon")); + addAndMakeVisible (juceIcon.get()); juceIcon->setImage (ImageCache::getFromMemory (BinaryData::juce_icon_png, BinaryData::juce_icon_pngSize), RectanglePlacement::centred); @@ -260,7 +261,8 @@ void HeaderComponent::initialiseButtons() noexcept { auto& icons = getIcons(); - addAndMakeVisible (projectSettingsButton = new IconButton ("Project Settings", &icons.settings)); + projectSettingsButton.reset (new IconButton ("Project Settings", &icons.settings)); + addAndMakeVisible (projectSettingsButton.get()); projectSettingsButton->onClick = [this] { sendProjectButtonAnalyticsEvent ("Project Settings"); @@ -269,7 +271,8 @@ void HeaderComponent::initialiseButtons() noexcept pcc->showProjectSettings(); }; - addAndMakeVisible (saveAndOpenInIDEButton = new IconButton ("Save and Open in IDE", nullptr)); + saveAndOpenInIDEButton.reset (new IconButton ("Save and Open in IDE", nullptr)); + addAndMakeVisible (saveAndOpenInIDEButton.get()); saveAndOpenInIDEButton->isIDEButton = true; saveAndOpenInIDEButton->onClick = [this] { @@ -279,7 +282,8 @@ void HeaderComponent::initialiseButtons() noexcept pcc->openInSelectedIDE (true); }; - addAndMakeVisible (userSettingsButton = new IconButton ("User Settings", &icons.user)); + userSettingsButton.reset (new IconButton ("User Settings", &icons.user)); + addAndMakeVisible (userSettingsButton.get()); userSettingsButton->isUserButton = true; userSettingsButton->onClick = [this] { @@ -289,7 +293,8 @@ void HeaderComponent::initialiseButtons() noexcept showUserSettings(); }; - addAndMakeVisible (runAppButton = new IconButton ("Run Application", &icons.play)); + runAppButton.reset (new IconButton ("Run Application", &icons.play)); + addAndMakeVisible (runAppButton.get()); runAppButton->onClick = [this] { sendProjectButtonAnalyticsEvent ("Run Application"); diff --git a/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp b/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp index 1179e1c373..a9d36293e2 100644 --- a/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp +++ b/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp @@ -39,7 +39,7 @@ struct LogoComponent : public Component LogoComponent() { ScopedPointer svg (XmlDocument::parse (BinaryData::background_logo_svg)); - logo = Drawable::createFromSVG (*svg); + logo.reset (Drawable::createFromSVG (*svg)); } void paint (Graphics& g) override @@ -71,10 +71,14 @@ ProjectContentComponent::ProjectContentComponent() setOpaque (true); setWantsKeyboardFocus (true); - addAndMakeVisible (logo = new LogoComponent()); - addAndMakeVisible (header = new HeaderComponent()); + logo.reset (new LogoComponent()); + addAndMakeVisible (logo.get()); - addAndMakeVisible (fileNameLabel = new Label()); + header.reset (new HeaderComponent()); + addAndMakeVisible (header.get()); + + fileNameLabel.reset (new Label()); + addAndMakeVisible (fileNameLabel.get()); fileNameLabel->setJustificationType (Justification::centred); sidebarSizeConstrainer.setMinimumWidth (200); @@ -265,8 +269,9 @@ void ProjectContentComponent::rebuildProjectTabs() .getFloatValue()); //====================================================================== - addAndMakeVisible (resizerBar = new ResizableEdgeComponent (&sidebarTabs, &sidebarSizeConstrainer, - ResizableEdgeComponent::rightEdge)); + resizerBar.reset (new ResizableEdgeComponent (&sidebarTabs, &sidebarSizeConstrainer, + ResizableEdgeComponent::rightEdge)); + addAndMakeVisible (resizerBar.get()); resizerBar->setAlwaysOnTop (true); project->addChangeListener (this); @@ -299,7 +304,7 @@ void ProjectContentComponent::saveOpenDocumentList() ScopedPointer xml (recentDocumentList.createXML()); if (xml != nullptr) - project->getStoredProperties().setValue ("lastDocs", xml); + project->getStoredProperties().setValue ("lastDocs", xml.get()); } } @@ -419,7 +424,7 @@ bool ProjectContentComponent::setEditorComponent (Component* editor, { auto* viewport = new ContentViewport (editor); - contentView = viewport; + contentView.reset (viewport); currentDocument = nullptr; fileNameLabel->setVisible (false); @@ -427,7 +432,7 @@ bool ProjectContentComponent::setEditorComponent (Component* editor, } else { - contentView = editor; + contentView.reset (editor); currentDocument = doc; fileNameLabel->setText (doc->getFile().getFileName(), dontSendNotification); fileNameLabel->setVisible (true); diff --git a/extras/Projucer/Source/Project/jucer_Project.cpp b/extras/Projucer/Source/Project/jucer_Project.cpp index 62906c718d..fa3676a73c 100644 --- a/extras/Projucer/Source/Project/jucer_Project.cpp +++ b/extras/Projucer/Source/Project/jucer_Project.cpp @@ -1819,7 +1819,7 @@ Array Project::getDefaultRTASCategories() const noexcept EnabledModuleList& Project::getModules() { if (enabledModulesList == nullptr) - enabledModulesList = new EnabledModuleList (*this, projectRoot.getOrCreateChildWithName (Ids::MODULES, nullptr)); + enabledModulesList.reset (new EnabledModuleList (*this, projectRoot.getOrCreateChildWithName (Ids::MODULES, nullptr))); return *enabledModulesList; } @@ -1923,7 +1923,7 @@ bool Project::ExporterIterator::next() if (++index >= project.getNumExporters()) return false; - exporter = project.createExporter (index); + exporter.reset (project.createExporter (index)); if (exporter == nullptr) { diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h index 4fb13afe0f..4c666f92c9 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h @@ -1332,7 +1332,7 @@ private: customStringsXmlContent << cfg.getCustomStringsXml(); customStringsXmlContent << "\n"; - ScopedPointer strings = XmlDocument::parse (customStringsXmlContent); + ScopedPointer strings (XmlDocument::parse (customStringsXmlContent)); String dir = cfg.isDebug() ? "debug" : "release"; String subPath = "app/src/" + dir + "/res/values/string.xml"; diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CLion.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CLion.h index be3fc51f61..b3c3a1510e 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CLion.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CLion.h @@ -137,7 +137,7 @@ public: for (auto& exporterName : getExporterNames()) { - ScopedPointer exporter = createNewExporter (getProject(), exporterName); + ScopedPointer exporter (createNewExporter (getProject(), exporterName)); if (isExporterSupported (*exporter)) description << exporter->getName() << newLine; @@ -938,7 +938,7 @@ private: { auto plistFile = exporter.getTargetFolder().getChildFile (targetAttributes["INFOPLIST_FILE"]); XmlDocument infoPlistData (plistFile); - ScopedPointer plist = infoPlistData.getDocumentElement(); + ScopedPointer plist (infoPlistData.getDocumentElement()); if (plist != nullptr) { diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h index 822711aa8e..429a292e6f 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h @@ -1280,7 +1280,7 @@ public: ScopedPointer plist (XmlDocument::parse (owner.getPListToMergeString())); if (plist == nullptr || ! plist->hasTagName ("plist")) - plist = new XmlElement ("plist"); + plist.reset (new XmlElement ("plist")); auto* dict = plist->getChildByName ("dict"); @@ -2493,7 +2493,7 @@ private: v->setProperty ("path", pathString, nullptr); v->setProperty ("sourceTree", sourceTree, nullptr); - auto existing = pbxFileReferences.indexOfSorted (*this, v); + auto existing = pbxFileReferences.indexOfSorted (*this, v.get()); if (existing >= 0) { diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp index d4656f1ab0..352d11e4d3 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp @@ -792,15 +792,15 @@ Image ProjectExporter::getBestIconForSize (int size, bool returnNullIfNothingBig if (im1 != nullptr && im2 != nullptr) { if (im1->getWidth() >= size && im2->getWidth() >= size) - im = im1->getWidth() < im2->getWidth() ? im1 : im2; + im = im1->getWidth() < im2->getWidth() ? im1.get() : im2.get(); else if (im1->getWidth() >= size) - im = im1; + im = im1.get(); else if (im2->getWidth() >= size) - im = im2; + im = im2.get(); } else { - im = im1 != nullptr ? im1 : im2; + im = im1 != nullptr ? im1.get() : im2.get(); } if (im == nullptr) diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectSaver.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectSaver.h index 3f5b73174b..f9067a0c8d 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectSaver.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectSaver.h @@ -699,7 +699,7 @@ private: JobStatus runJob() override { - owner.saveExporter (exporter, modules); + owner.saveExporter (exporter.get(), modules); return jobHasFinished; } diff --git a/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp b/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp index 542e8aa6a4..03900eb70e 100644 --- a/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp +++ b/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp @@ -114,7 +114,7 @@ void StoredSettings::updateKeyMappings() const ScopedPointer keys (commandManager->getKeyMappings()->createXml (true)); if (keys != nullptr) - getGlobalProperties().setValue ("keyMappings", keys); + getGlobalProperties().setValue ("keyMappings", keys.get()); } } diff --git a/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp b/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp index 7256548a3f..d0c9ba2d6c 100644 --- a/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp +++ b/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp @@ -135,7 +135,7 @@ Result PIPGenerator::createJucerFile() auto outputFile = outputDirectory.getChildFile (metadata[Ids::name].toString() + ".jucer"); - ScopedPointer xml = root.createXml(); + ScopedPointer xml (root.createXml()); if (xml->writeToFile (outputFile, {})) return Result::ok(); diff --git a/extras/Projucer/Source/Utility/UI/jucer_JucerTreeViewBase.cpp b/extras/Projucer/Source/Utility/UI/jucer_JucerTreeViewBase.cpp index cb8194e183..2f992cdff7 100644 --- a/extras/Projucer/Source/Utility/UI/jucer_JucerTreeViewBase.cpp +++ b/extras/Projucer/Source/Utility/UI/jucer_JucerTreeViewBase.cpp @@ -31,7 +31,7 @@ //============================================================================== void TreePanelBase::setRoot (JucerTreeViewBase* root) { - rootItem = root; + rootItem.reset (root); tree.setRootItem (root); tree.getRootItem()->setOpen (true); @@ -243,7 +243,7 @@ void JucerTreeViewBase::itemSelectionChanged (bool isNowSelected) { if (isNowSelected) { - delayedSelectionTimer = new ItemSelectionTimer (*this); + delayedSelectionTimer.reset (new ItemSelectionTimer (*this)); delayedSelectionTimer->startTimer (getMillisecsAllowedForDragGesture()); } else diff --git a/extras/Projucer/Source/Utility/UI/jucer_SlidingPanelComponent.cpp b/extras/Projucer/Source/Utility/UI/jucer_SlidingPanelComponent.cpp index 6cc1a1600e..b908604a53 100644 --- a/extras/Projucer/Source/Utility/UI/jucer_SlidingPanelComponent.cpp +++ b/extras/Projucer/Source/Utility/UI/jucer_SlidingPanelComponent.cpp @@ -78,7 +78,8 @@ void SlidingPanelComponent::addTab (const String& tabName, PageInfo* page = new PageInfo(); pages.insert (insertIndex, page); page->content = contentComponent; - addAndMakeVisible (page->dotButton = new DotButton (*this, pages.indexOf (page))); + page->dotButton.reset (new DotButton (*this, pages.indexOf (page))); + addAndMakeVisible (page->dotButton.get()); page->name = tabName; page->shouldDelete = deleteComponentWhenNotNeeded; diff --git a/extras/Projucer/Source/Utility/UI/jucer_UserSettingsPopup.h b/extras/Projucer/Source/Utility/UI/jucer_UserSettingsPopup.h index 536b11376b..23e230316b 100644 --- a/extras/Projucer/Source/Utility/UI/jucer_UserSettingsPopup.h +++ b/extras/Projucer/Source/Utility/UI/jucer_UserSettingsPopup.h @@ -47,7 +47,8 @@ public: auto standardFont = Font (16.0f); - addAndMakeVisible (loggedInUsernameLabel = new Label ("Username Label")); + loggedInUsernameLabel.reset (new Label ("Username Label")); + addAndMakeVisible (loggedInUsernameLabel.get()); loggedInUsernameLabel->setFont (standardFont); loggedInUsernameLabel->setJustificationType (Justification::centred); @@ -57,13 +58,15 @@ public: loggedInUsernameLabel->setText ("GPL Mode: Re-compile with JUCER_ENABLE_GPL_MODE=0 to enable login!", NotificationType::dontSendNotification); #else - addAndMakeVisible (licenseTypeLabel = new Label ("License Type Label")); + licenseTypeLabel.reset (new Label ("License Type Label")); + addAndMakeVisible (licenseTypeLabel.get()); licenseTypeLabel->setFont (standardFont); licenseTypeLabel->setJustificationType (Justification::centred); licenseTypeLabel->setMinimumHorizontalScale (1.0f); - addAndMakeVisible (logoutButton = new TextButton (isInsideWebview ? "Select different account..." : "Logout")); + logoutButton.reset (new TextButton (isInsideWebview ? "Select different account..." : "Logout")); + addAndMakeVisible (logoutButton.get()); logoutButton->setColour (TextButton::buttonColourId, findColour (secondaryButtonBackgroundColourId)); logoutButton->onClick = [this] @@ -74,7 +77,8 @@ public: if (! isInsideWebview) { - addAndMakeVisible (switchLicenseButton = new TextButton ("Switch License")); + switchLicenseButton.reset (new TextButton ("Switch License")); + addAndMakeVisible (switchLicenseButton.get()); switchLicenseButton->onClick = [this] { dismissCalloutBox(); diff --git a/extras/Projucer/Source/Wizards/jucer_NewProjectWizardComponent.h b/extras/Projucer/Source/Wizards/jucer_NewProjectWizardComponent.h index 07b4003237..94890cd329 100644 --- a/extras/Projucer/Source/Wizards/jucer_NewProjectWizardComponent.h +++ b/extras/Projucer/Source/Wizards/jucer_NewProjectWizardComponent.h @@ -421,10 +421,11 @@ public: } auto projectDir = fileBrowser.getSelectedFile (0); + ScopedPointer project (wizard->runWizard (*this, projectName.getText(), + projectDir, + modulesPathBox.isUsingGlobalPaths)); - if (ScopedPointer project = wizard->runWizard (*this, projectName.getText(), - projectDir, - modulesPathBox.isUsingGlobalPaths)) + if (project != nullptr) { mw->setProject (project.release()); getAppSettings().lastWizardFolder = projectDir.getParentDirectory(); diff --git a/extras/Projucer/Source/Wizards/jucer_TemplateThumbnailsComponent.h b/extras/Projucer/Source/Wizards/jucer_TemplateThumbnailsComponent.h index f6fddc6db9..39a23275d8 100644 --- a/extras/Projucer/Source/Wizards/jucer_TemplateThumbnailsComponent.h +++ b/extras/Projucer/Source/Wizards/jucer_TemplateThumbnailsComponent.h @@ -42,13 +42,13 @@ public: ScopedPointer svg (XmlDocument::parse (thumbSvg)); jassert (svg != nullptr); - thumb = Drawable::createFromSVG (*svg); + thumb.reset (Drawable::createFromSVG (*svg)); // svg for thumbnail background highlight ScopedPointer backSvg (XmlDocument::parse (BinaryData::wizard_Highlight_svg)); jassert (backSvg != nullptr); - hoverBackground = Drawable::createFromSVG (*backSvg); + hoverBackground.reset (Drawable::createFromSVG (*backSvg)); name = buttonName; diff --git a/modules/juce_audio_devices/native/juce_linux_ALSA.cpp b/modules/juce_audio_devices/native/juce_linux_ALSA.cpp index 3b9a11a10d..772782f426 100644 --- a/modules/juce_audio_devices/native/juce_linux_ALSA.cpp +++ b/modules/juce_audio_devices/native/juce_linux_ALSA.cpp @@ -240,12 +240,12 @@ public: const int type = formatsToTry [i + 1]; bitDepth = type & 255; - converter = createConverter (isInput, bitDepth, - (type & isFloatBit) != 0, - (type & isLittleEndianBit) != 0, - (type & onlyUseLower24Bits) != 0, - numChannels, - isInterleaved); + converter.reset (createConverter (isInput, bitDepth, + (type & isFloatBit) != 0, + (type & isLittleEndianBit) != 0, + (type & onlyUseLower24Bits) != 0, + numChannels, + isInterleaved)); break; } } @@ -563,7 +563,7 @@ public: if (outputChannelDataForCallback.size() > 0 && outputId.isNotEmpty()) { - outputDevice = new ALSADevice (outputId, false); + outputDevice.reset (new ALSADevice (outputId, false)); if (outputDevice->error.isNotEmpty()) { @@ -587,7 +587,7 @@ public: if (inputChannelDataForCallback.size() > 0 && inputId.isNotEmpty()) { - inputDevice = new ALSADevice (inputId, true); + inputDevice.reset (new ALSADevice (inputId, true)); if (inputDevice->error.isNotEmpty()) { diff --git a/modules/juce_audio_devices/native/juce_linux_Midi.cpp b/modules/juce_audio_devices/native/juce_linux_Midi.cpp index eeecf9cecf..7436a61796 100644 --- a/modules/juce_audio_devices/native/juce_linux_Midi.cpp +++ b/modules/juce_audio_devices/native/juce_linux_Midi.cpp @@ -210,7 +210,7 @@ public: void registerCallback() { if (inputThread == nullptr) - inputThread = new MidiInputThread (*this); + inputThread.reset (new MidiInputThread (*this)); if (++activeCallbacks - 1 == 0) inputThread->startThread(); diff --git a/modules/juce_audio_devices/native/juce_win32_Midi.cpp b/modules/juce_audio_devices/native/juce_win32_Midi.cpp index 6a7d2bb8c2..0df20a51c1 100644 --- a/modules/juce_audio_devices/native/juce_win32_Midi.cpp +++ b/modules/juce_audio_devices/native/juce_win32_Midi.cpp @@ -266,7 +266,7 @@ private: deviceId = index; } - collector = new MidiInCollector (parentService, input, *callback); + collector.reset (new MidiInCollector (parentService, input, *callback)); HMIDIIN h; MMRESULT err = midiInOpen (&h, deviceId, @@ -1134,7 +1134,7 @@ MidiService::MidiService() #if JUCE_USE_WINRT_MIDI try { - internal = new WinRTMidiService(); + internal.reset (new WinRTMidiService()); return; } catch (std::runtime_error&) @@ -1142,7 +1142,7 @@ MidiService::MidiService() } #endif - internal = new WindowsMidiService(); + internal.reset (new WindowsMidiService()); } //============================================================================== @@ -1171,7 +1171,7 @@ MidiInput* MidiInput::openDevice (const int index, MidiInputCallback* const call try { - wrapper = MidiService::getInstance()->getService()->createInputWrapper (in, index, callback); + wrapper.reset (MidiService::getInstance()->getService()->createInputWrapper (in.get(), index, callback)); } catch (std::runtime_error&) { @@ -1208,7 +1208,7 @@ MidiOutput* MidiOutput::openDevice (const int index) try { - wrapper = MidiService::getInstance()->getService()->createOutputWrapper (index); + wrapper.reset (MidiService::getInstance()->getService()->createOutputWrapper (index)); } catch (std::runtime_error&) { diff --git a/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp b/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp index eb3df5bb37..2450490fab 100644 --- a/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp +++ b/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp @@ -731,7 +731,7 @@ public: void updateFormatWithType (SourceType*) noexcept { typedef AudioData::Pointer NativeType; - converter = new AudioData::ConverterInstance, NativeType> (actualNumChannels, 1); + converter.reset (new AudioData::ConverterInstance, NativeType> (actualNumChannels, 1)); } void updateFormat (bool isFloat) override @@ -888,7 +888,7 @@ public: void updateFormatWithType (DestType*) { typedef AudioData::Pointer NativeType; - converter = new AudioData::ConverterInstance> (1, actualNumChannels); + converter.reset (new AudioData::ConverterInstance> (1, actualNumChannels)); } void updateFormat (bool isFloat) override @@ -1024,8 +1024,8 @@ public: } else { - WASAPIDeviceBase* d = inputDevice != nullptr ? static_cast (inputDevice) - : static_cast (outputDevice); + WASAPIDeviceBase* d = inputDevice != nullptr ? static_cast (inputDevice.get()) + : static_cast (outputDevice.get()); defaultSampleRate = d->defaultSampleRate; minBufferSize = d->minBufferSize; defaultBufferSize = d->defaultBufferSize; @@ -1303,7 +1303,7 @@ public: { // Note that this function is handed the input device so it can check for the event and make sure // the input reservoir is filled up correctly even when bufferSize > device actualBufferSize - outputDevice->copyBuffers (const_cast (outputBuffers), numOutputBuffers, bufferSize, inputDevice, *this); + outputDevice->copyBuffers (const_cast (outputBuffers), numOutputBuffers, bufferSize, inputDevice.get(), *this); if (outputDevice->sampleRateHasChanged) { @@ -1375,9 +1375,9 @@ private: const EDataFlow flow = getDataFlow (device); if (deviceId == inputDeviceId && flow == eCapture) - inputDevice = new WASAPIInputDevice (device, useExclusiveMode); + inputDevice.reset (new WASAPIInputDevice (device, useExclusiveMode)); else if (deviceId == outputDeviceId && flow == eRender) - outputDevice = new WASAPIOutputDevice (device, useExclusiveMode); + outputDevice.reset (new WASAPIOutputDevice (device, useExclusiveMode)); } return (outputDeviceId.isEmpty() || (outputDevice != nullptr && outputDevice->isOk())) @@ -1492,12 +1492,12 @@ public: if (outputIndex >= 0 || inputIndex >= 0) { - device = new WASAPIAudioIODevice (outputDeviceName.isNotEmpty() ? outputDeviceName - : inputDeviceName, - getTypeName(), - outputDeviceIds [outputIndex], - inputDeviceIds [inputIndex], - exclusiveMode); + device.reset (new WASAPIAudioIODevice (outputDeviceName.isNotEmpty() ? outputDeviceName + : inputDeviceName, + getTypeName(), + outputDeviceIds [outputIndex], + inputDeviceIds [inputIndex], + exclusiveMode)); if (! device->initialise()) device = nullptr; diff --git a/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp b/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp index d698d0e650..1ad5439475 100644 --- a/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp @@ -533,7 +533,8 @@ namespace AAXClasses setOpaque (true); setBroughtToFrontOnMouseClick (true); - addAndMakeVisible (pluginEditor = plugin.createEditorIfNeeded()); + pluginEditor.reset (plugin.createEditorIfNeeded()); + addAndMakeVisible (pluginEditor.get()); if (pluginEditor != nullptr) { @@ -551,7 +552,7 @@ namespace AAXClasses { PopupMenu::dismissAllActiveMenus(); pluginEditor->removeMouseListener (this); - pluginEditor->processor.editorBeingDeleted (pluginEditor); + pluginEditor->processor.editorBeingDeleted (pluginEditor.get()); } } @@ -1425,9 +1426,8 @@ namespace AAXClasses { aaxWrapperProvidedBypassParam = true; - ownedBypassParameter = new AudioParameterBool (cDefaultMasterBypassID, "Master Bypass", false, {}, {}, {}); - - bypassParameter = ownedBypassParameter; + ownedBypassParameter.reset (new AudioParameterBool (cDefaultMasterBypassID, "Master Bypass", false, {}, {}, {})); + bypassParameter = ownedBypassParameter.get(); } if (! bypassPartOfRegularParams) @@ -1808,7 +1808,7 @@ namespace AAXClasses if (component == nullptr) { if (auto* params = dynamic_cast (GetEffectParameters())) - component = new ContentWrapperComponent (*this, params->getPluginInstance()); + component.reset (new ContentWrapperComponent (*this, params->getPluginInstance())); else jassertfalse; } @@ -2051,7 +2051,7 @@ namespace AAXClasses static void getPlugInDescription (AAX_IEffectDescriptor& descriptor, const AAX_IFeatureInfo* featureInfo) { PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_AAX; - ScopedPointer plugin = createPluginFilterOfType (AudioProcessor::wrapperType_AAX); + ScopedPointer plugin (createPluginFilterOfType (AudioProcessor::wrapperType_AAX)); auto numInputBuses = plugin->getBusCount (true); auto numOutputBuses = plugin->getBusCount (false); @@ -2141,11 +2141,11 @@ AAX_Result JUCE_CDECL GetEffectDescriptions (AAX_ICollection* collection) ScopedPointer stemFormatFeatureInfo; if (const auto* hostDescription = collection->DescriptionHost()) - stemFormatFeatureInfo = hostDescription->AcquireFeatureProperties (AAXATTR_ClientFeature_StemFormat); + stemFormatFeatureInfo.reset (hostDescription->AcquireFeatureProperties (AAXATTR_ClientFeature_StemFormat)); if (auto* descriptor = collection->NewDescriptor()) { - AAXClasses::getPlugInDescription (*descriptor, stemFormatFeatureInfo); + AAXClasses::getPlugInDescription (*descriptor, stemFormatFeatureInfo.get()); collection->AddEffect (JUCE_STRINGIFY (JucePlugin_AAXIdentifier), descriptor); collection->SetManufacturerName (JucePlugin_Manufacturer); diff --git a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm index 855eb6d583..835959cbfb 100644 --- a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm +++ b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm @@ -107,7 +107,7 @@ struct AudioProcessorHolder initialiseJuce_GUI(); } - juceFilter = createPluginFilterOfType (AudioProcessor::wrapperType_AudioUnit); + juceFilter.reset (createPluginFilterOfType (AudioProcessor::wrapperType_AudioUnit)); // audio units do not have a notion of enabled or un-enabled buses juceFilter->enableAllBuses(); @@ -128,8 +128,8 @@ public: JuceAU (AudioUnit component) : AudioProcessorHolder(activePlugins.size() + activeUIs.size() == 0), MusicDeviceBase (component, - (UInt32) AudioUnitHelpers::getBusCount (juceFilter, true), - (UInt32) AudioUnitHelpers::getBusCount (juceFilter, false)), + (UInt32) AudioUnitHelpers::getBusCount (juceFilter.get(), true), + (UInt32) AudioUnitHelpers::getBusCount (juceFilter.get(), false)), isBypassed (false), mapper (*juceFilter) { @@ -208,7 +208,7 @@ public: return err; mapper.alloc(); - pulledSucceeded.calloc (static_cast (AudioUnitHelpers::getBusCount (juceFilter, true))); + pulledSucceeded.calloc (static_cast (AudioUnitHelpers::getBusCount (juceFilter.get(), true))); prepareToPlay(); @@ -298,7 +298,7 @@ public: if (isInput) return false; #endif - const int busCount = AudioUnitHelpers::getBusCount (juceFilter, isInput); + const int busCount = AudioUnitHelpers::getBusCount (juceFilter.get(), isInput); return (juceFilter->canAddBus (isInput) || (busCount > 0 && juceFilter->canRemoveBus (isInput))); #endif } @@ -311,12 +311,12 @@ public: if ((err = scopeToDirection (scope, isInput)) != noErr) return err; - if (count != (UInt32) AudioUnitHelpers::getBusCount (juceFilter, isInput)) + if (count != (UInt32) AudioUnitHelpers::getBusCount (juceFilter.get(), isInput)) { #ifdef JucePlugin_PreferredChannelConfigurations return kAudioUnitErr_PropertyNotWritable; #else - const int busCount = AudioUnitHelpers::getBusCount (juceFilter, isInput); + const int busCount = AudioUnitHelpers::getBusCount (juceFilter.get(), isInput); if ((! juceFilter->canAddBus (isInput)) && ((busCount == 0) || (! juceFilter->canRemoveBus (isInput)))) return kAudioUnitErr_PropertyNotWritable; @@ -360,7 +360,7 @@ public: if (err != noErr) { // restore bus state - const int newBusCount = AudioUnitHelpers::getBusCount (juceFilter, isInput); + const int newBusCount = AudioUnitHelpers::getBusCount (juceFilter.get(), isInput); for (int i = newBusCount; i != busCount; i += (busCount > newBusCount ? 1 : -1)) { if (busCount > newBusCount) @@ -475,7 +475,7 @@ public: switch (inID) { case juceFilterObjectPropertyID: - ((void**) outData)[0] = (void*) static_cast (juceFilter); + ((void**) outData)[0] = (void*) static_cast (juceFilter.get()); ((void**) outData)[1] = (void*) this; return noErr; @@ -996,7 +996,7 @@ public: ComponentResult Version() override { return JucePlugin_VersionCode; } bool SupportsTail() override { return true; } Float64 GetTailTime() override { return juceFilter->getTailLengthSeconds(); } - double getSampleRate() { return AudioUnitHelpers::getBusCount (juceFilter, false) > 0 ? GetOutput(0)->GetStreamFormat().mSampleRate : 44100.0; } + double getSampleRate() { return AudioUnitHelpers::getBusCount (juceFilter.get(), false) > 0 ? GetOutput (0)->GetStreamFormat().mSampleRate : 44100.0; } Float64 GetLatency() override { @@ -1831,7 +1831,7 @@ private: busIdx = static_cast (element); if ((err = scopeToDirection (scope, isInput)) != noErr) return err; - if (isPositiveAndBelow (busIdx, AudioUnitHelpers::getBusCount (juceFilter, isInput))) return noErr; + if (isPositiveAndBelow (busIdx, AudioUnitHelpers::getBusCount (juceFilter.get(), isInput))) return noErr; return kAudioUnitErr_InvalidElement; } @@ -1936,8 +1936,8 @@ private: OSStatus syncAudioUnitWithProcessor() { OSStatus err = noErr; - const int enabledInputs = AudioUnitHelpers::getBusCount (juceFilter, true); - const int enabledOutputs = AudioUnitHelpers::getBusCount (juceFilter, false); + const int enabledInputs = AudioUnitHelpers::getBusCount (juceFilter.get(), true); + const int enabledOutputs = AudioUnitHelpers::getBusCount (juceFilter.get(), false); if ((err = MusicDeviceBase::SetBusCount (kAudioUnitScope_Input, static_cast (enabledInputs))) != noErr) return err; @@ -1958,8 +1958,8 @@ private: OSStatus syncProcessorWithAudioUnit() { - const int numInputBuses = AudioUnitHelpers::getBusCount (juceFilter, true); - const int numOutputBuses = AudioUnitHelpers::getBusCount (juceFilter, false); + const int numInputBuses = AudioUnitHelpers::getBusCount (juceFilter.get(), true); + const int numOutputBuses = AudioUnitHelpers::getBusCount (juceFilter.get(), false); const int numInputElements = static_cast (GetScope(kAudioUnitScope_Input). GetNumberOfElements()); const int numOutputElements = static_cast (GetScope(kAudioUnitScope_Output).GetNumberOfElements()); @@ -1994,7 +1994,7 @@ private: return kAudioUnitErr_FormatNotSupported; #endif - if (! AudioUnitHelpers::setBusesLayout (juceFilter, requestedLayouts)) + if (! AudioUnitHelpers::setBusesLayout (juceFilter.get(), requestedLayouts)) return kAudioUnitErr_FormatNotSupported; // update total channel count @@ -2094,7 +2094,7 @@ private: { auto& layouts = isInput ? supportedInputLayouts : supportedOutputLayouts; layouts.clear(); - auto numBuses = AudioUnitHelpers::getBusCount (juceFilter, isInput); + auto numBuses = AudioUnitHelpers::getBusCount (juceFilter.get(), isInput); for (int busNr = 0; busNr < numBuses; ++busNr) { @@ -2109,8 +2109,8 @@ private: { currentInputLayout.clear(); currentOutputLayout.clear(); - currentInputLayout. resize (AudioUnitHelpers::getBusCount (juceFilter, true)); - currentOutputLayout.resize (AudioUnitHelpers::getBusCount (juceFilter, false)); + currentInputLayout. resize (AudioUnitHelpers::getBusCount (juceFilter.get(), true)); + currentOutputLayout.resize (AudioUnitHelpers::getBusCount (juceFilter.get(), false)); addSupportedLayoutTagsForDirection (true); addSupportedLayoutTagsForDirection (false); diff --git a/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm b/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm index 31e90070fc..80f7a2c684 100644 --- a/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm +++ b/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm @@ -102,8 +102,8 @@ struct AudioProcessorHolder : public ReferenceCountedObject AudioProcessorHolder() {} AudioProcessorHolder (AudioProcessor* p) : processor (p) {} AudioProcessor& operator*() noexcept { return *processor; } - AudioProcessor* operator->() noexcept { return processor; } - AudioProcessor* get() noexcept { return processor; } + AudioProcessor* operator->() noexcept { return processor.get(); } + AudioProcessor* get() noexcept { return processor.get(); } struct ViewConfig { @@ -468,7 +468,7 @@ public: if (editorObserverToken != nullptr) { - [paramTree removeParameterObserver: editorObserverToken]; + [paramTree.get() removeParameterObserver: editorObserverToken]; editorObserverToken = nullptr; } } @@ -509,15 +509,14 @@ public: totalOutChannels = processor.getTotalNumOutputChannels(); { - channelCapabilities = [[NSMutableArray alloc] init]; - + channelCapabilities.reset ([[NSMutableArray alloc] init]); for (int i = 0; i < channelInfos.size(); ++i) { AUChannelInfo& info = channelInfos.getReference (i); - [channelCapabilities addObject: [NSNumber numberWithInteger: info.inChannels]]; - [channelCapabilities addObject: [NSNumber numberWithInteger: info.outChannels]]; + [channelCapabilities.get() addObject: [NSNumber numberWithInteger: info.inChannels]]; + [channelCapabilities.get() addObject: [NSNumber numberWithInteger: info.outChannels]]; } } @@ -547,18 +546,18 @@ public: //============================================================================== AUAudioUnitPreset* getCurrentPreset() override { - const int n = static_cast ([factoryPresets count]); + const int n = static_cast ([factoryPresets.get() count]); const int idx = static_cast (getAudioProcessor().getCurrentProgram()); if (idx < n) - return [factoryPresets objectAtIndex:static_cast (idx)]; + return [factoryPresets.get() objectAtIndex:static_cast (idx)]; return nullptr; } void setCurrentPreset(AUAudioUnitPreset* preset) override { - const int n = static_cast ([factoryPresets count]); + const int n = static_cast ([factoryPresets.get() count]); const int idx = static_cast ([preset number]); if (isPositiveAndBelow (idx, n)) @@ -567,7 +566,7 @@ public: NSArray* getFactoryPresets() override { - return factoryPresets; + return factoryPresets.get(); } NSDictionary* getFullState() override @@ -637,17 +636,17 @@ public: AUParameterTree* getParameterTree() override { - return paramTree; + return paramTree.get(); } NSArray* parametersForOverviewWithCount (int count) override { - const int n = static_cast ([overviewParams count]); + const int n = static_cast ([overviewParams.get() count]); if (count >= n) - return overviewParams; + return overviewParams.get(); - NSMutableArray* retval = [[NSMutableArrayalloc] initWithArray: overviewParams]; + NSMutableArray* retval = [[NSMutableArrayalloc] initWithArray: overviewParams.get()]; [retval removeObjectsInRange: NSMakeRange (static_cast (count), static_cast (n - count))]; return [retval autorelease]; @@ -666,9 +665,9 @@ public: } //============================================================================== - AUAudioUnitBusArray* getInputBusses() override { return inputBusses; } - AUAudioUnitBusArray* getOutputBusses() override { return outputBusses; } - NSArray* getChannelCapabilities() override { return channelCapabilities; } + AUAudioUnitBusArray* getInputBusses() override { return inputBusses.get(); } + AUAudioUnitBusArray* getOutputBusses() override { return outputBusses.get(); } + NSArray* getChannelCapabilities() override { return channelCapabilities.get(); } bool shouldChangeToFormat (AVAudioFormat* format, AUAudioUnitBus* auBus) override { @@ -858,7 +857,7 @@ public: audioBuffer.prepare (totalInChannels, totalOutChannels, static_cast (maxFrames)); double sampleRate = (jmax (AudioUnitHelpers::getBusCount (&processor, true), AudioUnitHelpers::getBusCount (&processor, false)) > 0 ? - [[[([inputBusses count] > 0 ? inputBusses : outputBusses) objectAtIndexedSubscript: 0] format] sampleRate] : 44100.0); + [[[([inputBusses.get() count] > 0 ? inputBusses.get() : outputBusses.get()) objectAtIndexedSubscript: 0] format] sampleRate] : 44100.0); processor.setRateAndBufferSizeDetails (sampleRate, static_cast (maxFrames)); processor.prepareToPlay (sampleRate, static_cast (maxFrames)); @@ -948,7 +947,7 @@ public: if (isPositiveAndBelow (idx, juceParameters.getNumParameters())) { - if (AUParameter* param = [paramTree parameterWithAddress: getAUParameterAddressForIndex (idx)]) + if (AUParameter* param = [paramTree.get() parameterWithAddress: getAUParameterAddressForIndex (idx)]) { if (editorObserverToken != nullptr) [param setValue: newValue originator: editorObserverToken]; @@ -1133,7 +1132,7 @@ private: //============================================================================== void addAudioUnitBusses (bool isInput) { - ScopedPointer> array = [[NSMutableArray alloc] init]; + ScopedPointer> array ([[NSMutableArray alloc] init]); AudioProcessor& processor = getAudioProcessor(); const int n = AudioUnitHelpers::getBusCount (&processor, isInput); @@ -1142,19 +1141,19 @@ private: ScopedPointer audioUnitBus; { - ScopedPointer defaultFormat = [[AVAudioFormat alloc] initStandardFormatWithSampleRate: kDefaultSampleRate - channels: static_cast (processor.getChannelCountOfBus (isInput, i))]; + ScopedPointer defaultFormat ([[AVAudioFormat alloc] initStandardFormatWithSampleRate: kDefaultSampleRate + channels: static_cast (processor.getChannelCountOfBus (isInput, i))]); - audioUnitBus = [[AUAudioUnitBus alloc] initWithFormat: defaultFormat - error: nullptr]; + audioUnitBus.reset ([[AUAudioUnitBus alloc] initWithFormat: defaultFormat.get() + error: nullptr]); } - [array addObject: audioUnitBus]; + [array.get() addObject: audioUnitBus.get()]; } - (isInput ? inputBusses : outputBusses) = [[AUAudioUnitBusArray alloc] initWithAudioUnit: au - busType: (isInput ? AUAudioUnitBusTypeInput : AUAudioUnitBusTypeOutput) - busses: array]; + (isInput ? inputBusses : outputBusses).reset ([[AUAudioUnitBusArray alloc] initWithAudioUnit: au + busType: (isInput ? AUAudioUnitBusTypeInput : AUAudioUnitBusTypeOutput) + busses: array.get()]); } // When parameters are discrete we need to use integer values. @@ -1170,9 +1169,9 @@ private: void addParameters() { - ScopedPointer> params = [[NSMutableArray alloc] init]; + ScopedPointer> params ([[NSMutableArray alloc] init]); - overviewParams = [[NSMutableArray alloc] init]; + overviewParams.reset ([[NSMutableArray alloc] init]); auto& processor = getAudioProcessor(); juceParameters.update (processor, forceLegacyParamIDs); @@ -1252,40 +1251,40 @@ private: #endif // create methods in AUParameterTree return unretained objects (!) -> see Apple header AUAudioUnitImplementation.h - ScopedPointer param = [[AUParameterTree createParameterWithIdentifier: juceStringToNS (identifier) - name: juceStringToNS (name) - address: address - min: 0.0f - max: getMaximumParameterValue (juceParam) - unit: unit - unitName: nullptr - flags: flags - valueStrings: valueStrings.get() - dependentParameters: nullptr] retain]; + ScopedPointer param ([[AUParameterTree createParameterWithIdentifier: juceStringToNS (identifier) + name: juceStringToNS (name) + address: address + min: 0.0f + max: getMaximumParameterValue (juceParam) + unit: unit + unitName: nullptr + flags: flags + valueStrings: valueStrings.get() + dependentParameters: nullptr] retain]); [param.get() setValue: juceParam->getDefaultValue()]; - [params addObject: param]; - [overviewParams addObject: [NSNumber numberWithUnsignedLongLong:address]]; + [params.get() addObject: param.get()]; + [overviewParams.get() addObject: [NSNumber numberWithUnsignedLongLong:address]]; } // create methods in AUParameterTree return unretained objects (!) -> see Apple header AUAudioUnitImplementation.h - paramTree = [[AUParameterTree createTreeWithChildren: params] retain]; + paramTree.reset ([[AUParameterTree createTreeWithChildren: params.get()] retain]); paramObserver = CreateObjCBlock (this, &JuceAudioUnitv3::valueChangedFromHost); paramProvider = CreateObjCBlock (this, &JuceAudioUnitv3::getValue); stringFromValueProvider = CreateObjCBlock (this, &JuceAudioUnitv3::stringFromValue); valueFromStringProvider = CreateObjCBlock (this, &JuceAudioUnitv3::valueFromString); - [paramTree setImplementorValueObserver: paramObserver]; - [paramTree setImplementorValueProvider: paramProvider]; - [paramTree setImplementorStringFromValueCallback: stringFromValueProvider]; - [paramTree setImplementorValueFromStringCallback: valueFromStringProvider]; + [paramTree.get() setImplementorValueObserver: paramObserver]; + [paramTree.get() setImplementorValueProvider: paramProvider]; + [paramTree.get() setImplementorStringFromValueCallback: stringFromValueProvider]; + [paramTree.get() setImplementorValueFromStringCallback: valueFromStringProvider]; if (processor.hasEditor()) { editorParamObserver = CreateObjCBlock (this, &JuceAudioUnitv3::valueChangedForObserver); - editorObserverToken = [paramTree tokenByAddingParameterObserver: editorParamObserver]; + editorObserverToken = [paramTree.get() tokenByAddingParameterObserver: editorParamObserver]; } if ((bypassParam = processor.getBypassParameter()) != nullptr) @@ -1305,7 +1304,7 @@ private: void addPresets() { - factoryPresets = [[NSMutableArray alloc] init]; + factoryPresets.reset ([[NSMutableArray alloc] init]); const int n = getAudioProcessor().getNumPrograms(); @@ -1313,11 +1312,11 @@ private: { String name = getAudioProcessor().getProgramName (idx); - ScopedPointer preset = [[AUAudioUnitPreset alloc] init]; - [preset setName: juceStringToNS (name)]; - [preset setNumber: static_cast (idx)]; + ScopedPointer preset ([[AUAudioUnitPreset alloc] init]); + [preset.get() setName: juceStringToNS (name)]; + [preset.get() setNumber: static_cast (idx)]; - [factoryPresets addObject: preset]; + [factoryPresets.get() addObject: preset.get()]; } } @@ -1331,7 +1330,7 @@ private: const AUAudioFrameCount maxFrames = [getAudioUnit() maximumFramesToRender]; for (int busIdx = 0; busIdx < n; ++busIdx) - busBuffers.add (new BusBuffer ([(isInput ? inputBusses : outputBusses) objectAtIndexedSubscript: static_cast (busIdx)], + busBuffers.add (new BusBuffer ([(isInput ? inputBusses.get() : outputBusses.get()) objectAtIndexedSubscript: static_cast (busIdx)], static_cast (maxFrames))); } @@ -1848,7 +1847,7 @@ private: ScopedPointer cpp; } -- (instancetype) initWithNibName: (nullable NSString*) nib bundle: (nullable NSBundle*) bndl { self = [super initWithNibName: nib bundle: bndl]; cpp = new JuceAUViewController (self); return self; } +- (instancetype) initWithNibName: (nullable NSString*) nib bundle: (nullable NSBundle*) bndl { self = [super initWithNibName: nib bundle: bndl]; cpp.reset (new JuceAUViewController (self)); return self; } - (void) loadView { cpp->loadView(); } - (AUAudioUnit *) createAudioUnitWithComponentDescription: (AudioComponentDescription) desc error: (NSError **) error { return cpp->createAudioUnit (desc, error); } - (CGSize) preferredContentSize { return cpp->getPreferredContentSize(); } diff --git a/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterApp.cpp b/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterApp.cpp index 43465edce1..df65276b1b 100644 --- a/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterApp.cpp +++ b/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterApp.cpp @@ -99,7 +99,7 @@ public: //============================================================================== void initialise (const String&) override { - mainWindow = createWindow(); + mainWindow.reset (createWindow()); #if JUCE_STANDALONE_FILTER_WINDOW_USE_KIOSK_MODE Desktop::getInstance().setKioskModeComponent (mainWindow, false); diff --git a/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h b/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h index 69bd2cdea4..4978936c4c 100644 --- a/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h +++ b/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h @@ -87,7 +87,7 @@ public: : processor->getMainBusNumInputChannels()); if (preferredSetupOptions != nullptr) - options = new AudioDeviceManager::AudioDeviceSetup (*preferredSetupOptions); + options.reset (new AudioDeviceManager::AudioDeviceSetup (*preferredSetupOptions)); if (inChannels > 0 && RuntimePermissions::isRequired (RuntimePermissions::recordAudio) && ! RuntimePermissions::isGranted (RuntimePermissions::recordAudio)) @@ -99,7 +99,7 @@ public: void init (bool enableAudioInput, const String& preferredDefaultDeviceName) { - setupAudioDevices (enableAudioInput, preferredDefaultDeviceName, options); + setupAudioDevices (enableAudioInput, preferredDefaultDeviceName, options.get()); reloadPluginState(); startPlaying(); @@ -120,7 +120,7 @@ public: { #if JUCE_MODULE_AVAILABLE_juce_audio_plugin_client - processor = ::createPluginFilterOfType (AudioProcessor::wrapperType_Standalone); + processor.reset (::createPluginFilterOfType (AudioProcessor::wrapperType_Standalone)); #else AudioProcessor::setTypeOfNextNewPlugin (AudioProcessor::wrapperType_Standalone); processor = createPluginFilter(); @@ -228,7 +228,7 @@ public: //============================================================================== void startPlaying() { - player.setProcessor (processor); + player.setProcessor (processor.get()); #if JucePlugin_Enable_IAA && JUCE_IOS if (auto device = dynamic_cast (deviceManager.getCurrentAudioDevice())) @@ -297,7 +297,7 @@ public: { ScopedPointer xml (deviceManager.createStateXml()); - settings->setValue ("audioSetup", xml); + settings->setValue ("audioSetup", xml.get()); #if ! (JUCE_IOS || JUCE_ANDROID) settings->setValue ("shouldMuteInput", (bool) shouldMuteInput.getValue()); @@ -313,7 +313,7 @@ public: if (settings != nullptr) { - savedState = settings->getXmlValue ("audioSetup"); + savedState.reset (settings->getXmlValue ("audioSetup")); #if ! (JUCE_IOS || JUCE_ANDROID) shouldMuteInput.setValue (settings->getBoolValue ("shouldMuteInput", true)); @@ -332,7 +332,7 @@ public: deviceManager.initialise (enableAudioInput ? totalInChannels : 0, totalOutChannels, - savedState, + savedState.get(), true, preferredDefaultDeviceName, preferredSetupOptions); @@ -603,9 +603,9 @@ public: optionsButton.setTriggeredOnMouseDown (true); #endif - pluginHolder = new StandalonePluginHolder (settingsToUse, takeOwnershipOfSettings, - preferredDefaultDeviceName, preferredSetupOptions, - constrainToConfiguration, autoOpenMidiDevices); + pluginHolder.reset (new StandalonePluginHolder (settingsToUse, takeOwnershipOfSettings, + preferredDefaultDeviceName, preferredSetupOptions, + constrainToConfiguration, autoOpenMidiDevices)); #if JUCE_IOS || JUCE_ANDROID setFullScreen (true); @@ -646,7 +646,7 @@ public: } //============================================================================== - AudioProcessor* getAudioProcessor() const noexcept { return pluginHolder->processor; } + AudioProcessor* getAudioProcessor() const noexcept { return pluginHolder->processor.get(); } AudioDeviceManager& getDeviceManager() const noexcept { return pluginHolder->deviceManager; } /** Deletes and re-creates the plugin, resetting it to its default state. */ @@ -710,7 +710,7 @@ public: optionsButton.setBounds (8, 6, 60, getTitleBarHeight() - 8); } - virtual StandalonePluginHolder* getPluginHolder() { return pluginHolder; } + virtual StandalonePluginHolder* getPluginHolder() { return pluginHolder.get(); } ScopedPointer pluginHolder; @@ -733,7 +733,7 @@ private: editor->addComponentListener (this); componentMovedOrResized (*editor, false, true); - addAndMakeVisible (editor); + addAndMakeVisible (editor.get()); } addChildComponent (notification); @@ -752,7 +752,7 @@ private: if (editor != nullptr) { editor->removeComponentListener (this); - owner.pluginHolder->processor->editorBeingDeleted (editor); + owner.pluginHolder->processor->editorBeingDeleted (editor.get()); editor = nullptr; } } diff --git a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp index 152566e4a3..df888fea6c 100644 --- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp @@ -1072,7 +1072,7 @@ public: if (auto* ed = processor->createEditorIfNeeded()) { vstEffect.flags |= vstEffectFlagHasEditor; - editorComp = new EditorCompWrapper (*this, *ed); + editorComp.reset (new EditorCompWrapper (*this, *ed)); #if ! (JUCE_MAC || JUCE_IOS) ed->setScaleFactor (editorScaleFactor); diff --git a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp index 614d1f02bc..f2abf7b4b5 100644 --- a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp @@ -98,7 +98,7 @@ public: virtual ~JuceAudioProcessor() {} - AudioProcessor* get() const noexcept { return audioProcessor; } + AudioProcessor* get() const noexcept { return audioProcessor.get(); } JUCE_DECLARE_VST3_COM_QUERY_METHODS JUCE_DECLARE_VST3_COM_REF_METHODS @@ -169,7 +169,8 @@ private: if (bypassParameter == nullptr) { vst3WrapperProvidedBypassParam = true; - bypassParameter = ownedBypassParameter = new AudioParameterBool ("byps", "Bypass", false, {}, {}, {}); + ownedBypassParameter.reset (new AudioParameterBool ("byps", "Bypass", false, {}, {}, {})); + bypassParameter = ownedBypassParameter.get(); } // if the bypass parameter is not part of the exported parameters that the plug-in supports @@ -789,7 +790,7 @@ private: : Vst::EditorView (&ec, nullptr), owner (&ec), pluginInstance (p) { - component = new ContentWrapperComponent (*this, p); + component.reset (new ContentWrapperComponent (*this, p)); } tresult PLUGIN_API queryInterface (const TUID targetIID, void** obj) override @@ -822,7 +823,7 @@ private: return kResultFalse; if (component == nullptr) - component = new ContentWrapperComponent (*this, pluginInstance); + component.reset (new ContentWrapperComponent (*this, pluginInstance)); #if JUCE_WINDOWS component->addToDesktop (0, parent); @@ -830,7 +831,7 @@ private: component->setVisible (true); #else isNSView = (strcmp (type, kPlatformTypeNSView) == 0); - macHostWindow = juce::attachComponentToWindowRefVST (component, parent, isNSView); + macHostWindow = juce::attachComponentToWindowRefVST (component.get(), parent, isNSView); #endif component->resizeHostWindow(); @@ -853,7 +854,7 @@ private: #else if (macHostWindow != nullptr) { - juce::detachComponentFromWindowRefVST (component, macHostWindow, isNSView); + juce::detachComponentFromWindowRefVST (component.get(), macHostWindow, isNSView); macHostWindow = nullptr; } #endif @@ -912,8 +913,8 @@ private: if (auto* editor = component->pluginEditor.get()) { // checkSizeConstraint - auto juceRect = editor->getLocalArea (component, Rectangle::leftTopRightBottom (rectToCheck->left, rectToCheck->top, - rectToCheck->right, rectToCheck->bottom)); + auto juceRect = editor->getLocalArea (component.get(), Rectangle::leftTopRightBottom (rectToCheck->left, rectToCheck->top, + rectToCheck->right, rectToCheck->bottom)); if (auto* constrainer = editor->getConstrainer()) { Rectangle limits (0, 0, constrainer->getMaximumWidth(), constrainer->getMaximumHeight()); @@ -972,7 +973,7 @@ private: if (pluginEditor != nullptr) { - addAndMakeVisible (pluginEditor); + addAndMakeVisible (pluginEditor.get()); pluginEditor->setTopLeftPosition (0, 0); lastBounds = getSizeToContainChild(); @@ -991,7 +992,7 @@ private: if (pluginEditor != nullptr) { PopupMenu::dismissAllActiveMenus(); - pluginEditor->processor.editorBeingDeleted (pluginEditor); + pluginEditor->processor.editorBeingDeleted (pluginEditor.get()); } } @@ -1003,7 +1004,7 @@ private: juce::Rectangle getSizeToContainChild() { if (pluginEditor != nullptr) - return getLocalArea (pluginEditor, pluginEditor->getLocalBounds()); + return getLocalArea (pluginEditor.get(), pluginEditor->getLocalBounds()); return {}; } diff --git a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm index 61943535aa..43918cb9ec 100644 --- a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm +++ b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm @@ -1452,7 +1452,7 @@ public: auSupportsBypass = (AudioUnitGetPropertyInfo (audioUnit, kAudioUnitProperty_BypassEffect, kAudioUnitScope_Global, 0, &propertySize, &writable) == noErr && propertySize >= sizeof (UInt32) && writable); - bypassParam = new AUBypassParameter (*this); + bypassParam.reset (new AUBypassParameter (*this)); } void updateLatency() diff --git a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp index 466478d62a..41c5b4de9f 100644 --- a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp @@ -1477,7 +1477,7 @@ private: { #if JUCE_WINDOWS if (auto* topComp = getTopLevelComponent()) - peer = embeddedComponent.createNewPeer (0, topComp->getWindowHandle()); + peer.reset (embeddedComponent.createNewPeer (0, topComp->getWindowHandle())); else peer = nullptr; diff --git a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp index c3c5e31511..b296891b8f 100644 --- a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp @@ -659,11 +659,11 @@ struct ModuleHandle : public ReferenceCountedObject if (moduleMain != nullptr) { - vstXml = XmlDocument::parse (file.withFileExtension ("vstxml")); + vstXml.reset (XmlDocument::parse (file.withFileExtension ("vstxml"))); #if JUCE_WINDOWS if (vstXml == nullptr) - vstXml = XmlDocument::parse (getDLLResource (file, "VSTXML", 1)); + vstXml.reset (XmlDocument::parse (getDLLResource (file, "VSTXML", 1))); #endif } diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp index 8eedcb8ecf..c5fab185bd 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp @@ -1333,7 +1333,7 @@ void AudioProcessorGraph::processBlock (AudioBuffer& buffer, MidiBuffer& if (isPrepared.get() == 0 && MessageManager::getInstance()->isThisTheMessageThread()) handleAsyncUpdate(); - processBlockForBuffer (buffer, midiMessages, *this, renderSequenceFloat, isPrepared); + processBlockForBuffer (buffer, midiMessages, *this, renderSequenceFloat.get(), isPrepared); } void AudioProcessorGraph::processBlock (AudioBuffer& buffer, MidiBuffer& midiMessages) @@ -1341,7 +1341,7 @@ void AudioProcessorGraph::processBlock (AudioBuffer& buffer, MidiBuffer& if (isPrepared.get() == 0 && MessageManager::getInstance()->isThisTheMessageThread()) handleAsyncUpdate(); - processBlockForBuffer (buffer, midiMessages, *this, renderSequenceDouble, isPrepared); + processBlockForBuffer (buffer, midiMessages, *this, renderSequenceDouble.get(), isPrepared); } //============================================================================== diff --git a/modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp b/modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp index 3a302b2e1e..953c8dbead 100644 --- a/modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp +++ b/modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp @@ -428,7 +428,7 @@ public: parameterComp.reset (new SliderParameterComponent (param)); } - addAndMakeVisible (parameterComp); + addAndMakeVisible (parameterComp.get()); setSize (400, 40); } diff --git a/modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.cpp b/modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.cpp index 83e72dc455..0074034318 100644 --- a/modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.cpp +++ b/modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.cpp @@ -90,7 +90,7 @@ struct RuleBasedTopologySource::Internal : public TopologySource::Listener, RuleBasedTopologySource::RuleBasedTopologySource (TopologySource& d) { - internal = new Internal (*this, d); + internal.reset (new Internal (*this, d)); } RuleBasedTopologySource::~RuleBasedTopologySource() diff --git a/modules/juce_core/memory/juce_SharedResourcePointer.h b/modules/juce_core/memory/juce_SharedResourcePointer.h index cb9d2fc55c..84aac94888 100644 --- a/modules/juce_core/memory/juce_SharedResourcePointer.h +++ b/modules/juce_core/memory/juce_SharedResourcePointer.h @@ -149,9 +149,9 @@ private: const SpinLock::ScopedLockType sl (holder.lock); if (++(holder.refCount) == 1) - holder.sharedInstance = new SharedObjectType(); + holder.sharedInstance.reset (new SharedObjectType()); - sharedObject = holder.sharedInstance; + sharedObject = holder.sharedInstance.get(); } // There's no need to assign to a SharedResourcePointer because every diff --git a/modules/juce_core/native/juce_win32_Threads.cpp b/modules/juce_core/native/juce_win32_Threads.cpp index 4228451863..aa826d017d 100644 --- a/modules/juce_core/native/juce_win32_Threads.cpp +++ b/modules/juce_core/native/juce_win32_Threads.cpp @@ -509,7 +509,7 @@ private: bool ChildProcess::start (const String& command, int streamFlags) { - activeProcess = new ActiveProcess (command, streamFlags); + activeProcess.reset (new ActiveProcess (command, streamFlags)); if (! activeProcess->ok) activeProcess = nullptr; diff --git a/modules/juce_core/threads/juce_Thread.h b/modules/juce_core/threads/juce_Thread.h index ccc66b0990..373dc1b06a 100644 --- a/modules/juce_core/threads/juce_Thread.h +++ b/modules/juce_core/threads/juce_Thread.h @@ -176,7 +176,7 @@ public: //============================================================================== /** Used to receive callbacks for thread exit calls */ - class Listener + class JUCE_API Listener { public: virtual ~Listener() {} diff --git a/modules/juce_dsp/frequency/juce_Convolution.cpp b/modules/juce_dsp/frequency/juce_Convolution.cpp index 3c0b60eab0..b5562d4821 100644 --- a/modules/juce_dsp/frequency/juce_Convolution.cpp +++ b/modules/juce_dsp/frequency/juce_Convolution.cpp @@ -119,7 +119,7 @@ struct ConvolutionEngine buffersImpulseSegments.add (newImpulseSegment); } - ScopedPointer FFTTempObject = new FFT (roundToInt (std::log2 (FFTSize))); + ScopedPointer FFTTempObject (new FFT (roundToInt (std::log2 (FFTSize)))); auto* channelData = info.buffer->getWritePointer (channel); @@ -829,8 +829,9 @@ private: { AudioFormatManager manager; manager.registerBasicFormats(); + ScopedPointer formatReader (manager.createReaderFor (stream)); - if (ScopedPointer formatReader = manager.createReaderFor (stream)) + if (formatReader != nullptr) { currentInfo.originalNumChannels = formatReader->numChannels > 1 ? 2 : 1; currentInfo.originalSampleRate = formatReader->sampleRate; diff --git a/modules/juce_dsp/frequency/juce_FFT.cpp b/modules/juce_dsp/frequency/juce_FFT.cpp index ea17679960..366535ac38 100644 --- a/modules/juce_dsp/frequency/juce_FFT.cpp +++ b/modules/juce_dsp/frequency/juce_FFT.cpp @@ -92,8 +92,8 @@ struct FFTFallback : public FFT::Instance FFTFallback (int order) { - configForward = new FFTConfig (1 << order, false); - configInverse = new FFTConfig (1 << order, true); + configForward.reset (new FFTConfig (1 << order, false)); + configInverse.reset (new FFTConfig (1 << order, true)); size = 1 << order; } diff --git a/modules/juce_events/native/juce_linux_Messaging.cpp b/modules/juce_events/native/juce_linux_Messaging.cpp index bd53abc534..bcf6edbd21 100644 --- a/modules/juce_events/native/juce_linux_Messaging.cpp +++ b/modules/juce_events/native/juce_linux_Messaging.cpp @@ -57,7 +57,7 @@ public: pfds[INTERNAL_QUEUE_FD].fd = getReadHandle(); pfds[INTERNAL_QUEUE_FD].events = POLLIN; - readCallback[INTERNAL_QUEUE_FD] = new LinuxEventLoop::CallbackFunction (internalQueueCb); + readCallback[INTERNAL_QUEUE_FD].reset (new LinuxEventLoop::CallbackFunction (internalQueueCb)); } ~InternalMessageQueue() @@ -96,7 +96,7 @@ public: fdCount = 2; pfds[WINDOW_SYSTEM_FD].fd = _fd; pfds[WINDOW_SYSTEM_FD].events = POLLIN; - readCallback[WINDOW_SYSTEM_FD] = _readCallback; + readCallback[WINDOW_SYSTEM_FD].reset (_readCallback); readCallback[WINDOW_SYSTEM_FD]->active = true; } diff --git a/modules/juce_events/native/juce_win32_Messaging.cpp b/modules/juce_events/native/juce_win32_Messaging.cpp index e007d6bc55..ff0b03fc56 100644 --- a/modules/juce_events/native/juce_win32_Messaging.cpp +++ b/modules/juce_events/native/juce_win32_Messaging.cpp @@ -199,7 +199,7 @@ void MessageManager::doPlatformSpecificInitialisation() OleInitialize (0); using namespace WindowsMessageHelpers; - messageWindow = new HiddenMessageWindow (messageWindowName, (WNDPROC) messageWndProc); + messageWindow.reset (new HiddenMessageWindow (messageWindowName, (WNDPROC) messageWndProc)); juce_messageWindowHandle = messageWindow->getHWND(); } diff --git a/modules/juce_graphics/native/juce_linux_Fonts.cpp b/modules/juce_graphics/native/juce_linux_Fonts.cpp index 06cd9401a6..d53aac8c9f 100644 --- a/modules/juce_graphics/native/juce_linux_Fonts.cpp +++ b/modules/juce_graphics/native/juce_linux_Fonts.cpp @@ -48,7 +48,9 @@ StringArray FTTypefaceList::getDefaultFontDirectories() if (fontDirs.isEmpty()) { - if (ScopedPointer fontsInfo = findFontsConfFile()) + ScopedPointer fontsInfo (findFontsConfFile()); + + if (fontsInfo != nullptr) { forEachXmlChildElementWithTagName (*fontsInfo, e, "dir") { diff --git a/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp b/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp index 6a5975e455..6d2eeabec0 100644 --- a/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp @@ -1176,7 +1176,9 @@ private: for (int i = 0; i < numMonitors; ++i) { - if ((screens = xrandr.getScreenResources (display, RootWindow (display, i))).get()) + screens.reset (xrandr.getScreenResources (display, RootWindow (display, i))); + + if (screens != nullptr) { for (int j = 0; j < screens->noutput; ++j) { @@ -1188,16 +1190,16 @@ private: if (! mainDisplay) mainDisplay = screens->outputs[j]; - ScopedPointer output; + ScopedPointer output (xrandr.getOutputInfo (display, screens.get(), screens->outputs[j])); - if ((output = xrandr.getOutputInfo (display, screens.get(), screens->outputs[j])).get()) + if (output != nullptr) { if (! output->crtc) continue; - ScopedPointer crtc; + ScopedPointer crtc (xrandr.getCrtcInfo (display, screens.get(), output->crtc)); - if ((crtc = xrandr.getCrtcInfo (display, screens.get(), output->crtc)).get()) + if (crtc != nullptr) { ExtendedInfo e; e.totalBounds = Rectangle (crtc->x, crtc->y, @@ -1471,9 +1473,9 @@ public: display = XWindowSystem::getInstance()->displayRef(); - atoms = new Atoms (display); - dragState = new DragState (display); - repainter = new LinuxRepaintManager (*this, display); + atoms.reset (new Atoms (display)); + dragState.reset (new DragState (display)); + repainter.reset (new LinuxRepaintManager (*this, display)); if (isAlwaysOnTop) ++numAlwaysOnTopPeers; @@ -3216,7 +3218,7 @@ private: void resetExternalDragState() { - dragState = new DragState (display); + dragState.reset (new DragState (display)); } void sendDragAndDropMessage (XClientMessageEvent& msg) diff --git a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp index 281e876111..3813f0017a 100644 --- a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp +++ b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp @@ -74,7 +74,7 @@ public: if (! selectsDirectories) { if (previewComp != nullptr) - customComponent = new CustomComponentHolder (previewComp); + customComponent.reset (new CustomComponentHolder (previewComp)); setupFilters(); } @@ -357,7 +357,7 @@ private: if (customComponent) { - Component::SafePointer custom (customComponent); + Component::SafePointer custom (customComponent.get()); RECT r, cr; GetWindowRect (hdlg, &r); diff --git a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp index 87515e116d..412fda6757 100644 --- a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp @@ -1003,7 +1003,7 @@ public: if ((windowStyleFlags & windowHasDropShadow) != 0 && ((! hasTitleBar()) || SystemStats::getOperatingSystemType() < SystemStats::WinVista)) { - shadower = component.getLookAndFeel().createDropShadowerForComponent (&component); + shadower.reset (component.getLookAndFeel().createDropShadowerForComponent (&component)); if (shadower != nullptr) shadower->setOwner (&component); @@ -3937,7 +3937,7 @@ void Desktop::setScreenSaverEnabled (const bool isEnabled) if (isEnabled) screenSaverDefeater = nullptr; else if (screenSaverDefeater == nullptr) - screenSaverDefeater = new ScreenSaverDefeater(); + screenSaverDefeater.reset (new ScreenSaverDefeater()); } bool Desktop::isScreenSaverEnabled() diff --git a/modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp b/modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp index edeb9dd33b..0d5a75e2b5 100644 --- a/modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp +++ b/modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp @@ -449,17 +449,18 @@ public: unsigned long windowHandle; ssize_t actual = read (inChannel, &windowHandle, sizeof (windowHandle)); + if (actual != sizeof (windowHandle)) { killChild(); return; } - receiver = new CommandReceiver (this, inChannel); + receiver.reset (new CommandReceiver (this, inChannel)); startThread(); - xembed = new XEmbedComponent (windowHandle); - owner.addAndMakeVisible (xembed); + xembed.reset (new XEmbedComponent (windowHandle)); + owner.addAndMakeVisible (xembed.get()); } void quit() diff --git a/modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp b/modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp index f0eec0ea44..4fe6f9a9e5 100644 --- a/modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp +++ b/modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp @@ -380,7 +380,7 @@ bool ActiveXControlComponent::createControl (const void* controlIID) if (newControl->control->DoVerb (OLEIVERB_SHOW, 0, newControl->clientSite, 0, hwnd, &rect) == S_OK) { - control = newControl; + control.reset (newControl.release()); control->controlHWND = ActiveXHelpers::getHWND (this); if (control->controlHWND != 0) diff --git a/modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp b/modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp index 5795b62fe1..b6bfb16faf 100644 --- a/modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp +++ b/modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp @@ -146,7 +146,7 @@ public: if (JuceWindowIdentifier::isJUCEWindow (hwnd)) if (ComponentPeer* peer = (ComponentPeer*) GetWindowLongPtr (hwnd, 8)) if (SystemTrayIconComponent* const iconComp = dynamic_cast (&(peer->getComponent()))) - return iconComp->pimpl; + return iconComp->pimpl.get(); return nullptr; } diff --git a/modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp b/modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp index 399a5c76a0..e9910736cb 100644 --- a/modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp +++ b/modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp @@ -246,7 +246,7 @@ WebBrowserComponent::WebBrowserComponent (const bool unloadPageWhenBrowserIsHidd unloadPageWhenBrowserIsHidden (unloadPageWhenBrowserIsHidden_) { setOpaque (true); - addAndMakeVisible (browser); + addAndMakeVisible (browser.get()); } WebBrowserComponent::~WebBrowserComponent() diff --git a/modules/juce_opengl/native/juce_OpenGL_win32.h b/modules/juce_opengl/native/juce_OpenGL_win32.h index 7485675545..c26607501c 100644 --- a/modules/juce_opengl/native/juce_OpenGL_win32.h +++ b/modules/juce_opengl/native/juce_OpenGL_win32.h @@ -39,7 +39,7 @@ public: bool /*useMultisampling*/, OpenGLVersion) { - dummyComponent = new DummyComponent (*this); + dummyComponent.reset (new DummyComponent (*this)); createNativeWindow (component); PIXELFORMATDESCRIPTOR pfd; @@ -171,7 +171,7 @@ private: void createNativeWindow (Component& component) { auto* topComp = component.getTopLevelComponent(); - nativeWindow = createNonRepaintingEmbeddedWindowsPeer (*dummyComponent, topComp->getWindowHandle()); + nativeWindow.reset (createNonRepaintingEmbeddedWindowsPeer (*dummyComponent, topComp->getWindowHandle())); if (auto* peer = topComp->getPeer()) updateWindowPosition (peer->getAreaCoveredBy (component)); diff --git a/modules/juce_osc/osc/juce_OSCBundle.cpp b/modules/juce_osc/osc/juce_OSCBundle.cpp index c5c47192e5..4f466f3454 100644 --- a/modules/juce_osc/osc/juce_OSCBundle.cpp +++ b/modules/juce_osc/osc/juce_OSCBundle.cpp @@ -58,9 +58,9 @@ OSCBundle::Element::Element (const Element& other) bundle = nullptr; if (other.isMessage()) - message = new OSCMessage (other.getMessage()); + message.reset (new OSCMessage (other.getMessage())); else - bundle = new OSCBundle (other.getBundle()); + bundle.reset (new OSCBundle (other.getBundle())); } } diff --git a/modules/juce_video/capture/juce_CameraDevice.cpp b/modules/juce_video/capture/juce_CameraDevice.cpp index facff97b9c..079fece777 100644 --- a/modules/juce_video/capture/juce_CameraDevice.cpp +++ b/modules/juce_video/capture/juce_CameraDevice.cpp @@ -94,10 +94,10 @@ CameraDevice* CameraDevice::openDevice (int index, int maxWidth, int maxHeight, bool useHighQuality) { - if (ScopedPointer d = new CameraDevice (getAvailableDevices() [index], index, - minWidth, minHeight, maxWidth, maxHeight, useHighQuality)) - if (d->pimpl->openedOk()) - return d.release(); + ScopedPointer d (new CameraDevice (getAvailableDevices() [index], index, + minWidth, minHeight, maxWidth, maxHeight, useHighQuality)); + if (d != nullptr && d->pimpl->openedOk()) + return d.release(); return nullptr; } diff --git a/modules/juce_video/native/juce_win32_Video.h b/modules/juce_video/native/juce_win32_Video.h index 7432710cf1..c4008f7350 100644 --- a/modules/juce_video/native/juce_win32_Video.h +++ b/modules/juce_video/native/juce_win32_Video.h @@ -163,8 +163,8 @@ struct VideoComponent::Pimpl : public Component Pimpl() : videoLoaded (false) { setOpaque (true); - context = new DirectShowContext (*this); - componentWatcher = new ComponentWatcher (*this); + context.reset (new DirectShowContext (*this)); + componentWatcher.reset (new ComponentWatcher (*this)); } ~Pimpl() @@ -462,7 +462,7 @@ private: { if (SystemStats::getOperatingSystemType() >= SystemStats::WinVista) { - videoRenderer = new VideoRenderers::EVR(); + videoRenderer.reset (new VideoRenderers::EVR()); hr = videoRenderer->create (graphBuilder, baseFilter, hwnd); if (FAILED (hr)) @@ -471,7 +471,7 @@ private: if (videoRenderer == nullptr) { - videoRenderer = new VideoRenderers::VMR7(); + videoRenderer.reset (new VideoRenderers::VMR7()); hr = videoRenderer->create (graphBuilder, baseFilter, hwnd); } } @@ -700,7 +700,7 @@ private: if (auto* topLevelPeer = component.getTopLevelComponent()->getPeer()) { - nativeWindow = new NativeWindow ((HWND) topLevelPeer->getNativeHandle(), this); + nativeWindow.reset (new NativeWindow ((HWND) topLevelPeer->getNativeHandle(), this)); hwnd = nativeWindow->hwnd;