1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Made a lot of ScopedPointer usage conform to the std::unique_ptr interface

This commit is contained in:
Tom Poole 2018-04-10 14:50:25 +01:00
parent 2d9fc46b4e
commit 4229dc0a4f
99 changed files with 6809 additions and 498 deletions

View file

@ -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();

View file

@ -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
}

View file

@ -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&> (mainComponent)), true);

View file

@ -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);

View file

@ -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);

View file

@ -49,25 +49,25 @@
<MODULEPATH id="juce_audio_utils" path="../../modules"/>
</MODULEPATHS>
</XCODE_IPHONE>
<VS2015 targetFolder="Builds/VisualStudio2015" extraCompilerFlags="">
<VS2017 targetFolder="Builds/VisualStudio2017">
<CONFIGURATIONS>
<CONFIGURATION name="Debug" isDebug="1" targetName="AudioPerformanceTest"/>
<CONFIGURATION name="Release" isDebug="0" targetName="AudioPerformanceTest"/>
<CONFIGURATION isDebug="1" name="Debug"/>
<CONFIGURATION isDebug="0" name="Release"/>
</CONFIGURATIONS>
<MODULEPATHS>
<MODULEPATH id="juce_core" path="../../modules"/>
<MODULEPATH id="juce_events" path="../../modules"/>
<MODULEPATH id="juce_graphics" path="../../modules"/>
<MODULEPATH id="juce_data_structures" path="../../modules"/>
<MODULEPATH id="juce_gui_basics" path="../../modules"/>
<MODULEPATH id="juce_gui_extra" path="../../modules"/>
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
<MODULEPATH id="juce_audio_processors" path="../../modules"/>
<MODULEPATH id="juce_gui_basics" path="../../modules"/>
<MODULEPATH id="juce_graphics" path="../../modules"/>
<MODULEPATH id="juce_events" path="../../modules"/>
<MODULEPATH id="juce_data_structures" path="../../modules"/>
<MODULEPATH id="juce_core" path="../../modules"/>
<MODULEPATH id="juce_audio_utils" path="../../modules"/>
<MODULEPATH id="juce_audio_processors" path="../../modules"/>
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
</MODULEPATHS>
</VS2015>
</VS2017>
<LINUX_MAKE targetFolder="Builds/LinuxMakefile" extraCompilerFlags="">
<CONFIGURATIONS>
<CONFIGURATION name="Debug" libraryPath="/usr/X11R6/lib/" isDebug="1" targetName="AudioPerformanceTest"/>

View file

@ -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

View file

@ -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 <windows.h>
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

View file

@ -43,7 +43,7 @@ public:
//==============================================================================
void initialise (const String&) override
{
mainWindow = new MainWindow (getApplicationName());
mainWindow.reset (new MainWindow (getApplicationName()));
}
void shutdown() override

View file

@ -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);

View file

@ -48,7 +48,7 @@ private:
Label title;
ScopedPointer<InputOutputConfig> 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;

View file

@ -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();

View file

@ -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<int> mousePos)
{
menu = new PopupMenu;
menu.reset (new PopupMenu);
if (auto* mainWindow = findParentComponentOfClass<MainHostWindow>())
{
@ -842,15 +842,15 @@ void GraphEditorPanel::beginConnectorDrag (AudioProcessorGraph::NodeAndChannel s
{
auto* c = dynamic_cast<ConnectorComponent*> (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;
}

View file

@ -87,7 +87,7 @@ MainHostWindow::MainHostWindow()
ScopedPointer<XmlElement> 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<XmlElement> audioState (safeThis->deviceManager.createStateXml());
getAppProperties().getUserSettings()->setValue ("audioDeviceState", audioState);
getAppProperties().getUserSettings()->setValue ("audioDeviceState", audioState.get());
getAppProperties().getUserSettings()->saveIfNeeded();
if (safeThis->graphHolder != nullptr)

View file

@ -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)

View file

@ -85,7 +85,7 @@ struct BackgroundLogo : public AnimatedContent
)blahblah";
ScopedPointer<XmlElement> 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<float> 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<float> (textBlockWidth * scale, textBlockWidth * scale).withCentre (centre));
auto middle = canvas.clients[clientIndex % canvas.clients.size()].centre * scale;
as.draw (g, Rectangle<float> (textBlockWidth * scale, textBlockWidth * scale).withCentre (middle));
}
void tick()

View file

@ -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.";

View file

@ -64,7 +64,8 @@ public:
if (showCheckbox)
{
addAndMakeVisible (shareApplicationUsageDataToggle = new ToggleButton());
shareApplicationUsageDataToggle.reset (new ToggleButton());
addAndMakeVisible (shareApplicationUsageDataToggle.get());
auto* controller = ProjucerApplication::getApp().licenseController.get();

View file

@ -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);

View file

@ -163,11 +163,13 @@ public:
dragOver = false;
repaint();
if (ScopedPointer<XmlElement> e = XmlDocument::parse (File (files[0])))
ScopedPointer<XmlElement> 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);
}
}

View file

@ -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)
{

View file

@ -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."));

View file

@ -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)

View file

@ -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)));
}
}

View file

@ -384,7 +384,7 @@ private:
jucerComp->setFilename (jucerComponentFile);
jucerComp->setToInitialSize();
addAndMakeVisible (jucerComp);
addAndMakeVisible (jucerComp.get());
}
}
else
@ -698,7 +698,7 @@ private:
: ComponentUndoableAction<TabbedComponent> (comp, l),
indexToRemove (indexToRemove_)
{
previousState = getTabState (comp, indexToRemove);
previousState.reset (getTabState (comp, indexToRemove));
}
bool perform()

View file

@ -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<int> (borderThickness));

View file

@ -65,7 +65,7 @@ void PaintElementGroup::groupSelected (PaintRoutine* routine)
{
ScopedPointer<XmlElement> 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)

View file

@ -36,7 +36,7 @@ public:
: PropertyComponent (name)
{
colourPropEditor.reset (new ColourPropEditorComponent (this, canReset));
addAndMakeVisible (colourPropEditor);
addAndMakeVisible (colourPropEditor.get());
}
virtual void setColour (Colour newColour) = 0;

View file

@ -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

View file

@ -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<int> (borderThickness));

View file

@ -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<XmlElement> 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<XmlElement> doc = XmlDocument::parse (SystemClipboard::getTextFromClipboard()))
ScopedPointer<XmlElement> doc (XmlDocument::parse (SystemClipboard::getTextFromClipboard()));
if (doc != nullptr)
{
if (doc->hasTagName (ComponentLayout::clipboardXmlTag))
{

View file

@ -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);

View file

@ -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();

View file

@ -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<XmlElement> xml (type->createXmlFor (c, this));
c.reset();
c = addComponentFromXml (*xml, true);
ScopedPointer<XmlElement> 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<Component> 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();
}

View file

@ -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<XmlElement> xml = pullMetaDataFromCppFile (f.loadFileAsString()))
{
ScopedPointer<XmlElement> xml (pullMetaDataFromCppFile (f.loadFileAsString()));
if (xml != nullptr)
return xml->hasTagName (jucerCompXmlTag);
}
return false;
}
@ -666,10 +670,10 @@ static JucerDocument* createDocument (SourceCodeDocument* cpp)
ScopedPointer<JucerDocument> 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<JucerDocument> jucerDoc = JucerDocument::createForCppFile (getProject(), getFile()))
ScopedPointer<JucerDocument> 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<SourceCodeDocument*> (odm.openFile (nullptr, headerFile)))
{
if (ScopedPointer<JucerDocument> jucerDoc = new ComponentDocument (cpp))
ScopedPointer<JucerDocument> jucerDoc (new ComponentDocument (cpp));
if (jucerDoc != nullptr)
{
jucerDoc->setClassName (newFile.getFileNameWithoutExtension());

View file

@ -108,13 +108,13 @@ PaintElement* createElementForXml (const XmlElement* const e, PaintRoutine* cons
ScopedPointer<PaintElement> 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();

View file

@ -169,7 +169,7 @@ public:
: PaintElementUndoableAction <PaintElement> (element),
oldIndex (-1)
{
xml = element->createXml();
xml.reset (element->createXml());
oldIndex = routine.indexOfElement (element);
}

View file

@ -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<XmlElement> licenseXml = props.getXmlValue ("license");
ScopedPointer<XmlElement> 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);

View file

@ -165,9 +165,9 @@ struct LicenseThread : NetWorkerThread
jassert (stateToUpdate.authToken.isNotEmpty());
auto accessTokenHeader = "x-access-token: " + stateToUpdate.authToken;
ScopedPointer<WebInputStream> shared (getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user"), false));
if (ScopedPointer<WebInputStream> 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<WebInputStream> shared = getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user/licences?search_internal_id=com.roli.projucer&version=5"),
false);
ScopedPointer<WebInputStream> 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<WebInputStream> shared = getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user/products").withPOSTData (postData),
true);
ScopedPointer<WebInputStream> 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<WebInputStream> shared
= getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user/products/redeem").withPOSTData (postData), true);
ScopedPointer<WebInputStream> 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<WebInputStream> shared = getSharedWebInputStream (URL (avatarURL), false))
ScopedPointer<WebInputStream> shared (getSharedWebInputStream (URL (avatarURL), false));
if (shared != nullptr)
{
MemoryBlock mb;
shared->readIntoMemoryBlock (mb);

View file

@ -137,9 +137,8 @@ private:
}
const uint32 backgroundColour = 0xff414141;
ScopedPointer<Drawable> juceLogo
= Drawable::createFromImageData (BinaryData::jucelogowithtext_svg,
BinaryData::jucelogowithtext_svgSize);
ScopedPointer<Drawable> juceLogo { Drawable::createFromImageData (BinaryData::jucelogowithtext_svg,
BinaryData::jucelogowithtext_svgSize) };
IconButton avatarButton;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Header)

View file

@ -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();
}

View file

@ -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<ServerIPC> ipc = new ServerIPC (info);
ScopedPointer<ServerIPC> ipc (new ServerIPC (info));
if (ipc->dll.isLoaded())
{

View file

@ -98,12 +98,11 @@ private:
return "WINDOWS";
#elif JUCE_LINUX
return "LINUX";
#endif
#else
// unknown platform?!
jassertfalse;
return {};
#endif
}
//==============================================================================

View file

@ -88,9 +88,9 @@ Result DownloadCompileEngineThread::download (MemoryBlock& dest)
StringPairArray responseHeaders;
URL url = getDownloadUrl();
ScopedPointer<InputStream> in = url.createInputStream (false, nullptr, nullptr,
String(), timeoutMs, &responseHeaders,
&statusCode, 0);
ScopedPointer<InputStream> in (url.createInputStream (false, nullptr, nullptr,
String(), timeoutMs, &responseHeaders,
&statusCode, 0));
if (in == nullptr || statusCode != 200)
return Result::fail ("Download error: cannot establish connection");

View file

@ -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<ProjectContentComponent>())
@ -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<ProjectContentComponent>())

View file

@ -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()

View file

@ -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");

View file

@ -39,7 +39,7 @@ struct LogoComponent : public Component
LogoComponent()
{
ScopedPointer<XmlElement> 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<XmlElement> 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);

View file

@ -1819,7 +1819,7 @@ Array<var> 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)
{

View file

@ -1332,7 +1332,7 @@ private:
customStringsXmlContent << cfg.getCustomStringsXml();
customStringsXmlContent << "\n</resources>";
ScopedPointer<XmlElement> strings = XmlDocument::parse (customStringsXmlContent);
ScopedPointer<XmlElement> strings (XmlDocument::parse (customStringsXmlContent));
String dir = cfg.isDebug() ? "debug" : "release";
String subPath = "app/src/" + dir + "/res/values/string.xml";

View file

@ -137,7 +137,7 @@ public:
for (auto& exporterName : getExporterNames())
{
ScopedPointer<ProjectExporter> exporter = createNewExporter (getProject(), exporterName);
ScopedPointer<ProjectExporter> 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<XmlElement> plist = infoPlistData.getDocumentElement();
ScopedPointer<XmlElement> plist (infoPlistData.getDocumentElement());
if (plist != nullptr)
{

View file

@ -1280,7 +1280,7 @@ public:
ScopedPointer<XmlElement> 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)
{

View file

@ -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)

View file

@ -699,7 +699,7 @@ private:
JobStatus runJob() override
{
owner.saveExporter (exporter, modules);
owner.saveExporter (exporter.get(), modules);
return jobHasFinished;
}

View file

@ -114,7 +114,7 @@ void StoredSettings::updateKeyMappings()
const ScopedPointer<XmlElement> keys (commandManager->getKeyMappings()->createXml (true));
if (keys != nullptr)
getGlobalProperties().setValue ("keyMappings", keys);
getGlobalProperties().setValue ("keyMappings", keys.get());
}
}

View file

@ -135,7 +135,7 @@ Result PIPGenerator::createJucerFile()
auto outputFile = outputDirectory.getChildFile (metadata[Ids::name].toString() + ".jucer");
ScopedPointer<XmlElement> xml = root.createXml();
ScopedPointer<XmlElement> xml (root.createXml());
if (xml->writeToFile (outputFile, {}))
return Result::ok();

View file

@ -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

View file

@ -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;

View file

@ -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();

View file

@ -421,10 +421,11 @@ public:
}
auto projectDir = fileBrowser.getSelectedFile (0);
ScopedPointer<Project> project (wizard->runWizard (*this, projectName.getText(),
projectDir,
modulesPathBox.isUsingGlobalPaths));
if (ScopedPointer<Project> project = wizard->runWizard (*this, projectName.getText(),
projectDir,
modulesPathBox.isUsingGlobalPaths))
if (project != nullptr)
{
mw->setProject (project.release());
getAppSettings().lastWizardFolder = projectDir.getParentDirectory();

View file

@ -42,13 +42,13 @@ public:
ScopedPointer<XmlElement> svg (XmlDocument::parse (thumbSvg));
jassert (svg != nullptr);
thumb = Drawable::createFromSVG (*svg);
thumb.reset (Drawable::createFromSVG (*svg));
// svg for thumbnail background highlight
ScopedPointer<XmlElement> backSvg (XmlDocument::parse (BinaryData::wizard_Highlight_svg));
jassert (backSvg != nullptr);
hoverBackground = Drawable::createFromSVG (*backSvg);
hoverBackground.reset (Drawable::createFromSVG (*backSvg));
name = buttonName;

View file

@ -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())
{

View file

@ -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();

View file

@ -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&)
{

View file

@ -731,7 +731,7 @@ public:
void updateFormatWithType (SourceType*) noexcept
{
typedef AudioData::Pointer<AudioData::Float32, AudioData::NativeEndian, AudioData::NonInterleaved, AudioData::NonConst> NativeType;
converter = new AudioData::ConverterInstance<AudioData::Pointer<SourceType, AudioData::LittleEndian, AudioData::Interleaved, AudioData::Const>, NativeType> (actualNumChannels, 1);
converter.reset (new AudioData::ConverterInstance<AudioData::Pointer<SourceType, AudioData::LittleEndian, AudioData::Interleaved, AudioData::Const>, NativeType> (actualNumChannels, 1));
}
void updateFormat (bool isFloat) override
@ -888,7 +888,7 @@ public:
void updateFormatWithType (DestType*)
{
typedef AudioData::Pointer<AudioData::Float32, AudioData::NativeEndian, AudioData::NonInterleaved, AudioData::Const> NativeType;
converter = new AudioData::ConverterInstance<NativeType, AudioData::Pointer<DestType, AudioData::LittleEndian, AudioData::Interleaved, AudioData::NonConst>> (1, actualNumChannels);
converter.reset (new AudioData::ConverterInstance<NativeType, AudioData::Pointer<DestType, AudioData::LittleEndian, AudioData::Interleaved, AudioData::NonConst>> (1, actualNumChannels));
}
void updateFormat (bool isFloat) override
@ -1024,8 +1024,8 @@ public:
}
else
{
WASAPIDeviceBase* d = inputDevice != nullptr ? static_cast<WASAPIDeviceBase*> (inputDevice)
: static_cast<WASAPIDeviceBase*> (outputDevice);
WASAPIDeviceBase* d = inputDevice != nullptr ? static_cast<WASAPIDeviceBase*> (inputDevice.get())
: static_cast<WASAPIDeviceBase*> (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<const float**> (outputBuffers), numOutputBuffers, bufferSize, inputDevice, *this);
outputDevice->copyBuffers (const_cast<const float**> (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;

View file

@ -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<JuceAAX_Processor*> (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<AudioProcessor> plugin = createPluginFilterOfType (AudioProcessor::wrapperType_AAX);
ScopedPointer<AudioProcessor> 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<const AAX_IFeatureInfo> 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);

View file

@ -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<size_t> (AudioUnitHelpers::getBusCount (juceFilter, true)));
pulledSucceeded.calloc (static_cast<size_t> (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<AudioProcessor*> (juceFilter);
((void**) outData)[0] = (void*) static_cast<AudioProcessor*> (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<int> (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<UInt32> (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<int> (GetScope(kAudioUnitScope_Input). GetNumberOfElements());
const int numOutputElements = static_cast<int> (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);

View file

@ -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<NSNumber*> alloc] init];
channelCapabilities.reset ([[NSMutableArray<NSNumber*> 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<int> ([factoryPresets count]);
const int n = static_cast<int> ([factoryPresets.get() count]);
const int idx = static_cast<int> (getAudioProcessor().getCurrentProgram());
if (idx < n)
return [factoryPresets objectAtIndex:static_cast<unsigned int> (idx)];
return [factoryPresets.get() objectAtIndex:static_cast<unsigned int> (idx)];
return nullptr;
}
void setCurrentPreset(AUAudioUnitPreset* preset) override
{
const int n = static_cast<int> ([factoryPresets count]);
const int n = static_cast<int> ([factoryPresets.get() count]);
const int idx = static_cast<int> ([preset number]);
if (isPositiveAndBelow (idx, n))
@ -567,7 +566,7 @@ public:
NSArray<AUAudioUnitPreset*>* getFactoryPresets() override
{
return factoryPresets;
return factoryPresets.get();
}
NSDictionary<NSString*, id>* getFullState() override
@ -637,17 +636,17 @@ public:
AUParameterTree* getParameterTree() override
{
return paramTree;
return paramTree.get();
}
NSArray<NSNumber*>* parametersForOverviewWithCount (int count) override
{
const int n = static_cast<int> ([overviewParams count]);
const int n = static_cast<int> ([overviewParams.get() count]);
if (count >= n)
return overviewParams;
return overviewParams.get();
NSMutableArray<NSNumber*>* retval = [[NSMutableArray<NSNumber*>alloc] initWithArray: overviewParams];
NSMutableArray<NSNumber*>* retval = [[NSMutableArray<NSNumber*>alloc] initWithArray: overviewParams.get()];
[retval removeObjectsInRange: NSMakeRange (static_cast<unsigned int> (count), static_cast<unsigned int> (n - count))];
return [retval autorelease];
@ -666,9 +665,9 @@ public:
}
//==============================================================================
AUAudioUnitBusArray* getInputBusses() override { return inputBusses; }
AUAudioUnitBusArray* getOutputBusses() override { return outputBusses; }
NSArray<NSNumber*>* getChannelCapabilities() override { return channelCapabilities; }
AUAudioUnitBusArray* getInputBusses() override { return inputBusses.get(); }
AUAudioUnitBusArray* getOutputBusses() override { return outputBusses.get(); }
NSArray<NSNumber*>* getChannelCapabilities() override { return channelCapabilities.get(); }
bool shouldChangeToFormat (AVAudioFormat* format, AUAudioUnitBus* auBus) override
{
@ -858,7 +857,7 @@ public:
audioBuffer.prepare (totalInChannels, totalOutChannels, static_cast<int> (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<int> (maxFrames));
processor.prepareToPlay (sampleRate, static_cast<int> (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<NSMutableArray<AUAudioUnitBus*>> array = [[NSMutableArray<AUAudioUnitBus*> alloc] init];
ScopedPointer<NSMutableArray<AUAudioUnitBus*>> array ([[NSMutableArray<AUAudioUnitBus*> alloc] init]);
AudioProcessor& processor = getAudioProcessor();
const int n = AudioUnitHelpers::getBusCount (&processor, isInput);
@ -1142,19 +1141,19 @@ private:
ScopedPointer<AUAudioUnitBus> audioUnitBus;
{
ScopedPointer<AVAudioFormat> defaultFormat = [[AVAudioFormat alloc] initStandardFormatWithSampleRate: kDefaultSampleRate
channels: static_cast<AVAudioChannelCount> (processor.getChannelCountOfBus (isInput, i))];
ScopedPointer<AVAudioFormat> defaultFormat ([[AVAudioFormat alloc] initStandardFormatWithSampleRate: kDefaultSampleRate
channels: static_cast<AVAudioChannelCount> (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<NSMutableArray<AUParameterNode*>> params = [[NSMutableArray<AUParameterNode*> alloc] init];
ScopedPointer<NSMutableArray<AUParameterNode*>> params ([[NSMutableArray<AUParameterNode*> alloc] init]);
overviewParams = [[NSMutableArray<NSNumber*> alloc] init];
overviewParams.reset ([[NSMutableArray<NSNumber*> 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<AUParameter> 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<AUParameter> 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<AUAudioUnitPreset*> alloc] init];
factoryPresets.reset ([[NSMutableArray<AUAudioUnitPreset*> alloc] init]);
const int n = getAudioProcessor().getNumPrograms();
@ -1313,11 +1312,11 @@ private:
{
String name = getAudioProcessor().getProgramName (idx);
ScopedPointer<AUAudioUnitPreset> preset = [[AUAudioUnitPreset alloc] init];
[preset setName: juceStringToNS (name)];
[preset setNumber: static_cast<NSInteger> (idx)];
ScopedPointer<AUAudioUnitPreset> preset ([[AUAudioUnitPreset alloc] init]);
[preset.get() setName: juceStringToNS (name)];
[preset.get() setNumber: static_cast<NSInteger> (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<unsigned int> (busIdx)],
busBuffers.add (new BusBuffer ([(isInput ? inputBusses.get() : outputBusses.get()) objectAtIndexedSubscript: static_cast<unsigned int> (busIdx)],
static_cast<int> (maxFrames)));
}
@ -1848,7 +1847,7 @@ private:
ScopedPointer<JuceAUViewController> 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(); }

View file

@ -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);

View file

@ -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<iOSAudioIODevice*> (deviceManager.getCurrentAudioDevice()))
@ -297,7 +297,7 @@ public:
{
ScopedPointer<XmlElement> 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<StandalonePluginHolder> 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;
}
}

View file

@ -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);

View file

@ -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<int>::leftTopRightBottom (rectToCheck->left, rectToCheck->top,
rectToCheck->right, rectToCheck->bottom));
auto juceRect = editor->getLocalArea (component.get(), Rectangle<int>::leftTopRightBottom (rectToCheck->left, rectToCheck->top,
rectToCheck->right, rectToCheck->bottom));
if (auto* constrainer = editor->getConstrainer())
{
Rectangle<int> 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<int> getSizeToContainChild()
{
if (pluginEditor != nullptr)
return getLocalArea (pluginEditor, pluginEditor->getLocalBounds());
return getLocalArea (pluginEditor.get(), pluginEditor->getLocalBounds());
return {};
}

View file

@ -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()

View file

@ -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;

View file

@ -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
}

View file

@ -1333,7 +1333,7 @@ void AudioProcessorGraph::processBlock (AudioBuffer<float>& buffer, MidiBuffer&
if (isPrepared.get() == 0 && MessageManager::getInstance()->isThisTheMessageThread())
handleAsyncUpdate();
processBlockForBuffer<float> (buffer, midiMessages, *this, renderSequenceFloat, isPrepared);
processBlockForBuffer<float> (buffer, midiMessages, *this, renderSequenceFloat.get(), isPrepared);
}
void AudioProcessorGraph::processBlock (AudioBuffer<double>& buffer, MidiBuffer& midiMessages)
@ -1341,7 +1341,7 @@ void AudioProcessorGraph::processBlock (AudioBuffer<double>& buffer, MidiBuffer&
if (isPrepared.get() == 0 && MessageManager::getInstance()->isThisTheMessageThread())
handleAsyncUpdate();
processBlockForBuffer<double> (buffer, midiMessages, *this, renderSequenceDouble, isPrepared);
processBlockForBuffer<double> (buffer, midiMessages, *this, renderSequenceDouble.get(), isPrepared);
}
//==============================================================================

View file

@ -428,7 +428,7 @@ public:
parameterComp.reset (new SliderParameterComponent (param));
}
addAndMakeVisible (parameterComp);
addAndMakeVisible (parameterComp.get());
setSize (400, 40);
}

View file

@ -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()

View file

@ -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

View file

@ -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;

View file

@ -176,7 +176,7 @@ public:
//==============================================================================
/** Used to receive callbacks for thread exit calls */
class Listener
class JUCE_API Listener
{
public:
virtual ~Listener() {}

View file

@ -119,7 +119,7 @@ struct ConvolutionEngine
buffersImpulseSegments.add (newImpulseSegment);
}
ScopedPointer<FFT> FFTTempObject = new FFT (roundToInt (std::log2 (FFTSize)));
ScopedPointer<FFT> FFTTempObject (new FFT (roundToInt (std::log2 (FFTSize))));
auto* channelData = info.buffer->getWritePointer (channel);
@ -829,8 +829,9 @@ private:
{
AudioFormatManager manager;
manager.registerBasicFormats();
ScopedPointer<AudioFormatReader> formatReader (manager.createReaderFor (stream));
if (ScopedPointer<AudioFormatReader> formatReader = manager.createReaderFor (stream))
if (formatReader != nullptr)
{
currentInfo.originalNumChannels = formatReader->numChannels > 1 ? 2 : 1;
currentInfo.originalSampleRate = formatReader->sampleRate;

View file

@ -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;
}

View file

@ -57,7 +57,7 @@ public:
pfds[INTERNAL_QUEUE_FD].fd = getReadHandle();
pfds[INTERNAL_QUEUE_FD].events = POLLIN;
readCallback[INTERNAL_QUEUE_FD] = new LinuxEventLoop::CallbackFunction<decltype(internalQueueCb)> (internalQueueCb);
readCallback[INTERNAL_QUEUE_FD].reset (new LinuxEventLoop::CallbackFunction<decltype(internalQueueCb)> (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;
}

View file

@ -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();
}

View file

@ -48,7 +48,9 @@ StringArray FTTypefaceList::getDefaultFontDirectories()
if (fontDirs.isEmpty())
{
if (ScopedPointer<XmlElement> fontsInfo = findFontsConfFile())
ScopedPointer<XmlElement> fontsInfo (findFontsConfFile());
if (fontsInfo != nullptr)
{
forEachXmlChildElementWithTagName (*fontsInfo, e, "dir")
{

View file

@ -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<XRROutputInfo> output;
ScopedPointer<XRROutputInfo> 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<XRRCrtcInfo> crtc;
ScopedPointer<XRRCrtcInfo> 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<int> (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)

View file

@ -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<Component> custom (customComponent);
Component::SafePointer<Component> custom (customComponent.get());
RECT r, cr;
GetWindowRect (hdlg, &r);

View file

@ -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()

View file

@ -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()

View file

@ -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)

View file

@ -146,7 +146,7 @@ public:
if (JuceWindowIdentifier::isJUCEWindow (hwnd))
if (ComponentPeer* peer = (ComponentPeer*) GetWindowLongPtr (hwnd, 8))
if (SystemTrayIconComponent* const iconComp = dynamic_cast<SystemTrayIconComponent*> (&(peer->getComponent())))
return iconComp->pimpl;
return iconComp->pimpl.get();
return nullptr;
}

View file

@ -246,7 +246,7 @@ WebBrowserComponent::WebBrowserComponent (const bool unloadPageWhenBrowserIsHidd
unloadPageWhenBrowserIsHidden (unloadPageWhenBrowserIsHidden_)
{
setOpaque (true);
addAndMakeVisible (browser);
addAndMakeVisible (browser.get());
}
WebBrowserComponent::~WebBrowserComponent()

View file

@ -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));

View file

@ -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()));
}
}

View file

@ -94,10 +94,10 @@ CameraDevice* CameraDevice::openDevice (int index,
int maxWidth, int maxHeight,
bool useHighQuality)
{
if (ScopedPointer<CameraDevice> d = new CameraDevice (getAvailableDevices() [index], index,
minWidth, minHeight, maxWidth, maxHeight, useHighQuality))
if (d->pimpl->openedOk())
return d.release();
ScopedPointer<CameraDevice> d (new CameraDevice (getAvailableDevices() [index], index,
minWidth, minHeight, maxWidth, maxHeight, useHighQuality));
if (d != nullptr && d->pimpl->openedOk())
return d.release();
return nullptr;
}

View file

@ -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;