Browse Source

Fix some LLVM 17 compiler warnings

v7.0.9
Tom Poole 2 years ago
parent
commit
2fb19ffd8f
100 changed files with 570 additions and 573 deletions
  1. +2
    -2
      examples/Assets/AudioLiveScrollingDisplay.h
  2. +18
    -18
      examples/Assets/DSPDemos_Common.h
  3. +4
    -7
      examples/Assets/DemoUtilities.h
  4. +1
    -1
      examples/Audio/AudioAppDemo.h
  5. +3
    -3
      examples/Audio/AudioLatencyDemo.h
  6. +13
    -13
      examples/Audio/AudioPlaybackDemo.h
  7. +4
    -4
      examples/Audio/AudioRecordingDemo.h
  8. +2
    -2
      examples/Audio/AudioSettingsDemo.h
  9. +5
    -5
      examples/Audio/AudioSynthesiserDemo.h
  10. +8
    -8
      examples/Audio/MPEDemo.h
  11. +5
    -5
      examples/Audio/MidiDemo.h
  12. +3
    -3
      examples/Audio/PluckedStringsDemo.h
  13. +2
    -2
      examples/Audio/SimpleFFTDemo.h
  14. +1
    -1
      examples/CMake/AudioPlugin/PluginEditor.h
  15. +1
    -1
      examples/CMake/AudioPlugin/PluginProcessor.h
  16. +1
    -1
      examples/CMake/GuiApp/MainComponent.h
  17. +1
    -1
      examples/DSP/ConvolutionDemo.h
  18. +1
    -1
      examples/DSP/FIRFilterDemo.h
  19. +1
    -1
      examples/DSP/GainDemo.h
  20. +1
    -1
      examples/DSP/IIRFilterDemo.h
  21. +1
    -1
      examples/DSP/OscillatorDemo.h
  22. +1
    -1
      examples/DSP/OverdriveDemo.h
  23. +1
    -1
      examples/DSP/SIMDRegisterDemo.h
  24. +1
    -1
      examples/DSP/StateVariableFilterDemo.h
  25. +1
    -1
      examples/DSP/WaveShaperTanhDemo.h
  26. +4
    -4
      examples/DemoRunner/Source/Main.cpp
  27. +24
    -24
      examples/GUI/AccessibilityDemo.h
  28. +1
    -1
      examples/GUI/AnimationAppDemo.h
  29. +4
    -4
      examples/GUI/AnimationDemo.h
  30. +2
    -2
      examples/GUI/BouncingBallWavetableDemo.h
  31. +1
    -1
      examples/GUI/CameraDemo.h
  32. +2
    -2
      examples/GUI/CodeEditorDemo.h
  33. +3
    -3
      examples/GUI/ComponentDemo.h
  34. +1
    -1
      examples/GUI/ComponentTransformsDemo.h
  35. +2
    -2
      examples/GUI/DialogsDemo.h
  36. +2
    -2
      examples/GUI/FlexBoxDemo.h
  37. +3
    -3
      examples/GUI/FontsDemo.h
  38. +14
    -14
      examples/GUI/GraphicsDemo.h
  39. +1
    -1
      examples/GUI/GridDemo.h
  40. +1
    -1
      examples/GUI/HelloWorldDemo.h
  41. +2
    -2
      examples/GUI/ImagesDemo.h
  42. +3
    -3
      examples/GUI/KeyMappingsDemo.h
  43. +4
    -4
      examples/GUI/LookAndFeelDemo.h
  44. +5
    -5
      examples/GUI/MDIDemo.h
  45. +8
    -8
      examples/GUI/MenusDemo.h
  46. +1
    -1
      examples/GUI/MultiTouchDemo.h
  47. +1
    -1
      examples/GUI/OpenGLAppDemo.h
  48. +1
    -1
      examples/GUI/OpenGLDemo.h
  49. +3
    -3
      examples/GUI/OpenGLDemo2D.h
  50. +4
    -4
      examples/GUI/PropertiesDemo.h
  51. +8
    -8
      examples/GUI/VideoDemo.h
  52. +2
    -2
      examples/GUI/WebBrowserDemo.h
  53. +17
    -17
      examples/GUI/WidgetsDemo.h
  54. +7
    -7
      examples/GUI/WindowsDemo.h
  55. +50
    -50
      examples/Plugins/ARAPluginDemo.h
  56. +4
    -4
      examples/Plugins/AUv3SynthPluginDemo.h
  57. +1
    -1
      examples/Plugins/ArpeggiatorPluginDemo.h
  58. +6
    -6
      examples/Plugins/AudioPluginDemo.h
  59. +38
    -38
      examples/Plugins/DSPModulePluginDemo.h
  60. +1
    -1
      examples/Plugins/GainPluginDemo.h
  61. +24
    -24
      examples/Plugins/HostPluginDemo.h
  62. +6
    -6
      examples/Plugins/MidiLoggerPluginDemo.h
  63. +1
    -1
      examples/Plugins/MultiOutSynthPluginDemo.h
  64. +1
    -1
      examples/Plugins/NoiseGatePluginDemo.h
  65. +7
    -7
      examples/Plugins/ReaperEmbeddedViewPluginDemo.h
  66. +41
    -41
      examples/Plugins/SamplerPluginDemo.h
  67. +7
    -7
      examples/Plugins/SurroundPluginDemo.h
  68. +2
    -2
      examples/Utilities/AnalyticsCollectionDemo.h
  69. +6
    -6
      examples/Utilities/Box2DDemo.h
  70. +8
    -8
      examples/Utilities/ChildProcessDemo.h
  71. +3
    -3
      examples/Utilities/CryptographyDemo.h
  72. +7
    -7
      examples/Utilities/InAppPurchasesDemo.h
  73. +4
    -4
      examples/Utilities/JavaScriptDemo.h
  74. +2
    -2
      examples/Utilities/LiveConstantDemo.h
  75. +7
    -7
      examples/Utilities/MultithreadingDemo.h
  76. +2
    -2
      examples/Utilities/NetworkingDemo.h
  77. +10
    -10
      examples/Utilities/OSCDemo.h
  78. +8
    -8
      examples/Utilities/PushNotificationsDemo.h
  79. +1
    -1
      examples/Utilities/SystemInfoDemo.h
  80. +7
    -7
      examples/Utilities/TimersAndEventsDemo.h
  81. +4
    -4
      examples/Utilities/UnitTestsDemo.h
  82. +5
    -5
      examples/Utilities/ValueTreesDemo.h
  83. +4
    -4
      examples/Utilities/XMLandJSONDemo.h
  84. +2
    -2
      extras/AudioPerformanceTest/Source/MainComponent.h
  85. +4
    -4
      extras/AudioPluginHost/Source/HostStartup.cpp
  86. +15
    -15
      extras/AudioPluginHost/Source/Plugins/ARAPlugin.h
  87. +4
    -4
      extras/AudioPluginHost/Source/Plugins/IOConfigurationWindow.cpp
  88. +1
    -1
      extras/AudioPluginHost/Source/Plugins/IOConfigurationWindow.h
  89. +3
    -3
      extras/AudioPluginHost/Source/Plugins/InternalPlugins.cpp
  90. +1
    -1
      extras/AudioPluginHost/Source/Plugins/InternalPlugins.h
  91. +3
    -3
      extras/AudioPluginHost/Source/Plugins/PluginGraph.h
  92. +15
    -15
      extras/AudioPluginHost/Source/UI/GraphEditorPanel.cpp
  93. +7
    -7
      extras/AudioPluginHost/Source/UI/GraphEditorPanel.h
  94. +5
    -5
      extras/AudioPluginHost/Source/UI/MainHostWindow.cpp
  95. +5
    -5
      extras/AudioPluginHost/Source/UI/MainHostWindow.h
  96. +7
    -7
      extras/AudioPluginHost/Source/UI/PluginWindow.h
  97. +2
    -2
      extras/Build/juceaide/Main.cpp
  98. +6
    -6
      extras/NetworkGraphicsDemo/Source/ClientComponent.h
  99. +8
    -8
      extras/NetworkGraphicsDemo/Source/Demos.h
  100. +2
    -2
      extras/NetworkGraphicsDemo/Source/Main.cpp

+ 2
- 2
examples/Assets/AudioLiveScrollingDisplay.h View File

@@ -24,8 +24,8 @@
/* This component scrolls a continuous waveform showing the audio that's
coming into whatever audio inputs this object is connected to.
*/
class LiveScrollingAudioDisplay : public AudioVisualiserComponent,
public AudioIODeviceCallback
class LiveScrollingAudioDisplay final : public AudioVisualiserComponent,
public AudioIODeviceCallback
{
public:
LiveScrollingAudioDisplay() : AudioVisualiserComponent (1)


+ 18
- 18
examples/Assets/DSPDemos_Common.h View File

@@ -38,7 +38,7 @@ struct DSPDemoParameterBase : public ChangeBroadcaster
};
//==============================================================================
struct SliderParameter : public DSPDemoParameterBase
struct SliderParameter final : public DSPDemoParameterBase
{
SliderParameter (Range<double> range, double skew, double initialValue,
const String& labelName, const String& suffix = {})
@@ -66,7 +66,7 @@ private:
};
//==============================================================================
struct ChoiceParameter : public DSPDemoParameterBase
struct ChoiceParameter final : public DSPDemoParameterBase
{
ChoiceParameter (const StringArray& options, int initialId, const String& labelName)
: DSPDemoParameterBase (labelName)
@@ -89,11 +89,11 @@ private:
};
//==============================================================================
class AudioThumbnailComponent : public Component,
public FileDragAndDropTarget,
public ChangeBroadcaster,
private ChangeListener,
private Timer
class AudioThumbnailComponent final : public Component,
public FileDragAndDropTarget,
public ChangeBroadcaster,
private ChangeListener,
private Timer
{
public:
AudioThumbnailComponent (AudioDeviceManager& adm, AudioFormatManager& afm)
@@ -217,7 +217,7 @@ private:
};
//==============================================================================
class DemoParametersComponent : public Component
class DemoParametersComponent final : public Component
{
public:
DemoParametersComponent (const std::vector<DSPDemoParameterBase*>& demoParams)
@@ -270,9 +270,9 @@ private:
//==============================================================================
template <class DemoType>
struct DSPDemo : public AudioSource,
public ProcessorWrapper<DemoType>,
private ChangeListener
struct DSPDemo final : public AudioSource,
public ProcessorWrapper<DemoType>,
private ChangeListener
{
DSPDemo (AudioSource& input)
: inputSource (&input)
@@ -327,10 +327,10 @@ struct DSPDemo : public AudioSource,
//==============================================================================
template <class DemoType>
class AudioFileReaderComponent : public Component,
private TimeSliceThread,
private Value::Listener,
private ChangeListener
class AudioFileReaderComponent final : public Component,
private TimeSliceThread,
private Value::Listener,
private ChangeListener
{
public:
//==============================================================================
@@ -496,9 +496,9 @@ public:
private:
//==============================================================================
class AudioPlayerHeader : public Component,
private ChangeListener,
private Value::Listener
class AudioPlayerHeader final : public Component,
private ChangeListener,
private Value::Listener
{
public:
AudioPlayerHeader (AudioDeviceManager& adm,


+ 4
- 7
examples/Assets/DemoUtilities.h View File

@@ -218,11 +218,7 @@ inline Path getJUCELogoPath()
// 0.0 and 1.0 at a random speed
struct BouncingNumber
{
BouncingNumber()
: speed (0.0004 + 0.0007 * Random::getSystemRandom().nextDouble()),
phase (Random::getSystemRandom().nextDouble())
{
}
virtual ~BouncingNumber() = default;
float getValue() const
{
@@ -231,10 +227,11 @@ struct BouncingNumber
}
protected:
double speed, phase;
double speed = 0.0004 + 0.0007 * Random::getSystemRandom().nextDouble(),
phase = Random::getSystemRandom().nextDouble();
};
struct SlowerBouncingNumber : public BouncingNumber
struct SlowerBouncingNumber final : public BouncingNumber
{
SlowerBouncingNumber()
{


+ 1
- 1
examples/Audio/AudioAppDemo.h View File

@@ -50,7 +50,7 @@
//==============================================================================
class AudioAppDemo : public AudioAppComponent
class AudioAppDemo final : public AudioAppComponent
{
public:
//==============================================================================


+ 3
- 3
examples/Audio/AudioLatencyDemo.h View File

@@ -52,8 +52,8 @@
#include "../Assets/AudioLiveScrollingDisplay.h"
//==============================================================================
class LatencyTester : public AudioIODeviceCallback,
private Timer
class LatencyTester final : public AudioIODeviceCallback,
private Timer
{
public:
LatencyTester (TextEditor& editorBox)
@@ -304,7 +304,7 @@ private:
};
//==============================================================================
class AudioLatencyDemo : public Component
class AudioLatencyDemo final : public Component
{
public:
AudioLatencyDemo()


+ 13
- 13
examples/Audio/AudioPlaybackDemo.h View File

@@ -48,12 +48,12 @@
#include "../Assets/DemoUtilities.h"
class DemoThumbnailComp : public Component,
public ChangeListener,
public FileDragAndDropTarget,
public ChangeBroadcaster,
private ScrollBar::Listener,
private Timer
class DemoThumbnailComp final : public Component,
public ChangeListener,
public FileDragAndDropTarget,
public ChangeBroadcaster,
private ScrollBar::Listener,
private Timer
{
public:
DemoThumbnailComp (AudioFormatManager& formatManager,
@@ -251,13 +251,13 @@ private:
};
//==============================================================================
class AudioPlaybackDemo : public Component,
#if (JUCE_ANDROID || JUCE_IOS)
private Button::Listener,
#else
private FileBrowserListener,
#endif
private ChangeListener
class AudioPlaybackDemo final : public Component,
#if (JUCE_ANDROID || JUCE_IOS)
private Button::Listener,
#else
private FileBrowserListener,
#endif
private ChangeListener
{
public:
AudioPlaybackDemo()


+ 4
- 4
examples/Audio/AudioRecordingDemo.h View File

@@ -55,7 +55,7 @@
/** A simple class that acts as an AudioIODeviceCallback and writes the
incoming audio data to a WAV file.
*/
class AudioRecorder : public AudioIODeviceCallback
class AudioRecorder final : public AudioIODeviceCallback
{
public:
AudioRecorder (AudioThumbnail& thumbnailToUpdate)
@@ -170,8 +170,8 @@ private:
};
//==============================================================================
class RecordingThumbnail : public Component,
private ChangeListener
class RecordingThumbnail final : public Component,
private ChangeListener
{
public:
RecordingThumbnail()
@@ -230,7 +230,7 @@ private:
};
//==============================================================================
class AudioRecordingDemo : public Component
class AudioRecordingDemo final : public Component
{
public:
AudioRecordingDemo()


+ 2
- 2
examples/Audio/AudioSettingsDemo.h View File

@@ -51,8 +51,8 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class AudioSettingsDemo : public Component,
public ChangeListener
class AudioSettingsDemo final : public Component,
public ChangeListener
{
public:
AudioSettingsDemo()


+ 5
- 5
examples/Audio/AudioSynthesiserDemo.h View File

@@ -53,7 +53,7 @@
//==============================================================================
/** Our demo synth sound is just a basic sine wave.. */
struct SineWaveSound : public SynthesiserSound
struct SineWaveSound final : public SynthesiserSound
{
bool appliesToNote (int /*midiNoteNumber*/) override { return true; }
bool appliesToChannel (int /*midiChannel*/) override { return true; }
@@ -61,7 +61,7 @@ struct SineWaveSound : public SynthesiserSound
//==============================================================================
/** Our demo synth voice just plays a sine wave.. */
struct SineWaveVoice : public SynthesiserVoice
struct SineWaveVoice final : public SynthesiserVoice
{
bool canPlaySound (SynthesiserSound* sound) override
{
@@ -153,7 +153,7 @@ private:
//==============================================================================
// This is an audio source that streams the output of our demo synth.
struct SynthAudioSource : public AudioSource
struct SynthAudioSource final : public AudioSource
{
SynthAudioSource (MidiKeyboardState& keyState) : keyboardState (keyState)
{
@@ -238,7 +238,7 @@ struct SynthAudioSource : public AudioSource
};
//==============================================================================
class Callback : public AudioIODeviceCallback
class Callback final : public AudioIODeviceCallback
{
public:
Callback (AudioSourcePlayer& playerIn, LiveScrollingAudioDisplay& displayIn)
@@ -283,7 +283,7 @@ private:
};
//==============================================================================
class AudioSynthesiserDemo : public Component
class AudioSynthesiserDemo final : public Component
{
public:
AudioSynthesiserDemo()


+ 8
- 8
examples/Audio/MPEDemo.h View File

@@ -95,7 +95,7 @@ private:
};
//==============================================================================
class MPESetupComponent : public Component
class MPESetupComponent final : public Component
{
public:
//==============================================================================
@@ -349,8 +349,8 @@ private:
};
//==============================================================================
class ZoneLayoutComponent : public Component,
private MPEInstrument::Listener
class ZoneLayoutComponent final : public Component,
private MPEInstrument::Listener
{
public:
//==============================================================================
@@ -466,7 +466,7 @@ private:
};
//==============================================================================
class MPEDemoSynthVoice : public MPESynthesiserVoice
class MPEDemoSynthVoice final : public MPESynthesiserVoice
{
public:
//==============================================================================
@@ -622,10 +622,10 @@ private:
};
//==============================================================================
class MPEDemo : public Component,
private AudioIODeviceCallback,
private MidiInputCallback,
private MPEInstrument::Listener
class MPEDemo final : public Component,
private AudioIODeviceCallback,
private MidiInputCallback,
private MPEInstrument::Listener
{
public:
//==============================================================================


+ 5
- 5
examples/Audio/MidiDemo.h View File

@@ -50,7 +50,7 @@
//==============================================================================
struct MidiDeviceListEntry : ReferenceCountedObject
struct MidiDeviceListEntry final : ReferenceCountedObject
{
explicit MidiDeviceListEntry (MidiDeviceInfo info) : deviceInfo (info) {}
@@ -72,10 +72,10 @@ struct MidiDeviceListEntry : ReferenceCountedObject
//==============================================================================
class MidiDemo : public Component,
private MidiKeyboardState::Listener,
private MidiInputCallback,
private AsyncUpdater
class MidiDemo final : public Component,
private MidiKeyboardState::Listener,
private MidiInputCallback,
private AsyncUpdater
{
public:
//==============================================================================


+ 3
- 3
examples/Audio/PluckedStringsDemo.h View File

@@ -172,8 +172,8 @@ private:
This component represents a horizontal vibrating musical string of fixed height
and variable length. The string can be excited by calling stringPlucked().
*/
class StringComponent : public Component,
private Timer
class StringComponent final : public Component,
private Timer
{
public:
StringComponent (int lengthInPixels, Colour stringColour)
@@ -249,7 +249,7 @@ private:
};
//==============================================================================
class PluckedStringsDemo : public AudioAppComponent
class PluckedStringsDemo final : public AudioAppComponent
{
public:
PluckedStringsDemo()


+ 2
- 2
examples/Audio/SimpleFFTDemo.h View File

@@ -50,8 +50,8 @@
//==============================================================================
class SimpleFFTDemo : public AudioAppComponent,
private Timer
class SimpleFFTDemo final : public AudioAppComponent,
private Timer
{
public:
SimpleFFTDemo() :


+ 1
- 1
examples/CMake/AudioPlugin/PluginEditor.h View File

@@ -3,7 +3,7 @@
#include "PluginProcessor.h"
//==============================================================================
class AudioPluginAudioProcessorEditor : public juce::AudioProcessorEditor
class AudioPluginAudioProcessorEditor final : public juce::AudioProcessorEditor
{
public:
explicit AudioPluginAudioProcessorEditor (AudioPluginAudioProcessor&);


+ 1
- 1
examples/CMake/AudioPlugin/PluginProcessor.h View File

@@ -3,7 +3,7 @@
#include <juce_audio_processors/juce_audio_processors.h>
//==============================================================================
class AudioPluginAudioProcessor : public juce::AudioProcessor
class AudioPluginAudioProcessor final : public juce::AudioProcessor
{
public:
//==============================================================================


+ 1
- 1
examples/CMake/GuiApp/MainComponent.h View File

@@ -11,7 +11,7 @@
This component lives inside our window, and this is where you should put all
your controls and content.
*/
class MainComponent : public juce::Component
class MainComponent final : public juce::Component
{
public:
//==============================================================================


+ 1
- 1
examples/DSP/ConvolutionDemo.h View File

@@ -186,7 +186,7 @@ struct ConvolutionDemoDSP
std::vector<DSPDemoParameterBase*> parameters { &cabinetParam };
};
struct ConvolutionDemo : public Component
struct ConvolutionDemo final : public Component
{
ConvolutionDemo()
{


+ 1
- 1
examples/DSP/FIRFilterDemo.h View File

@@ -98,7 +98,7 @@ struct FIRFilterDemoDSP
std::vector<DSPDemoParameterBase*> parameters { &cutoffParam, &typeParam };
};
struct FIRFilterDemo : public Component
struct FIRFilterDemo final : public Component
{
FIRFilterDemo()
{


+ 1
- 1
examples/DSP/GainDemo.h View File

@@ -83,7 +83,7 @@ struct GainDemoDSP
std::vector<DSPDemoParameterBase*> parameters { &gainParam };
};
struct GainDemo : public Component
struct GainDemo final : public Component
{
GainDemo()
{


+ 1
- 1
examples/DSP/IIRFilterDemo.h View File

@@ -102,7 +102,7 @@ struct IIRFilterDemoDSP
double sampleRate = 0.0;
};
struct IIRFilterDemo : public Component
struct IIRFilterDemo final : public Component
{
IIRFilterDemo()
{


+ 1
- 1
examples/DSP/OscillatorDemo.h View File

@@ -134,7 +134,7 @@ struct OscillatorDemoDSP
std::vector<DSPDemoParameterBase*> parameters { &typeParam, &accuracy, &freqParam, &gainParam, &mixParam };
};
struct OscillatorDemo : public Component
struct OscillatorDemo final : public Component
{
OscillatorDemo()
{


+ 1
- 1
examples/DSP/OverdriveDemo.h View File

@@ -113,7 +113,7 @@ struct OverdriveDemoDSP
double sampleRate = 0.0;
};
struct OverdriveDemo : public Component
struct OverdriveDemo final : public Component
{
OverdriveDemo()
{


+ 1
- 1
examples/DSP/SIMDRegisterDemo.h View File

@@ -156,7 +156,7 @@ struct SIMDRegisterDemoDSP
double sampleRate = 0.0;
};
struct SIMDRegisterDemo : public Component
struct SIMDRegisterDemo final : public Component
{
SIMDRegisterDemo()
{


+ 1
- 1
examples/DSP/StateVariableFilterDemo.h View File

@@ -100,7 +100,7 @@ struct StateVariableFilterDemoDSP
double sampleRate = 0.0;
};
struct StateVariableFilterDemo : public Component
struct StateVariableFilterDemo final : public Component
{
StateVariableFilterDemo()
{


+ 1
- 1
examples/DSP/WaveShaperTanhDemo.h View File

@@ -82,7 +82,7 @@ struct WaveShaperTanhDemoDSP
std::vector<DSPDemoParameterBase*> parameters { &accuracy }; // no params for this demo
};
struct WaveShaperTanhDemo : public Component
struct WaveShaperTanhDemo final : public Component
{
WaveShaperTanhDemo()
{


+ 4
- 4
examples/DemoRunner/Source/Main.cpp View File

@@ -31,8 +31,8 @@
//==============================================================================
#if JUCE_MAC || JUCE_WINDOWS || JUCE_LINUX || JUCE_BSD
// Just add a simple icon to the Window system tray area or Mac menu bar..
struct DemoTaskbarComponent : public SystemTrayIconComponent,
private Timer
struct DemoTaskbarComponent final : public SystemTrayIconComponent,
private Timer
{
DemoTaskbarComponent()
{
@@ -76,7 +76,7 @@
std::unique_ptr<AudioDeviceManager> sharedAudioDeviceManager;
//==============================================================================
class DemoRunnerApplication : public JUCEApplication
class DemoRunnerApplication final : public JUCEApplication
{
public:
//==============================================================================
@@ -117,7 +117,7 @@ public:
ApplicationCommandManager& getGlobalCommandManager() { return commandManager; }
private:
class MainAppWindow : public DocumentWindow
class MainAppWindow final : public DocumentWindow
{
public:
MainAppWindow (const String& name)


+ 24
- 24
examples/GUI/AccessibilityDemo.h View File

@@ -57,7 +57,7 @@
This component sets its accessibility title and help text properties and
also acts as a focus container for its children.
*/
class ContentComponent : public Component
class ContentComponent final : public Component
{
public:
ContentComponent (const String& title, const String& info, Component& contentToDisplay)
@@ -96,8 +96,8 @@ public:
private:
//==============================================================================
struct InfoIcon : public Component,
public SettableTooltipClient
struct InfoIcon final : public Component,
public SettableTooltipClient
{
InfoIcon()
{
@@ -151,7 +151,7 @@ private:
visible and controllable by accessibility clients. There are a few examples
of some widgets in this demo such as Sliders, Buttons and a TreeView.
*/
class JUCEWidgetsComponent : public Component
class JUCEWidgetsComponent final : public Component
{
public:
JUCEWidgetsComponent()
@@ -184,7 +184,7 @@ public:
private:
//==============================================================================
class ButtonsComponent : public Component
class ButtonsComponent final : public Component
{
public:
ButtonsComponent()
@@ -217,7 +217,7 @@ private:
private:
//==============================================================================
struct RadioButtonsGroupComponent : public Component
struct RadioButtonsGroupComponent final : public Component
{
RadioButtonsGroupComponent()
{
@@ -263,7 +263,7 @@ private:
};
//==============================================================================
class SlidersComponent : public Component
class SlidersComponent final : public Component
{
public:
SlidersComponent()
@@ -317,7 +317,7 @@ private:
};
//==============================================================================
class TreeViewComponent : public Component
class TreeViewComponent final : public Component
{
public:
TreeViewComponent()
@@ -335,7 +335,7 @@ private:
private:
//==============================================================================
struct RootItem : public TreeViewItem
struct RootItem final : public TreeViewItem
{
RootItem()
{
@@ -447,7 +447,7 @@ constexpr NameAndRole accessibilityRoles[]
Component::createAccessibilityHandler() method to return a custom AccessibilityHandler.
The properties of this handler are set by the various controls in the demo.
*/
class CustomWidgetComponent : public Component
class CustomWidgetComponent final : public Component
{
public:
CustomWidgetComponent()
@@ -488,7 +488,7 @@ public:
private:
//==============================================================================
class AccessibleComponent : public Component
class AccessibleComponent final : public Component
{
public:
explicit AccessibleComponent (CustomWidgetComponent& owner)
@@ -543,7 +543,7 @@ private:
};
//==============================================================================
class InfoComponent : public Component
class InfoComponent final : public Component
{
public:
explicit InfoComponent (CustomWidgetComponent& owner)
@@ -636,7 +636,7 @@ private:
};
//==============================================================================
class ActionsComponent : public Component
class ActionsComponent final : public Component
{
public:
explicit ActionsComponent (CustomWidgetComponent& owner)
@@ -675,8 +675,8 @@ private:
private:
//==============================================================================
class AccessibilityActionComponent : public Component,
private Timer
class AccessibilityActionComponent final : public Component,
private Timer
{
public:
AccessibilityActionComponent (CustomWidgetComponent& owner,
@@ -769,7 +769,7 @@ private:
};
//==============================================================================
class ValueInterfaceComponent : public Component
class ValueInterfaceComponent final : public Component
{
public:
explicit ValueInterfaceComponent (CustomWidgetComponent& owner)
@@ -883,7 +883,7 @@ private:
private:
//==============================================================================
struct RangedValueComponent : public Component
struct RangedValueComponent final : public Component
{
RangedValueComponent()
{
@@ -986,7 +986,7 @@ private:
};
//==============================================================================
class StateComponent : public Component
class StateComponent final : public Component
{
public:
StateComponent()
@@ -1096,7 +1096,7 @@ private:
/**
The top-level component containing an example of custom child component navigation.
*/
class CustomNavigationComponent : public Component
class CustomNavigationComponent final : public Component
{
public:
CustomNavigationComponent()
@@ -1126,7 +1126,7 @@ public:
private:
//==============================================================================
class NavigableComponentsHolder : public Component
class NavigableComponentsHolder final : public Component
{
public:
NavigableComponentsHolder()
@@ -1163,7 +1163,7 @@ private:
std::unique_ptr<ComponentTraverser> createFocusTraverser() override
{
struct CustomTraverser : public FocusTraverser
struct CustomTraverser final : public FocusTraverser
{
explicit CustomTraverser (NavigableComponentsHolder& owner)
: navigableComponentsHolder (owner) {}
@@ -1221,7 +1221,7 @@ private:
}
private:
struct NavigableComponent : public Component
struct NavigableComponent final : public Component
{
NavigableComponent (int index, int total, NavigableComponentsHolder& owner)
{
@@ -1360,7 +1360,7 @@ private:
screen reader application to be read out along with a priority determining how
it should be read out (whether it should interrupt other announcements, etc.).
*/
class AnnouncementsComponent : public Component
class AnnouncementsComponent final : public Component
{
public:
AnnouncementsComponent()
@@ -1442,7 +1442,7 @@ private:
This just contains a TabbedComponent with a tab for each of the top-level demos.
*/
class AccessibilityDemo : public Component
class AccessibilityDemo final : public Component
{
public:
AccessibilityDemo()


+ 1
- 1
examples/GUI/AnimationAppDemo.h View File

@@ -52,7 +52,7 @@
This component lives inside our window, and this is where you should put all
your controls and content.
*/
class AnimationAppDemo : public AnimatedAppComponent
class AnimationAppDemo final : public AnimatedAppComponent
{
public:
//==============================================================================


+ 4
- 4
examples/GUI/AnimationDemo.h View File

@@ -50,7 +50,7 @@
//==============================================================================
/** This will be the source of our balls and can be dragged around. */
class BallGeneratorComponent : public Component
class BallGeneratorComponent final : public Component
{
public:
BallGeneratorComponent() {}
@@ -93,7 +93,7 @@ private:
};
//==============================================================================
struct BallComponent : public Component
struct BallComponent final : public Component
{
BallComponent (Point<float> pos)
: position (pos),
@@ -136,8 +136,8 @@ struct BallComponent : public Component
};
//==============================================================================
class AnimationDemo : public Component,
private Timer
class AnimationDemo final : public Component,
private Timer
{
public:
AnimationDemo()


+ 2
- 2
examples/GUI/BouncingBallWavetableDemo.h View File

@@ -50,8 +50,8 @@
//==============================================================================
class BouncingBallWavetableDemo : public AudioAppComponent,
private Timer
class BouncingBallWavetableDemo final : public AudioAppComponent,
private Timer
{
public:
//==============================================================================


+ 1
- 1
examples/GUI/CameraDemo.h View File

@@ -50,7 +50,7 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class CameraDemo : public Component
class CameraDemo final : public Component
{
public:
CameraDemo()


+ 2
- 2
examples/GUI/CodeEditorDemo.h View File

@@ -53,8 +53,8 @@
#endif
//==============================================================================
class CodeEditorDemo : public Component,
private FilenameComponentListener
class CodeEditorDemo final : public Component,
private FilenameComponentListener
{
public:
CodeEditorDemo()


+ 3
- 3
examples/GUI/ComponentDemo.h View File

@@ -51,7 +51,7 @@
/**
This class represents one of the individual lights in our grid.
*/
class ToggleLightComponent : public Component
class ToggleLightComponent final : public Component
{
public:
ToggleLightComponent() {}
@@ -84,7 +84,7 @@ private:
/**
This is the parent class that holds multiple ToggleLightComponents in a grid.
*/
class ToggleLightGridComponent : public Component
class ToggleLightGridComponent final : public Component
{
public:
ToggleLightGridComponent()
@@ -134,7 +134,7 @@ private:
This component lives inside our window, and this is where you should put all
your controls and content.
*/
class ComponentDemo : public Component
class ComponentDemo final : public Component
{
public:
//==============================================================================


+ 1
- 1
examples/GUI/ComponentTransformsDemo.h View File

@@ -50,7 +50,7 @@
#include "WidgetsDemo.h"
//==============================================================================
class ComponentTransformsDemo : public Component
class ComponentTransformsDemo final : public Component
{
public:
ComponentTransformsDemo()


+ 2
- 2
examples/GUI/DialogsDemo.h View File

@@ -55,7 +55,7 @@ struct MessageBoxOwnerComponent : public Component
};
//==============================================================================
class DemoBackgroundThread : public ThreadWithProgressWindow
class DemoBackgroundThread final : public ThreadWithProgressWindow
{
public:
explicit DemoBackgroundThread (MessageBoxOwnerComponent& comp)
@@ -117,7 +117,7 @@ public:
//==============================================================================
class DialogsDemo : public MessageBoxOwnerComponent
class DialogsDemo final : public MessageBoxOwnerComponent
{
public:
enum DialogType


+ 2
- 2
examples/GUI/FlexBoxDemo.h View File

@@ -49,7 +49,7 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
struct DemoFlexPanel : public Component
struct DemoFlexPanel final : public Component
{
DemoFlexPanel (Colour col, FlexItem& item)
: flexItem (item), colour (col)
@@ -163,7 +163,7 @@ struct DemoFlexPanel : public Component
};
//==============================================================================
struct FlexBoxDemo : public juce::Component
struct FlexBoxDemo final : public juce::Component
{
FlexBoxDemo()
{


+ 3
- 3
examples/GUI/FontsDemo.h View File

@@ -49,9 +49,9 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class FontsDemo : public Component,
private ListBoxModel,
private Slider::Listener
class FontsDemo final : public Component,
private ListBoxModel,
private Slider::Listener
{
public:
FontsDemo()


+ 14
- 14
examples/GUI/GraphicsDemo.h View File

@@ -50,7 +50,7 @@
//==============================================================================
/** Holds the various toggle buttons for the animation modes. */
class ControllersComponent : public Component
class ControllersComponent final : public Component
{
public:
ControllersComponent()
@@ -113,7 +113,7 @@ public:
};
//==============================================================================
class GraphicsDemoBase : public Component
class GraphicsDemoBase : public Component
{
public:
GraphicsDemoBase (ControllersComponent& cc, const String& name)
@@ -280,7 +280,7 @@ public:
};
//==============================================================================
class RectangleFillTypesDemo : public GraphicsDemoBase
class RectangleFillTypesDemo final : public GraphicsDemoBase
{
public:
RectangleFillTypesDemo (ControllersComponent& cc)
@@ -316,7 +316,7 @@ public:
};
//==============================================================================
class PathsDemo : public GraphicsDemoBase
class PathsDemo final : public GraphicsDemoBase
{
public:
PathsDemo (ControllersComponent& cc, bool linear, bool radial)
@@ -377,7 +377,7 @@ public:
};
//==============================================================================
class StrokesDemo : public GraphicsDemoBase
class StrokesDemo final : public GraphicsDemoBase
{
public:
StrokesDemo (ControllersComponent& cc)
@@ -410,7 +410,7 @@ public:
};
//==============================================================================
class ImagesRenderingDemo : public GraphicsDemoBase
class ImagesRenderingDemo final : public GraphicsDemoBase
{
public:
ImagesRenderingDemo (ControllersComponent& cc, bool argb, bool tiled)
@@ -448,7 +448,7 @@ public:
};
//==============================================================================
class GlyphsDemo : public GraphicsDemoBase
class GlyphsDemo final : public GraphicsDemoBase
{
public:
GlyphsDemo (ControllersComponent& cc)
@@ -468,7 +468,7 @@ public:
};
//==============================================================================
class SVGDemo : public GraphicsDemoBase
class SVGDemo final : public GraphicsDemoBase
{
public:
SVGDemo (ControllersComponent& cc)
@@ -513,7 +513,7 @@ public:
};
//==============================================================================
class LinesDemo : public GraphicsDemoBase
class LinesDemo final : public GraphicsDemoBase
{
public:
LinesDemo (ControllersComponent& cc)
@@ -576,8 +576,8 @@ public:
};
//==============================================================================
class DemoHolderComponent : public Component,
private Timer
class DemoHolderComponent final : public Component,
private Timer
{
public:
DemoHolderComponent()
@@ -623,8 +623,8 @@ private:
};
//==============================================================================
class TestListComponent : public Component,
private ListBoxModel
class TestListComponent final : public Component,
private ListBoxModel
{
public:
TestListComponent (DemoHolderComponent& holder, ControllersComponent& controls)
@@ -695,7 +695,7 @@ private:
};
//==============================================================================
class GraphicsDemo : public Component
class GraphicsDemo final : public Component
{
public:
GraphicsDemo()


+ 1
- 1
examples/GUI/GridDemo.h View File

@@ -49,7 +49,7 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
struct GridDemo : public Component
struct GridDemo final : public Component
{
GridDemo()
{


+ 1
- 1
examples/GUI/HelloWorldDemo.h View File

@@ -48,7 +48,7 @@
//==============================================================================
class HelloWorldDemo : public Component
class HelloWorldDemo final : public Component
{
public:
//==============================================================================


+ 2
- 2
examples/GUI/ImagesDemo.h View File

@@ -49,8 +49,8 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class ImagesDemo : public Component,
public FileBrowserListener
class ImagesDemo final : public Component,
public FileBrowserListener
{
public:
ImagesDemo()


+ 3
- 3
examples/GUI/KeyMappingsDemo.h View File

@@ -66,8 +66,8 @@ enum KeyPressCommandIDs
This is a simple target for the key-presses which will live inside the demo component
and contains a button that can be moved around with the arrow keys.
*/
class KeyPressTarget : public Component,
public ApplicationCommandTarget
class KeyPressTarget final : public Component,
public ApplicationCommandTarget
{
public:
KeyPressTarget()
@@ -213,7 +213,7 @@ private:
};
//==============================================================================
class KeyMappingsDemo : public Component
class KeyMappingsDemo final : public Component
{
public:
KeyMappingsDemo()


+ 4
- 4
examples/GUI/LookAndFeelDemo.h View File

@@ -55,7 +55,7 @@
It's a good idea not to hard code your colours, use the findColour method along with appropriate
ColourIds so you can set these on a per-component basis.
*/
struct CustomLookAndFeel : public LookAndFeel_V4
struct CustomLookAndFeel : public LookAndFeel_V4
{
void drawRoundThumb (Graphics& g, float x, float y, float diameter, Colour colour, float outlineThickness)
{
@@ -296,7 +296,7 @@ struct CustomLookAndFeel : public LookAndFeel_V4
This inherits from CustomLookAndFeel above for the linear bar and slider backgrounds.
*/
struct SquareLookAndFeel : public CustomLookAndFeel
struct SquareLookAndFeel final : public CustomLookAndFeel
{
void drawButtonBackground (Graphics& g, Button& button, const Colour& backgroundColour,
bool isMouseOverButton, bool isButtonDown) override
@@ -434,7 +434,7 @@ struct SquareLookAndFeel : public CustomLookAndFeel
};
//==============================================================================
struct LookAndFeelDemoComponent : public Component
struct LookAndFeelDemoComponent final : public Component
{
LookAndFeelDemoComponent()
{
@@ -521,7 +521,7 @@ struct LookAndFeelDemoComponent : public Component
};
//==============================================================================
class LookAndFeelDemo : public Component
class LookAndFeelDemo final : public Component
{
public:
LookAndFeelDemo()


+ 5
- 5
examples/GUI/MDIDemo.h View File

@@ -53,8 +53,8 @@
also listen to changes in the text and mark the FileBasedDocument as 'dirty'. This 'dirty'
flag is used to prompt the user to save the note when it is closed.
*/
class Note : public Component,
public FileBasedDocument
class Note final : public Component,
public FileBasedDocument
{
public:
Note (const String& name, const String& contents)
@@ -133,7 +133,7 @@ private:
//==============================================================================
/** Simple MultiDocumentPanel that just tries to save our notes when they are closed.
*/
class DemoMultiDocumentPanel : public MultiDocumentPanel
class DemoMultiDocumentPanel final : public MultiDocumentPanel
{
public:
DemoMultiDocumentPanel() = default;
@@ -165,8 +165,8 @@ private:
/** Simple multi-document panel that manages a number of notes that you can store to files.
By default this will look for notes saved to the desktop and load them up.
*/
class MDIDemo : public Component,
public FileDragAndDropTarget
class MDIDemo final : public Component,
public FileDragAndDropTarget
{
public:
MDIDemo()


+ 8
- 8
examples/GUI/MenusDemo.h View File

@@ -54,7 +54,7 @@
is enabled. It contains an icon that can be used to show the side panel containing
the menu.
*/
struct BurgerMenuHeader : public Component
struct BurgerMenuHeader final : public Component
{
BurgerMenuHeader (SidePanel& sp)
: sidePanel (sp)
@@ -120,9 +120,9 @@ private:
};
//==============================================================================
class MenusDemo : public Component,
public ApplicationCommandTarget,
public MenuBarModel
class MenusDemo final : public Component,
public ApplicationCommandTarget,
public MenuBarModel
{
public:
//==============================================================================
@@ -341,8 +341,8 @@ private:
Command messages that aren't handled in the main component will be passed
to this class to respond to.
*/
class OuterCommandTarget : public Component,
public ApplicationCommandTarget
class OuterCommandTarget final : public Component,
public ApplicationCommandTarget
{
public:
OuterCommandTarget (ApplicationCommandManager& m)
@@ -430,8 +430,8 @@ private:
Command messages that aren't handled in the OuterCommandTarget will be passed
to this class to respond to.
*/
struct InnerCommandTarget : public Component,
public ApplicationCommandTarget
struct InnerCommandTarget final : public Component,
public ApplicationCommandTarget
{
InnerCommandTarget (ApplicationCommandManager& m)
: commandManager (m)


+ 1
- 1
examples/GUI/MultiTouchDemo.h View File

@@ -49,7 +49,7 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class MultiTouchDemo : public Component
class MultiTouchDemo final : public Component
{
public:
MultiTouchDemo()


+ 1
- 1
examples/GUI/OpenGLAppDemo.h View File

@@ -54,7 +54,7 @@
This component lives inside our window, and this is where you should put all
your controls and content.
*/
class OpenGLAppDemo : public OpenGLAppComponent
class OpenGLAppDemo final : public OpenGLAppComponent
{
public:
//==============================================================================


+ 1
- 1
examples/GUI/OpenGLDemo.h View File

@@ -951,7 +951,7 @@ private:
Graphics g (*glRenderer);
g.addTransform (AffineTransform::scale (desktopScale));
for (auto s : stars)
for (const auto& s : stars)
{
auto size = 0.25f;


+ 3
- 3
examples/GUI/OpenGLDemo2D.h View File

@@ -49,9 +49,9 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class OpenGLDemo2D : public Component,
private CodeDocument::Listener,
private Timer
class OpenGLDemo2D final : public Component,
private CodeDocument::Listener,
private Timer
{
public:
OpenGLDemo2D()


+ 4
- 4
examples/GUI/PropertiesDemo.h View File

@@ -49,7 +49,7 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class DemoButtonPropertyComponent : public ButtonPropertyComponent
class DemoButtonPropertyComponent final : public ButtonPropertyComponent
{
public:
DemoButtonPropertyComponent (const String& propertyName)
@@ -80,7 +80,7 @@ private:
};
//==============================================================================
class DemoSliderPropertyComponent : public SliderPropertyComponent
class DemoSliderPropertyComponent final : public SliderPropertyComponent
{
public:
DemoSliderPropertyComponent (const String& propertyName)
@@ -162,8 +162,8 @@ static Array<PropertyComponent*> createChoices (int howMany)
}
//==============================================================================
class PropertiesDemo : public Component,
private Timer
class PropertiesDemo final : public Component,
private Timer
{
public:
PropertiesDemo()


+ 8
- 8
examples/GUI/VideoDemo.h View File

@@ -51,9 +51,9 @@
#if JUCE_MAC || JUCE_WINDOWS
//==============================================================================
// so that we can easily have two video windows each with a file browser, wrap this up as a class..
class MovieComponentWithFileBrowser : public Component,
public DragAndDropTarget,
private FilenameComponentListener
class MovieComponentWithFileBrowser final : public Component,
public DragAndDropTarget,
private FilenameComponentListener
{
public:
MovieComponentWithFileBrowser()
@@ -147,9 +147,9 @@ private:
};
//==============================================================================
class VideoDemo : public Component,
public DragAndDropContainer,
private FileBrowserListener
class VideoDemo final : public Component,
public DragAndDropContainer,
private FileBrowserListener
{
public:
VideoDemo()
@@ -269,8 +269,8 @@ private:
};
#elif JUCE_IOS || JUCE_ANDROID
//==============================================================================
class VideoDemo : public Component,
private Timer
class VideoDemo final : public Component,
private Timer
{
public:
VideoDemo()


+ 2
- 2
examples/GUI/WebBrowserDemo.h View File

@@ -55,7 +55,7 @@
when the browser changes URL. You don't need to do this, you can just also
just use the WebBrowserComponent class directly.
*/
class DemoBrowserComponent : public WebBrowserComponent
class DemoBrowserComponent final : public WebBrowserComponent
{
public:
//==============================================================================
@@ -89,7 +89,7 @@ private:
//==============================================================================
class WebBrowserDemo : public Component
class WebBrowserDemo final : public Component
{
public:
WebBrowserDemo()


+ 17
- 17
examples/GUI/WidgetsDemo.h View File

@@ -59,7 +59,7 @@ static void showBubbleMessage (Component& targetComponent, const String& textToS
/** To demonstrate how sliders can have custom snapping applied to their values,
this simple class snaps the value to 50 if it comes near.
*/
struct SnappingSlider : public Slider
struct SnappingSlider final : public Slider
{
double snapValue (double attemptedValue, DragMode dragMode) override
{
@@ -74,8 +74,8 @@ struct SnappingSlider : public Slider
};
/** A TextButton that pops up a colour chooser to change its colours. */
class ColourChangeButton : public TextButton,
public ChangeListener
class ColourChangeButton final : public TextButton,
public ChangeListener
{
public:
ColourChangeButton()
@@ -112,7 +112,7 @@ public:
};
//==============================================================================
struct SlidersPage : public Component
struct SlidersPage final : public Component
{
SlidersPage()
{
@@ -261,7 +261,7 @@ private:
};
//==============================================================================
struct ButtonsPage : public Component
struct ButtonsPage final : public Component
{
ButtonsPage (bool isRunningComponentTransformDemo)
{
@@ -461,8 +461,8 @@ private:
//==============================================================================
struct MiscPage : public Component,
private Timer
struct MiscPage final : public Component,
private Timer
{
MiscPage()
{
@@ -540,7 +540,7 @@ struct MiscPage : public Component,
};
//==============================================================================
struct MenuPage : public Component
struct MenuPage final : public Component
{
MenuPage()
{
@@ -735,8 +735,8 @@ struct MenuPage : public Component
};
//==============================================================================
class ToolbarDemoComp : public Component,
private Slider::Listener
class ToolbarDemoComp final : public Component,
private Slider::Listener
{
public:
ToolbarDemoComp()
@@ -802,7 +802,7 @@ private:
customiseButton { "Customise..." };
//==============================================================================
class DemoToolbarItemFactory : public ToolbarItemFactory
class DemoToolbarItemFactory final : public ToolbarItemFactory
{
public:
DemoToolbarItemFactory() {}
@@ -977,8 +977,8 @@ private:
/**
This class shows how to implement a TableListBoxModel to show in a TableListBox.
*/
class TableDemoComponent : public Component,
public TableListBoxModel
class TableDemoComponent final : public Component,
public TableListBoxModel
{
public:
TableDemoComponent()
@@ -1303,8 +1303,8 @@ private:
};
//==============================================================================
class DragAndDropDemo : public Component,
public DragAndDropContainer
class DragAndDropDemo final : public Component,
public DragAndDropContainer
{
public:
DragAndDropDemo()
@@ -1509,7 +1509,7 @@ private:
};
//==============================================================================
struct DemoTabbedComponent : public TabbedComponent
struct DemoTabbedComponent final : public TabbedComponent
{
DemoTabbedComponent (bool isRunningComponenTransformsDemo)
: TabbedComponent (TabbedButtonBar::TabsAtTop)
@@ -1567,7 +1567,7 @@ struct DemoTabbedComponent : public TabbedComponent
};
//==============================================================================
struct WidgetsDemo : public Component
struct WidgetsDemo final : public Component
{
WidgetsDemo (bool isRunningComponenTransformsDemo = false)
: tabs (isRunningComponenTransformsDemo)


+ 7
- 7
examples/GUI/WindowsDemo.h View File

@@ -50,7 +50,7 @@
//==============================================================================
/** Just a simple window that deletes itself when closed. */
class BasicWindow : public DocumentWindow
class BasicWindow final : public DocumentWindow
{
public:
BasicWindow (const String& name, Colour backgroundColour, int buttonsNeeded)
@@ -68,8 +68,8 @@ private:
//==============================================================================
/** This window contains a ColourSelector which can be used to change the window's colour. */
class ColourSelectorWindow : public DocumentWindow,
private ChangeListener
class ColourSelectorWindow final : public DocumentWindow,
private ChangeListener
{
public:
ColourSelectorWindow (const String& name, Colour backgroundColour, int buttonsNeeded)
@@ -106,8 +106,8 @@ private:
};
//==============================================================================
class BouncingBallComponent : public Component,
public Timer
class BouncingBallComponent final : public Component,
public Timer
{
public:
BouncingBallComponent()
@@ -159,7 +159,7 @@ private:
};
//==============================================================================
class BouncingBallsContainer : public Component
class BouncingBallsContainer final : public Component
{
public:
BouncingBallsContainer (int numBalls)
@@ -207,7 +207,7 @@ private:
};
//==============================================================================
class WindowsDemo : public Component
class WindowsDemo final : public Component
{
public:
enum Windows


+ 50
- 50
examples/Plugins/ARAPluginDemo.h View File

@@ -53,7 +53,7 @@
#include <ARA_Library/Utilities/ARATimelineConversion.h>
//==============================================================================
class ARADemoPluginAudioModification : public ARAAudioModification
class ARADemoPluginAudioModification final : public ARAAudioModification
{
public:
ARADemoPluginAudioModification (ARAAudioSource* audioSource,
@@ -79,7 +79,7 @@ struct PreviewState
std::atomic<ARAPlaybackRegion*> previewedRegion { nullptr };
};
class SharedTimeSliceThread : public TimeSliceThread
class SharedTimeSliceThread final : public TimeSliceThread
{
public:
SharedTimeSliceThread()
@@ -89,7 +89,7 @@ public:
}
};
class AsyncConfigurationCallback : private AsyncUpdater
class AsyncConfigurationCallback final : private AsyncUpdater
{
public:
explicit AsyncConfigurationCallback (std::function<void()> callbackIn)
@@ -303,7 +303,7 @@ struct ProcessingLockInterface
};
//==============================================================================
class PlaybackRenderer : public ARAPlaybackRenderer
class PlaybackRenderer final : public ARAPlaybackRenderer
{
public:
PlaybackRenderer (ARA::PlugIn::DocumentController* dc, ProcessingLockInterface& lockInterfaceIn)
@@ -480,8 +480,8 @@ private:
std::unique_ptr<AudioBuffer<float>> tempBuffer;
};
class EditorRenderer : public ARAEditorRenderer,
private ARARegionSequence::Listener
class EditorRenderer final : public ARAEditorRenderer,
private ARARegionSequence::Listener
{
public:
EditorRenderer (ARA::PlugIn::DocumentController* documentController,
@@ -699,8 +699,8 @@ private:
};
//==============================================================================
class ARADemoPluginDocumentControllerSpecialisation : public ARADocumentControllerSpecialisation,
private ProcessingLockInterface
class ARADemoPluginDocumentControllerSpecialisation final : public ARADocumentControllerSpecialisation,
private ProcessingLockInterface
{
public:
using ARADocumentControllerSpecialisation::ARADocumentControllerSpecialisation;
@@ -853,8 +853,8 @@ struct PlayHeadState
};
//==============================================================================
class ARADemoPluginAudioProcessorImpl : public AudioProcessor,
public AudioProcessorARAExtension
class ARADemoPluginAudioProcessorImpl : public AudioProcessor,
public AudioProcessorARAExtension
{
public:
//==============================================================================
@@ -985,14 +985,14 @@ private:
ListenerList<Listener> listeners;
};
class RulersView : public Component,
public SettableTooltipClient,
private Timer,
private TimeToViewScaling::Listener,
private ARAMusicalContext::Listener
class RulersView final : public Component,
public SettableTooltipClient,
private Timer,
private TimeToViewScaling::Listener,
private ARAMusicalContext::Listener
{
public:
class CycleMarkerComponent : public Component
class CycleMarkerComponent final : public Component
{
void paint (Graphics& g) override
{
@@ -1233,7 +1233,7 @@ private:
bool isDraggingCycle = false;
};
class RulersHeader : public Component
class RulersHeader final : public Component
{
public:
RulersHeader()
@@ -1274,7 +1274,7 @@ private:
};
//==============================================================================
struct WaveformCache : private ARAAudioSource::Listener
struct WaveformCache final : private ARAAudioSource::Listener
{
WaveformCache() : thumbnailCache (20)
{
@@ -1325,12 +1325,12 @@ private:
std::map<ARAAudioSource*, std::unique_ptr<AudioThumbnail>> thumbnails;
};
class PlaybackRegionView : public Component,
public ChangeListener,
public SettableTooltipClient,
private ARAAudioSource::Listener,
private ARAPlaybackRegion::Listener,
private ARAEditorView::Listener
class PlaybackRegionView final : public Component,
public ChangeListener,
public SettableTooltipClient,
private ARAAudioSource::Listener,
private ARAPlaybackRegion::Listener,
private ARAEditorView::Listener
{
public:
PlaybackRegionView (ARAEditorView& editorView, ARAPlaybackRegion& region, WaveformCache& cache)
@@ -1467,7 +1467,7 @@ public:
}
private:
class PreviewRegionOverlay : public Component
class PreviewRegionOverlay final : public Component
{
static constexpr auto previewLength = 0.5;
@@ -1522,11 +1522,11 @@ private:
bool isSelected = false;
};
class RegionSequenceView : public Component,
public ChangeBroadcaster,
private TimeToViewScaling::Listener,
private ARARegionSequence::Listener,
private ARAPlaybackRegion::Listener
class RegionSequenceView final : public Component,
public ChangeBroadcaster,
private TimeToViewScaling::Listener,
private ARARegionSequence::Listener,
private ARAPlaybackRegion::Listener
{
public:
RegionSequenceView (ARAEditorView& editorView, TimeToViewScaling& scaling, ARARegionSequence& rs, WaveformCache& cache)
@@ -1645,7 +1645,7 @@ private:
double playbackDuration = 0.0;
};
class ZoomControls : public Component
class ZoomControls final : public Component
{
public:
ZoomControls()
@@ -1672,8 +1672,8 @@ private:
TextButton zoomInButton { "+" }, zoomOutButton { "-" };
};
class PlayheadPositionLabel : public Label,
private Timer
class PlayheadPositionLabel final : public Label,
private Timer
{
public:
PlayheadPositionLabel (PlayHeadState& playHeadStateIn)
@@ -1769,9 +1769,9 @@ private:
ARAMusicalContext* selectedMusicalContext = nullptr;
};
class TrackHeader : public Component,
private ARARegionSequence::Listener,
private ARAEditorView::Listener
class TrackHeader final : public Component,
private ARARegionSequence::Listener,
private ARAEditorView::Listener
{
public:
TrackHeader (ARAEditorView& editorView, ARARegionSequence& regionSequenceIn)
@@ -1848,7 +1848,7 @@ private:
constexpr auto trackHeight = 60;
class VerticalLayoutViewportContent : public Component
class VerticalLayoutViewportContent final : public Component
{
public:
void resized() override
@@ -1863,7 +1863,7 @@ public:
}
};
class VerticalLayoutViewport : public Viewport
class VerticalLayoutViewport final : public Viewport
{
public:
VerticalLayoutViewport()
@@ -1887,12 +1887,12 @@ private:
}
};
class OverlayComponent : public Component,
private Timer,
private TimeToViewScaling::Listener
class OverlayComponent final : public Component,
private Timer,
private TimeToViewScaling::Listener
{
public:
class PlayheadMarkerComponent : public Component
class PlayheadMarkerComponent final : public Component
{
void paint (Graphics& g) override { g.fillAll (Colours::yellow.darker (0.2f)); }
};
@@ -1981,11 +1981,11 @@ private:
PlayheadMarkerComponent playheadMarker;
};
class DocumentView : public Component,
public ChangeListener,
public ARAMusicalContext::Listener,
private ARADocument::Listener,
private ARAEditorView::Listener
class DocumentView final : public Component,
public ChangeListener,
public ARAMusicalContext::Listener,
private ARADocument::Listener,
private ARAEditorView::Listener
{
public:
DocumentView (ARAEditorView& editorView, PlayHeadState& playHeadState)
@@ -2287,8 +2287,8 @@ private:
};
class ARADemoPluginProcessorEditor : public AudioProcessorEditor,
public AudioProcessorEditorARAExtension
class ARADemoPluginProcessorEditor final : public AudioProcessorEditor,
public AudioProcessorEditorARAExtension
{
public:
explicit ARADemoPluginProcessorEditor (ARADemoPluginAudioProcessorImpl& p)
@@ -2334,7 +2334,7 @@ private:
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ARADemoPluginProcessorEditor)
};
class ARADemoPluginAudioProcessor : public ARADemoPluginAudioProcessorImpl
class ARADemoPluginAudioProcessor final : public ARADemoPluginAudioProcessorImpl
{
public:
bool hasEditor() const override { return true; }


+ 4
- 4
examples/Plugins/AUv3SynthPluginDemo.h View File

@@ -54,7 +54,7 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class MaterialLookAndFeel : public LookAndFeel_V4
class MaterialLookAndFeel final : public LookAndFeel_V4
{
public:
//==============================================================================
@@ -178,8 +178,8 @@ public:
};
//==============================================================================
class AUv3SynthEditor : public AudioProcessorEditor,
private Timer
class AUv3SynthEditor final : public AudioProcessorEditor,
private Timer
{
public:
//==============================================================================
@@ -309,7 +309,7 @@ private:
};
//==============================================================================
class AUv3SynthProcessor : public AudioProcessor
class AUv3SynthProcessor final : public AudioProcessor
{
public:
AUv3SynthProcessor ()


+ 1
- 1
examples/Plugins/ArpeggiatorPluginDemo.h View File

@@ -52,7 +52,7 @@
//==============================================================================
class Arpeggiator : public AudioProcessor
class Arpeggiator final : public AudioProcessor
{
public:


+ 6
- 6
examples/Plugins/AudioPluginDemo.h View File

@@ -55,7 +55,7 @@
//==============================================================================
/** A demo synth sound that's just a basic sine wave.. */
class SineWaveSound : public SynthesiserSound
class SineWaveSound final : public SynthesiserSound
{
public:
SineWaveSound() {}
@@ -66,7 +66,7 @@ public:
//==============================================================================
/** A simple demo synth voice that just plays a sine wave.. */
class SineWaveVoice : public SynthesiserVoice
class SineWaveVoice final : public SynthesiserVoice
{
public:
SineWaveVoice() {}
@@ -175,7 +175,7 @@ private:
//==============================================================================
/** As the name suggest, this class does the actual audio processing. */
class JuceDemoPluginAudioProcessor : public AudioProcessor
class JuceDemoPluginAudioProcessor final : public AudioProcessor
{
public:
//==============================================================================
@@ -362,9 +362,9 @@ public:
private:
//==============================================================================
/** This is the editor component that our filter will display. */
class JuceDemoPluginAudioProcessorEditor : public AudioProcessorEditor,
private Timer,
private Value::Listener
class JuceDemoPluginAudioProcessorEditor final : public AudioProcessorEditor,
private Timer,
private Value::Listener
{
public:
JuceDemoPluginAudioProcessorEditor (JuceDemoPluginAudioProcessor& owner)


+ 38
- 38
examples/Plugins/DSPModulePluginDemo.h View File

@@ -143,15 +143,15 @@ void resetAll (Processors&... processors)
}
//==============================================================================
class DspModulePluginDemo : public AudioProcessor,
private ValueTree::Listener
class DspModulePluginDemo : public AudioProcessor,
private ValueTree::Listener
{
public:
DspModulePluginDemo()
: DspModulePluginDemo (AudioProcessorValueTreeState::ParameterLayout{}) {}
//==============================================================================
void prepareToPlay (double sampleRate, int samplesPerBlock) override
void prepareToPlay (double sampleRate, int samplesPerBlock) final
{
const auto channels = jmax (getTotalNumInputChannels(), getTotalNumOutputChannels());
@@ -163,15 +163,15 @@ public:
reset();
}
void reset() override
void reset() final
{
chain.reset();
update();
}
void releaseResources() override {}
void releaseResources() final {}
void processBlock (AudioBuffer<float>& buffer, MidiBuffer&) override
void processBlock (AudioBuffer<float>& buffer, MidiBuffer&) final
{
if (jmax (getTotalNumInputChannels(), getTotalNumOutputChannels()) == 0)
return;
@@ -195,43 +195,43 @@ public:
chain.process (dsp::ProcessContextReplacing<float> (inoutBlock));
}
void processBlock (AudioBuffer<double>&, MidiBuffer&) override {}
void processBlock (AudioBuffer<double>&, MidiBuffer&) final {}
//==============================================================================
AudioProcessorEditor* createEditor() override { return nullptr; }
bool hasEditor() const override { return false; }
//==============================================================================
const String getName() const override { return "DSPModulePluginDemo"; }
const String getName() const final { return "DSPModulePluginDemo"; }
bool acceptsMidi() const override { return false; }
bool producesMidi() const override { return false; }
bool isMidiEffect() const override { return false; }
bool acceptsMidi() const final { return false; }
bool producesMidi() const final { return false; }
bool isMidiEffect() const final { return false; }
double getTailLengthSeconds() const override { return 0.0; }
double getTailLengthSeconds() const final { return 0.0; }
//==============================================================================
int getNumPrograms() override { return 1; }
int getCurrentProgram() override { return 0; }
void setCurrentProgram (int) override {}
const String getProgramName (int) override { return "None"; }
int getNumPrograms() final { return 1; }
int getCurrentProgram() final { return 0; }
void setCurrentProgram (int) final {}
const String getProgramName (int) final { return "None"; }
void changeProgramName (int, const String&) override {}
void changeProgramName (int, const String&) final {}
//==============================================================================
bool isBusesLayoutSupported (const BusesLayout& layout) const override
bool isBusesLayoutSupported (const BusesLayout& layout) const final
{
return layout == BusesLayout { { AudioChannelSet::stereo() },
{ AudioChannelSet::stereo() } };
}
//==============================================================================
void getStateInformation (MemoryBlock& destData) override
void getStateInformation (MemoryBlock& destData) final
{
copyXmlToBinary (*apvts.copyState().createXml(), destData);
}
void setStateInformation (const void* data, int sizeInBytes) override
void setStateInformation (const void* data, int sizeInBytes) final
{
apvts.replaceState (ValueTree::fromXml (*getXmlFromBinary (data, sizeInBytes)));
}
@@ -811,7 +811,7 @@ private:
}
//==============================================================================
void valueTreePropertyChanged (ValueTree&, const Identifier&) override
void valueTreePropertyChanged (ValueTree&, const Identifier&) final
{
requiresUpdate.store (true);
}
@@ -1498,7 +1498,7 @@ private:
};
//==============================================================================
class DspModulePluginDemoEditor : public AudioProcessorEditor
class DspModulePluginDemoEditor final : public AudioProcessorEditor
{
public:
explicit DspModulePluginDemoEditor (DspModulePluginDemo& p)
@@ -1637,7 +1637,7 @@ private:
RangedAudioParameter& param;
};
class AttachedSlider : public ComponentWithParamMenu
class AttachedSlider final : public ComponentWithParamMenu
{
public:
AttachedSlider (AudioProcessorEditor& editorIn, RangedAudioParameter& paramIn)
@@ -1663,7 +1663,7 @@ private:
SliderParameterAttachment attachment;
};
class AttachedToggle : public ComponentWithParamMenu
class AttachedToggle final : public ComponentWithParamMenu
{
public:
AttachedToggle (AudioProcessorEditor& editorIn, RangedAudioParameter& paramIn)
@@ -1682,7 +1682,7 @@ private:
ButtonParameterAttachment attachment;
};
class AttachedCombo : public ComponentWithParamMenu
class AttachedCombo final : public ComponentWithParamMenu
{
public:
AttachedCombo (AudioProcessorEditor& editorIn, RangedAudioParameter& paramIn)
@@ -1795,7 +1795,7 @@ private:
grid.performLayout (bounds);
}
struct BasicControls : public Component
struct BasicControls final : public Component
{
explicit BasicControls (AudioProcessorEditor& editor,
const DspModulePluginDemo::ParameterReferences::MainGroup& state)
@@ -1814,7 +1814,7 @@ private:
AttachedSlider pan, input, output;
};
struct DistortionControls : public Component
struct DistortionControls final : public Component
{
explicit DistortionControls (AudioProcessorEditor& editor,
const DspModulePluginDemo::ParameterReferences::DistortionGroup& state)
@@ -1840,7 +1840,7 @@ private:
AttachedCombo type, oversampling;
};
struct ConvolutionControls : public Component
struct ConvolutionControls final : public Component
{
explicit ConvolutionControls (AudioProcessorEditor& editor,
const DspModulePluginDemo::ParameterReferences::ConvolutionGroup& state)
@@ -1860,7 +1860,7 @@ private:
AttachedSlider mix;
};
struct MultiBandControls : public Component
struct MultiBandControls final : public Component
{
explicit MultiBandControls (AudioProcessorEditor& editor,
const DspModulePluginDemo::ParameterReferences::MultiBandGroup& state)
@@ -1881,7 +1881,7 @@ private:
AttachedSlider low, high, lRFreq;
};
struct CompressorControls : public Component
struct CompressorControls final : public Component
{
explicit CompressorControls (AudioProcessorEditor& editor,
const DspModulePluginDemo::ParameterReferences::CompressorGroup& state)
@@ -1903,7 +1903,7 @@ private:
AttachedSlider threshold, ratio, attack, release;
};
struct NoiseGateControls : public Component
struct NoiseGateControls final : public Component
{
explicit NoiseGateControls (AudioProcessorEditor& editor,
const DspModulePluginDemo::ParameterReferences::NoiseGateGroup& state)
@@ -1925,7 +1925,7 @@ private:
AttachedSlider threshold, ratio, attack, release;
};
struct LimiterControls : public Component
struct LimiterControls final : public Component
{
explicit LimiterControls (AudioProcessorEditor& editor,
const DspModulePluginDemo::ParameterReferences::LimiterGroup& state)
@@ -1945,7 +1945,7 @@ private:
AttachedSlider threshold, release;
};
struct DirectDelayControls : public Component
struct DirectDelayControls final : public Component
{
explicit DirectDelayControls (AudioProcessorEditor& editor,
const DspModulePluginDemo::ParameterReferences::DirectDelayGroup& state)
@@ -1968,7 +1968,7 @@ private:
AttachedSlider delay, smooth, mix;
};
struct DelayEffectControls : public Component
struct DelayEffectControls final : public Component
{
explicit DelayEffectControls (AudioProcessorEditor& editor,
const DspModulePluginDemo::ParameterReferences::DelayEffectGroup& state)
@@ -1993,7 +1993,7 @@ private:
AttachedSlider value, smooth, lowpass, feedback, mix;
};
struct PhaserControls : public Component
struct PhaserControls final : public Component
{
explicit PhaserControls (AudioProcessorEditor& editor,
const DspModulePluginDemo::ParameterReferences::PhaserGroup& state)
@@ -2016,7 +2016,7 @@ private:
AttachedSlider rate, depth, centre, feedback, mix;
};
struct ChorusControls : public Component
struct ChorusControls final : public Component
{
explicit ChorusControls (AudioProcessorEditor& editor,
const DspModulePluginDemo::ParameterReferences::ChorusGroup& state)
@@ -2039,7 +2039,7 @@ private:
AttachedSlider rate, depth, centre, feedback, mix;
};
struct LadderControls : public Component
struct LadderControls final : public Component
{
explicit LadderControls (AudioProcessorEditor& editor,
const DspModulePluginDemo::ParameterReferences::LadderGroup& state)
@@ -2088,7 +2088,7 @@ private:
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (DspModulePluginDemoEditor)
};
struct DspModulePluginDemoAudioProcessor : public DspModulePluginDemo
struct DspModulePluginDemoAudioProcessor final : public DspModulePluginDemo
{
AudioProcessorEditor* createEditor() override
{


+ 1
- 1
examples/Plugins/GainPluginDemo.h View File

@@ -50,7 +50,7 @@
//==============================================================================
class GainProcessor : public AudioProcessor
class GainProcessor final : public AudioProcessor
{
public:


+ 24
- 24
examples/Plugins/HostPluginDemo.h View File

@@ -88,7 +88,7 @@ public:
pluginList.addChangeListener (this);
}
bool isBusesLayoutSupported (const BusesLayout& layouts) const override
bool isBusesLayoutSupported (const BusesLayout& layouts) const final
{
const auto& mainOutput = layouts.getMainOutputChannelSet();
const auto& mainInput = layouts.getMainInputChannelSet();
@@ -102,7 +102,7 @@ public:
return true;
}
void prepareToPlay (double sr, int bs) override
void prepareToPlay (double sr, int bs) final
{
const ScopedLock sl (innerMutex);
@@ -115,7 +115,7 @@ public:
}
}
void releaseResources() override
void releaseResources() final
{
const ScopedLock sl (innerMutex);
@@ -125,7 +125,7 @@ public:
inner->releaseResources();
}
void reset() override
void reset() final
{
const ScopedLock sl (innerMutex);
@@ -136,12 +136,12 @@ public:
// In this example, we don't actually pass any audio through the inner processor.
// In a 'real' plugin, we'd need to add some synchronisation to ensure that the inner
// plugin instance was never modified (deleted, replaced etc.) during a call to processBlock.
void processBlock (AudioBuffer<float>&, MidiBuffer&) override
void processBlock (AudioBuffer<float>&, MidiBuffer&) final
{
jassert (! isUsingDoublePrecision());
}
void processBlock (AudioBuffer<double>&, MidiBuffer&) override
void processBlock (AudioBuffer<double>&, MidiBuffer&) final
{
jassert (isUsingDoublePrecision());
}
@@ -149,18 +149,18 @@ public:
bool hasEditor() const override { return false; }
AudioProcessorEditor* createEditor() override { return nullptr; }
const String getName() const override { return "HostPluginDemo"; }
bool acceptsMidi() const override { return true; }
bool producesMidi() const override { return true; }
double getTailLengthSeconds() const override { return 0.0; }
const String getName() const final { return "HostPluginDemo"; }
bool acceptsMidi() const final { return true; }
bool producesMidi() const final { return true; }
double getTailLengthSeconds() const final { return 0.0; }
int getNumPrograms() override { return 0; }
int getCurrentProgram() override { return 0; }
void setCurrentProgram (int) override {}
const String getProgramName (int) override { return "None"; }
void changeProgramName (int, const String&) override {}
int getNumPrograms() final { return 0; }
int getCurrentProgram() final { return 0; }
void setCurrentProgram (int) final {}
const String getProgramName (int) final { return "None"; }
void changeProgramName (int, const String&) final {}
void getStateInformation (MemoryBlock& destData) override
void getStateInformation (MemoryBlock& destData) final
{
const ScopedLock sl (innerMutex);
@@ -185,7 +185,7 @@ public:
destData.replaceAll (text.toRawUTF8(), text.getNumBytesAsUTF8());
}
void setStateInformation (const void* data, int sizeInBytes) override
void setStateInformation (const void* data, int sizeInBytes) final
{
const ScopedLock sl (innerMutex);
@@ -285,7 +285,7 @@ private:
static constexpr const char* innerStateTag = "inner_state";
static constexpr const char* editorStyleTag = "editor_style";
void changeListenerCallback (ChangeBroadcaster* source) override
void changeListenerCallback (ChangeBroadcaster* source) final
{
if (source != &pluginList)
return;
@@ -312,7 +312,7 @@ static void doLayout (Component* main, Component& bottom, int bottomHeight, Rect
grid.performLayout (bounds);
}
class PluginLoaderComponent : public Component
class PluginLoaderComponent final : public Component
{
public:
template <typename Callback>
@@ -348,7 +348,7 @@ public:
}
private:
struct Buttons : public Component
struct Buttons final : public Component
{
Buttons()
{
@@ -390,7 +390,7 @@ private:
};
//==============================================================================
class PluginEditorComponent : public Component
class PluginEditorComponent final : public Component
{
public:
template <typename Callback>
@@ -435,7 +435,7 @@ private:
};
//==============================================================================
class ScaledDocumentWindow : public DocumentWindow
class ScaledDocumentWindow final : public DocumentWindow
{
public:
ScaledDocumentWindow (Colour bg, float scale)
@@ -448,7 +448,7 @@ private:
};
//==============================================================================
class HostAudioProcessorEditor : public AudioProcessorEditor
class HostAudioProcessorEditor final : public AudioProcessorEditor
{
public:
explicit HostAudioProcessorEditor (HostAudioProcessorImpl& owner)
@@ -576,7 +576,7 @@ private:
};
//==============================================================================
class HostAudioProcessor : public HostAudioProcessorImpl
class HostAudioProcessor final : public HostAudioProcessorImpl
{
public:
bool hasEditor() const override { return true; }


+ 6
- 6
examples/Plugins/MidiLoggerPluginDemo.h View File

@@ -113,8 +113,8 @@ private:
};
//==============================================================================
class MidiTable : public Component,
private TableListBoxModel
class MidiTable final : public Component,
private TableListBoxModel
{
public:
MidiTable (MidiListModel& m)
@@ -220,8 +220,8 @@ private:
};
//==============================================================================
class MidiLoggerPluginDemoProcessor : public AudioProcessor,
private Timer
class MidiLoggerPluginDemoProcessor final : public AudioProcessor,
private Timer
{
public:
MidiLoggerPluginDemoProcessor()
@@ -268,8 +268,8 @@ public:
}
private:
class Editor : public AudioProcessorEditor,
private Value::Listener
class Editor final : public AudioProcessorEditor,
private Value::Listener
{
public:
explicit Editor (MidiLoggerPluginDemoProcessor& ownerIn)


+ 1
- 1
examples/Plugins/MultiOutSynthPluginDemo.h View File

@@ -53,7 +53,7 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class MultiOutSynth : public AudioProcessor
class MultiOutSynth final : public AudioProcessor
{
public:
enum


+ 1
- 1
examples/Plugins/NoiseGatePluginDemo.h View File

@@ -50,7 +50,7 @@
//==============================================================================
class NoiseGate : public AudioProcessor
class NoiseGate final : public AudioProcessor
{
public:
//==============================================================================


+ 7
- 7
examples/Plugins/ReaperEmbeddedViewPluginDemo.h View File

@@ -111,7 +111,7 @@ struct EmbeddedViewListener
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wnon-virtual-dtor")
//==============================================================================
class EmbeddedUI : public reaper::IReaperUIEmbedInterface
class EmbeddedUI final : public reaper::IReaperUIEmbedInterface
{
public:
explicit EmbeddedUI (EmbeddedViewListener& demo) : listener (demo) {}
@@ -146,7 +146,7 @@ private:
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
class VST2Extensions : public VST2ClientExtensions
class VST2Extensions final : public VST2ClientExtensions
{
public:
explicit VST2Extensions (EmbeddedViewListener& l)
@@ -187,7 +187,7 @@ private:
EmbeddedViewListener& listener;
};
class VST3Extensions : public VST3ClientExtensions
class VST3Extensions final : public VST3ClientExtensions
{
public:
explicit VST3Extensions (EmbeddedViewListener& l)
@@ -222,7 +222,7 @@ private:
};
//==============================================================================
class Editor : public AudioProcessorEditor
class Editor final : public AudioProcessorEditor
{
public:
explicit Editor (AudioProcessor& proc,
@@ -258,9 +258,9 @@ private:
};
//==============================================================================
class ReaperEmbeddedViewDemo : public AudioProcessor,
private EmbeddedViewListener,
private Timer
class ReaperEmbeddedViewDemo final : public AudioProcessor,
private EmbeddedViewListener,
private Timer
{
public:
ReaperEmbeddedViewDemo()


+ 41
- 41
examples/Plugins/SamplerPluginDemo.h View File

@@ -111,8 +111,8 @@ struct Command
};
template <typename Proc, typename Func>
class TemplateCommand : public Command<Proc>,
private Func
class TemplateCommand final : public Command<Proc>,
private Func
{
public:
template <typename FuncPrime>
@@ -257,7 +257,7 @@ private:
};
//==============================================================================
class MPESamplerVoice : public MPESynthesiserVoice
class MPESamplerVoice final : public MPESynthesiserVoice
{
public:
explicit MPESamplerVoice (std::shared_ptr<const MPESamplerSound> sound)
@@ -501,7 +501,7 @@ private:
};
template <typename Contents>
class ReferenceCountingAdapter : public ReferenceCountedObject
class ReferenceCountingAdapter final : public ReferenceCountedObject
{
public:
template <typename... Args>
@@ -564,7 +564,7 @@ public:
};
//==============================================================================
class MemoryAudioFormatReaderFactory : public AudioFormatReaderFactory
class MemoryAudioFormatReaderFactory final : public AudioFormatReaderFactory
{
public:
MemoryAudioFormatReaderFactory (const void* sampleDataIn, size_t dataSizeIn)
@@ -588,7 +588,7 @@ private:
};
//==============================================================================
class FileAudioFormatReaderFactory : public AudioFormatReaderFactory
class FileAudioFormatReaderFactory final : public AudioFormatReaderFactory
{
public:
explicit FileAudioFormatReaderFactory (File fileIn)
@@ -643,20 +643,20 @@ struct GenericVariantConverter
};
template <typename Numeric>
struct VariantConverter<Range<Numeric>> : GenericVariantConverter<Range<Numeric>> {};
struct VariantConverter<Range<Numeric>> final : GenericVariantConverter<Range<Numeric>> {};
template<>
struct VariantConverter<MPEZoneLayout> : GenericVariantConverter<MPEZoneLayout> {};
struct VariantConverter<MPEZoneLayout> final : GenericVariantConverter<MPEZoneLayout> {};
template<>
struct VariantConverter<std::shared_ptr<AudioFormatReaderFactory>>
struct VariantConverter<std::shared_ptr<AudioFormatReaderFactory>> final
: GenericVariantConverter<std::shared_ptr<AudioFormatReaderFactory>>
{};
} // namespace juce
//==============================================================================
class VisibleRangeDataModel : private ValueTree::Listener
class VisibleRangeDataModel final : private ValueTree::Listener
{
public:
class Listener
@@ -757,7 +757,7 @@ private:
};
//==============================================================================
class MPESettingsDataModel : private ValueTree::Listener
class MPESettingsDataModel final : private ValueTree::Listener
{
public:
class Listener
@@ -947,7 +947,7 @@ private:
};
//==============================================================================
class DataModel : private ValueTree::Listener
class DataModel final : private ValueTree::Listener
{
public:
class Listener
@@ -1132,8 +1132,8 @@ constexpr int controlSeparation = 6;
} // namespace
//==============================================================================
class MPELegacySettingsComponent final : public Component,
private MPESettingsDataModel::Listener
class MPELegacySettingsComponent final : public Component,
private MPESettingsDataModel::Listener
{
public:
explicit MPELegacySettingsComponent (const MPESettingsDataModel& model,
@@ -1256,8 +1256,8 @@ private:
};
//==============================================================================
class MPENewSettingsComponent final : public Component,
private MPESettingsDataModel::Listener
class MPENewSettingsComponent final : public Component,
private MPESettingsDataModel::Listener
{
public:
MPENewSettingsComponent (const MPESettingsDataModel& model,
@@ -1352,8 +1352,8 @@ private:
};
//==============================================================================
class MPESettingsComponent final : public Component,
private MPESettingsDataModel::Listener
class MPESettingsComponent final : public Component,
private MPESettingsDataModel::Listener
{
public:
MPESettingsComponent (const MPESettingsDataModel& model,
@@ -1446,7 +1446,7 @@ private:
};
//==============================================================================
class LoopPointMarker : public Component
class LoopPointMarker final : public Component
{
public:
using MouseCallback = std::function<void (LoopPointMarker&, const MouseEvent&)>;
@@ -1523,8 +1523,8 @@ private:
};
//==============================================================================
class Ruler : public Component,
private VisibleRangeDataModel::Listener
class Ruler final : public Component,
private VisibleRangeDataModel::Listener
{
public:
explicit Ruler (const VisibleRangeDataModel& model)
@@ -1614,9 +1614,9 @@ private:
};
//==============================================================================
class LoopPointsOverlay : public Component,
private DataModel::Listener,
private VisibleRangeDataModel::Listener
class LoopPointsOverlay final : public Component,
private DataModel::Listener,
private VisibleRangeDataModel::Listener
{
public:
LoopPointsOverlay (const DataModel& dModel,
@@ -1715,9 +1715,9 @@ private:
};
//==============================================================================
class PlaybackPositionOverlay : public Component,
private Timer,
private VisibleRangeDataModel::Listener
class PlaybackPositionOverlay final : public Component,
private Timer,
private VisibleRangeDataModel::Listener
{
public:
using Provider = std::function<std::vector<float>()>;
@@ -1762,10 +1762,10 @@ private:
};
//==============================================================================
class WaveformView : public Component,
private ChangeListener,
private DataModel::Listener,
private VisibleRangeDataModel::Listener
class WaveformView final : public Component,
private ChangeListener,
private DataModel::Listener,
private VisibleRangeDataModel::Listener
{
public:
WaveformView (const DataModel& model,
@@ -1853,8 +1853,8 @@ private:
};
//==============================================================================
class WaveformEditor : public Component,
private DataModel::Listener
class WaveformEditor final : public Component,
private DataModel::Listener
{
public:
WaveformEditor (const DataModel& model,
@@ -1909,9 +1909,9 @@ private:
};
//==============================================================================
class MainSamplerView : public Component,
private DataModel::Listener,
private ChangeListener
class MainSamplerView final : public Component,
private DataModel::Listener,
private ChangeListener
{
public:
MainSamplerView (const DataModel& model,
@@ -2103,7 +2103,7 @@ struct ProcessorState
};
//==============================================================================
class SamplerAudioProcessor : public AudioProcessor
class SamplerAudioProcessor final : public AudioProcessor
{
public:
SamplerAudioProcessor()
@@ -2366,10 +2366,10 @@ public:
private:
//==============================================================================
class SamplerAudioProcessorEditor : public AudioProcessorEditor,
public FileDragAndDropTarget,
private DataModel::Listener,
private MPESettingsDataModel::Listener
class SamplerAudioProcessorEditor final : public AudioProcessorEditor,
public FileDragAndDropTarget,
private DataModel::Listener,
private MPESettingsDataModel::Listener
{
public:
SamplerAudioProcessorEditor (SamplerAudioProcessor& p, ProcessorState state)


+ 7
- 7
examples/Plugins/SurroundPluginDemo.h View File

@@ -105,7 +105,7 @@ public:
samplesPlayed = samplesToPlay;
}
bool applyBusLayouts (const BusesLayout& layouts) override
bool applyBusLayouts (const BusesLayout& layouts) final
{
// Some very badly-behaved hosts will call this during processing!
const SpinLock::ScopedLockType lock (levelMutex);
@@ -225,8 +225,8 @@ inline void configureLabel (Label& label, const AudioProcessor::Bus* layout)
label.setColour (Label::textColourId, textColour);
}
class InputBusViewer : public Component,
private Timer
class InputBusViewer final : public Component,
private Timer
{
public:
InputBusViewer (ProcessorWithLevels& proc, int busNumber)
@@ -306,7 +306,7 @@ private:
};
//==============================================================================
class OutputBusViewer : public Component
class OutputBusViewer final : public Component
{
public:
OutputBusViewer (ProcessorWithLevels& proc, int busNumber)
@@ -332,7 +332,7 @@ public:
channelButtons.emplace_back (channelName, channelName);
auto& newButton = channelButtons.back();
newButton.onClick = [&proc = processor, bus = bus, i] { proc.channelButtonClicked (bus, i); };
newButton.onClick = [&p = processor, b = bus, i] { p.channelButtonClicked (b, i); };
addAndMakeVisible (newButton);
}
@@ -376,7 +376,7 @@ private:
};
//==============================================================================
class SurroundEditor : public AudioProcessorEditor
class SurroundEditor final : public AudioProcessorEditor
{
public:
explicit SurroundEditor (ProcessorWithLevels& parent)
@@ -454,7 +454,7 @@ private:
};
//==============================================================================
struct SurroundProcessor : public ProcessorWithLevels
struct SurroundProcessor final : public ProcessorWithLevels
{
AudioProcessorEditor* createEditor() override { return new SurroundEditor (*this); }
bool hasEditor() const override { return true; }


+ 2
- 2
examples/Utilities/AnalyticsCollectionDemo.h View File

@@ -58,7 +58,7 @@ enum DemoAnalyticsEventTypes
};
//==============================================================================
class GoogleAnalyticsDestination : public ThreadedAnalyticsDestination
class GoogleAnalyticsDestination final : public ThreadedAnalyticsDestination
{
public:
GoogleAnalyticsDestination()
@@ -298,7 +298,7 @@ private:
};
//==============================================================================
class AnalyticsCollectionDemo : public Component
class AnalyticsCollectionDemo final : public Component
{
public:
//==============================================================================


+ 6
- 6
examples/Utilities/Box2DDemo.h View File

@@ -101,8 +101,8 @@ JUCE_END_IGNORE_WARNINGS_GCC_LIKE
/** This list box just displays a StringArray and broadcasts a change message when the
selected row changes.
*/
class Box2DTestList : public ListBoxModel,
public ChangeBroadcaster
class Box2DTestList final : public ListBoxModel,
public ChangeBroadcaster
{
public:
Box2DTestList (const StringArray& testList)
@@ -134,7 +134,7 @@ private:
};
//==============================================================================
struct Box2DRenderComponent : public Component
struct Box2DRenderComponent final : public Component
{
Box2DRenderComponent()
{
@@ -159,9 +159,9 @@ struct Box2DRenderComponent : public Component
};
//==============================================================================
class Box2DDemo : public Component,
private Timer,
private ChangeListener
class Box2DDemo final : public Component,
private Timer,
private ChangeListener
{
public:
enum Demos


+ 8
- 8
examples/Utilities/ChildProcessDemo.h View File

@@ -76,8 +76,8 @@ static String valueTreeToString (const ValueTree& v)
}
//==============================================================================
class ChildProcessDemo : public Component,
private MessageListener
class ChildProcessDemo final : public Component,
private MessageListener
{
public:
ChildProcessDemo()
@@ -174,9 +174,9 @@ public:
//==============================================================================
// This class is used by the main process, acting as the coordinator and receiving messages
// from the worker process.
class DemoCoordinatorProcess : public ChildProcessCoordinator,
private DeletedAtShutdown,
private AsyncUpdater
class DemoCoordinatorProcess final : public ChildProcessCoordinator,
private DeletedAtShutdown,
private AsyncUpdater
{
public:
DemoCoordinatorProcess (ChildProcessDemo& d) : demo (d) {}
@@ -257,8 +257,8 @@ private:
/* This class gets instantiated in the child process, and receives messages from
the coordinator process.
*/
class DemoWorkerProcess : public ChildProcessWorker,
private DeletedAtShutdown
class DemoWorkerProcess final : public ChildProcessWorker,
private DeletedAtShutdown
{
public:
DemoWorkerProcess() = default;
@@ -322,7 +322,7 @@ inline bool invokeChildProcessDemo (const String& commandLine)
// based on the command line parameters, we can't just use the normal auto-generated Main.cpp.
// Instead, we don't do anything in Main.cpp and create a JUCEApplication subclass here with
// the necessary modifications.
class Application : public JUCEApplication
class Application final : public JUCEApplication
{
public:
//==============================================================================


+ 3
- 3
examples/Utilities/CryptographyDemo.h View File

@@ -49,7 +49,7 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class RSAComponent : public Component
class RSAComponent final : public Component
{
public:
RSAComponent()
@@ -141,7 +141,7 @@ private:
};
//==============================================================================
class HashesComponent : public Component
class HashesComponent final : public Component
{
public:
HashesComponent()
@@ -238,7 +238,7 @@ private:
};
//==============================================================================
class CryptographyDemo : public Component
class CryptographyDemo final : public Component
{
public:
CryptographyDemo()


+ 7
- 7
examples/Utilities/InAppPurchasesDemo.h View File

@@ -67,7 +67,7 @@
*/
//==============================================================================
class VoicePurchases : private InAppPurchases::Listener
class VoicePurchases final : private InAppPurchases::Listener
{
public:
//==============================================================================
@@ -278,7 +278,7 @@ private:
};
//==============================================================================
class PhraseModel : public ListBoxModel
class PhraseModel final : public ListBoxModel
{
public:
PhraseModel() {}
@@ -308,12 +308,12 @@ private:
};
//==============================================================================
class VoiceModel : public ListBoxModel
class VoiceModel final : public ListBoxModel
{
public:
//==============================================================================
class VoiceRow : public Component,
private Timer
class VoiceRow final : public Component,
private Timer
{
public:
VoiceRow (VoicePurchases& voicePurchases) : purchases (voicePurchases)
@@ -491,8 +491,8 @@ private:
};
//==============================================================================
class InAppPurchasesDemo : public Component,
private AsyncUpdater
class InAppPurchasesDemo final : public Component,
private AsyncUpdater
{
public:
InAppPurchasesDemo()


+ 4
- 4
examples/Utilities/JavaScriptDemo.h View File

@@ -49,9 +49,9 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class JavaScriptDemo : public Component,
private CodeDocument::Listener,
private Timer
class JavaScriptDemo final : public Component,
private CodeDocument::Listener,
private Timer
{
public:
JavaScriptDemo()
@@ -125,7 +125,7 @@ public:
//==============================================================================
// This class is used by the script, and provides methods that the JS can call.
struct DemoClass : public DynamicObject
struct DemoClass final : public DynamicObject
{
DemoClass (JavaScriptDemo& demo) : owner (demo)
{


+ 2
- 2
examples/Utilities/LiveConstantDemo.h View File

@@ -49,7 +49,7 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
struct LiveConstantDemoComponent : public Component
struct LiveConstantDemoComponent final : public Component
{
LiveConstantDemoComponent() {}
@@ -78,7 +78,7 @@ struct LiveConstantDemoComponent : public Component
};
//==============================================================================
class LiveConstantDemo : public Component
class LiveConstantDemo final : public Component
{
public:
LiveConstantDemo()


+ 7
- 7
examples/Utilities/MultithreadingDemo.h View File

@@ -49,7 +49,7 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class BouncingBall : private ComponentListener
class BouncingBall : private ComponentListener
{
public:
BouncingBall (Component& comp)
@@ -145,8 +145,8 @@ private:
};
//==============================================================================
class DemoThread : public BouncingBall,
public Thread
class DemoThread final : public BouncingBall,
public Thread
{
public:
DemoThread (Component& containerComp)
@@ -194,8 +194,8 @@ private:
//==============================================================================
class DemoThreadPoolJob : public BouncingBall,
public ThreadPoolJob
class DemoThreadPoolJob final : public BouncingBall,
public ThreadPoolJob
{
public:
DemoThreadPoolJob (Component& containerComp)
@@ -232,8 +232,8 @@ private:
};
//==============================================================================
class MultithreadingDemo : public Component,
private Timer
class MultithreadingDemo final : public Component,
private Timer
{
public:
//==============================================================================


+ 2
- 2
examples/Utilities/NetworkingDemo.h View File

@@ -49,8 +49,8 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class NetworkingDemo : public Component,
private Thread
class NetworkingDemo final : public Component,
private Thread
{
public:
NetworkingDemo()


+ 10
- 10
examples/Utilities/OSCDemo.h View File

@@ -48,9 +48,9 @@
//==============================================================================
class OSCLogListBox : public ListBox,
private ListBoxModel,
private AsyncUpdater
class OSCLogListBox final : public ListBox,
private ListBoxModel,
private AsyncUpdater
{
public:
OSCLogListBox()
@@ -189,7 +189,7 @@ private:
};
//==============================================================================
class OSCSenderDemo : public Component
class OSCSenderDemo final : public Component
{
public:
OSCSenderDemo()
@@ -238,9 +238,9 @@ private:
};
//==============================================================================
class OSCReceiverDemo : public Component,
private OSCReceiver,
private OSCReceiver::ListenerWithOSCAddress<OSCReceiver::MessageLoopCallback>
class OSCReceiverDemo final : public Component,
private OSCReceiver,
private OSCReceiver::ListenerWithOSCAddress<OSCReceiver::MessageLoopCallback>
{
public:
//==============================================================================
@@ -289,8 +289,8 @@ private:
};
//==============================================================================
class OSCMonitorDemo : public Component,
private OSCReceiver::Listener<OSCReceiver::MessageLoopCallback>
class OSCMonitorDemo final : public Component,
private OSCReceiver::Listener<OSCReceiver::MessageLoopCallback>
{
public:
//==============================================================================
@@ -465,7 +465,7 @@ private:
};
//==============================================================================
class OSCDemo : public Component
class OSCDemo final : public Component
{
public:
OSCDemo()


+ 8
- 8
examples/Utilities/PushNotificationsDemo.h View File

@@ -121,10 +121,10 @@ public class JuceActivity extends Activity
*/
//==============================================================================
class PushNotificationsDemo : public Component,
private ChangeListener,
private ComponentListener,
private PushNotifications::Listener
class PushNotificationsDemo final : public Component,
private ChangeListener,
private ComponentListener,
private PushNotifications::Listener
{
public:
//==============================================================================
@@ -781,7 +781,7 @@ private:
}
#endif
struct RowComponent : public Component
struct RowComponent final : public Component
{
RowComponent (Label& l, Component& c, int u = 1)
: label (l),
@@ -1123,7 +1123,7 @@ private:
OwnedArray<RowComponent> rowComponents;
};
struct AuxActionsView : public Component
struct AuxActionsView final : public Component
{
AuxActionsView()
{
@@ -1177,7 +1177,7 @@ private:
TextButton removeAllPendingNotifsButton { "Remove All Pending Notifs" };
};
struct RemoteView : public Component
struct RemoteView final : public Component
{
RemoteView()
{
@@ -1209,7 +1209,7 @@ private:
TextButton unsubscribeFromSportsButton { "UnsubscribeFromSports" };
};
struct DemoTabbedComponent : public TabbedComponent
struct DemoTabbedComponent final : public TabbedComponent
{
DemoTabbedComponent (PushNotificationsDemo& demoIn, TabbedButtonBar::Orientation orientation)
: TabbedComponent (orientation), demo (demoIn)


+ 1
- 1
examples/Utilities/SystemInfoDemo.h View File

@@ -219,7 +219,7 @@ static String getAllSystemInfo()
return systemInfo;
}
class SystemInfoDemo : public Component
class SystemInfoDemo final : public Component
{
public:
SystemInfoDemo()


+ 7
- 7
examples/Utilities/TimersAndEventsDemo.h View File

@@ -50,7 +50,7 @@
//==============================================================================
/** Simple message that holds a Colour. */
struct ColourMessage : public Message
struct ColourMessage final : public Message
{
ColourMessage (Colour col) : colour (col) {}
@@ -73,10 +73,10 @@ struct ColourMessage : public Message
The flash will then fade using a Timer to repaint itself and will send a change
message once it is finished.
*/
class FlashingComponent : public Component,
public MessageListener,
public ChangeBroadcaster,
private Timer
class FlashingComponent final : public Component,
public MessageListener,
public ChangeBroadcaster,
private Timer
{
public:
FlashingComponent() {}
@@ -144,8 +144,8 @@ private:
};
//==============================================================================
class TimersAndEventsDemo : public Component,
private ChangeListener
class TimersAndEventsDemo final : public Component,
private ChangeListener
{
public:
TimersAndEventsDemo()


+ 4
- 4
examples/Utilities/UnitTestsDemo.h View File

@@ -53,7 +53,7 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class UnitTestsDemo : public Component
class UnitTestsDemo final : public Component
{
public:
UnitTestsDemo()
@@ -146,8 +146,8 @@ public:
private:
//==============================================================================
class TestRunnerThread : public Thread,
private Timer
class TestRunnerThread final : public Thread,
private Timer
{
public:
TestRunnerThread (UnitTestsDemo& utd, const String& ctg)
@@ -190,7 +190,7 @@ private:
//==============================================================================
// This subclass of UnitTestRunner is used to redirect the test output to our
// TextBox, and to interrupt the running tests when our thread is asked to stop..
class CustomTestRunner : public UnitTestRunner
class CustomTestRunner final : public UnitTestRunner
{
public:
CustomTestRunner (TestRunnerThread& trt) : owner (trt) {}


+ 5
- 5
examples/Utilities/ValueTreesDemo.h View File

@@ -49,8 +49,8 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class ValueTreeItem : public TreeViewItem,
private ValueTree::Listener
class ValueTreeItem final : public TreeViewItem,
private ValueTree::Listener
{
public:
ValueTreeItem (const ValueTree& v, UndoManager& um)
@@ -179,9 +179,9 @@ private:
};
//==============================================================================
class ValueTreesDemo : public Component,
public DragAndDropContainer,
private Timer
class ValueTreesDemo final : public Component,
public DragAndDropContainer,
private Timer
{
public:
ValueTreesDemo()


+ 4
- 4
examples/Utilities/XMLandJSONDemo.h View File

@@ -49,7 +49,7 @@
#include "../Assets/DemoUtilities.h"
//==============================================================================
class XmlTreeItem : public TreeViewItem
class XmlTreeItem final : public TreeViewItem
{
public:
XmlTreeItem (XmlElement& x) : xml (x) {}
@@ -115,7 +115,7 @@ private:
};
//==============================================================================
class JsonTreeItem : public TreeViewItem
class JsonTreeItem final : public TreeViewItem
{
public:
JsonTreeItem (Identifier i, var value)
@@ -228,8 +228,8 @@ private:
};
//==============================================================================
class XMLandJSONDemo : public Component,
private CodeDocument::Listener
class XMLandJSONDemo final : public Component,
private CodeDocument::Listener
{
public:
/** The type of database to parse. */


+ 2
- 2
extras/AudioPerformanceTest/Source/MainComponent.h View File

@@ -29,8 +29,8 @@
#include <mutex>
//==============================================================================
class MainContentComponent : public AudioAppComponent,
private Timer
class MainContentComponent final : public AudioAppComponent,
private Timer
{
public:
//==============================================================================


+ 4
- 4
extras/AudioPluginHost/Source/HostStartup.cpp View File

@@ -31,8 +31,8 @@
#error "If you're building the audio plugin host, you probably want to enable VST and/or AU support"
#endif
class PluginScannerSubprocess : private ChildProcessWorker,
private AsyncUpdater
class PluginScannerSubprocess final : private ChildProcessWorker,
private AsyncUpdater
{
public:
PluginScannerSubprocess()
@@ -139,8 +139,8 @@ private:
};
//==============================================================================
class PluginHostApp : public JUCEApplication,
private AsyncUpdater
class PluginHostApp final : public JUCEApplication,
private AsyncUpdater
{
public:
PluginHostApp() = default;


+ 15
- 15
extras/AudioPluginHost/Source/Plugins/ARAPlugin.h View File

@@ -213,7 +213,7 @@ private:
};
//==============================================================================
class AudioAccessController : public ARA::Host::AudioAccessControllerInterface
class AudioAccessController final : public ARA::Host::AudioAccessControllerInterface
{
public:
ARA::ARAAudioReaderHostRef createAudioReaderForSource (ARA::ARAAudioSourceHostRef audioSourceHostRef,
@@ -264,7 +264,7 @@ private:
std::map<AudioReader*, std::unique_ptr<AudioReader>> audioReaders;
};
class ArchivingController : public ARA::Host::ArchivingControllerInterface
class ArchivingController final : public ARA::Host::ArchivingControllerInterface
{
public:
using ReaderConverter = ARAHostModel::ConversionFunctions<MemoryBlock*, ARA::ARAArchiveReaderHostRef>;
@@ -316,7 +316,7 @@ public:
}
};
class ContentAccessController : public ARA::Host::ContentAccessControllerInterface
class ContentAccessController final : public ARA::Host::ContentAccessControllerInterface
{
public:
using Converter = ARAHostModel::ConversionFunctions<ARA::ARAContentType, ARA::ARAContentReaderHostRef>;
@@ -433,7 +433,7 @@ public:
ARA::ARAContentBarSignature barSignature;
};
class ModelUpdateController : public ARA::Host::ModelUpdateControllerInterface
class ModelUpdateController final : public ARA::Host::ModelUpdateControllerInterface
{
public:
void notifyAudioSourceAnalysisProgress (ARA::ARAAudioSourceHostRef audioSourceHostRef,
@@ -465,7 +465,7 @@ public:
}
};
class PlaybackController : public ARA::Host::PlaybackControllerInterface
class PlaybackController final : public ARA::Host::PlaybackControllerInterface
{
public:
void requestStartPlayback() noexcept override {}
@@ -484,7 +484,7 @@ public:
void requestEnableCycle (bool enable) noexcept override { ignoreUnused (enable); }
};
struct SimplePlayHead : public juce::AudioPlayHead
struct SimplePlayHead final : public juce::AudioPlayHead
{
Optional<PositionInfo> getPosition() const override
{
@@ -509,9 +509,9 @@ struct HostPlaybackController
virtual void clearAudioSource() = 0;
};
class AudioSourceComponent : public Component,
public FileDragAndDropTarget,
public ChangeListener
class AudioSourceComponent final : public Component,
public FileDragAndDropTarget,
public ChangeListener
{
public:
explicit AudioSourceComponent (HostPlaybackController& controller, juce::ChangeBroadcaster& bc)
@@ -607,8 +607,8 @@ public:
}
private:
class WaveformComponent : public Component,
public ChangeListener
class WaveformComponent final : public Component,
public ChangeListener
{
public:
WaveformComponent (AudioSourceComponent& p)
@@ -701,14 +701,14 @@ private:
TextButton playButton, goToStartButton;
};
class ARAPluginInstanceWrapper : public AudioPluginInstance
class ARAPluginInstanceWrapper final : public AudioPluginInstance
{
public:
class ARATestHost : public HostPlaybackController,
public juce::ChangeBroadcaster
class ARATestHost final : public HostPlaybackController,
public juce::ChangeBroadcaster
{
public:
class Editor : public AudioProcessorEditor
class Editor final : public AudioProcessorEditor
{
public:
explicit Editor (ARATestHost& araTestHost)


+ 4
- 4
extras/AudioPluginHost/Source/Plugins/IOConfigurationWindow.cpp View File

@@ -31,7 +31,7 @@
//==============================================================================
struct NumberedBoxes : public TableListBox,
struct NumberedBoxes final : public TableListBox,
private TableListBoxModel,
private Button::Listener
{
@@ -170,9 +170,9 @@ private:
};
//==============================================================================
class IOConfigurationWindow::InputOutputConfig : public Component,
private Button::Listener,
private NumberedBoxes::Listener
class IOConfigurationWindow::InputOutputConfig final : public Component,
private Button::Listener,
private NumberedBoxes::Listener
{
public:
InputOutputConfig (IOConfigurationWindow& parent, bool direction)


+ 1
- 1
extras/AudioPluginHost/Source/Plugins/IOConfigurationWindow.h View File

@@ -30,7 +30,7 @@ class GraphDocumentComponent;
//==============================================================================
class IOConfigurationWindow : public AudioProcessorEditor
class IOConfigurationWindow final : public AudioProcessorEditor
{
public:
IOConfigurationWindow (AudioProcessor&);


+ 3
- 3
extras/AudioPluginHost/Source/Plugins/InternalPlugins.cpp View File

@@ -61,7 +61,7 @@ static std::unique_ptr<InputStream> createAssetInputStream (const char* resource
#include "../../../../examples/Plugins/SurroundPluginDemo.h"
//==============================================================================
class InternalPlugin : public AudioPluginInstance
class InternalPlugin final : public AudioPluginInstance
{
public:
explicit InternalPlugin (std::unique_ptr<AudioProcessor> innerIn)
@@ -167,7 +167,7 @@ private:
};
//==============================================================================
class SineWaveSynth : public AudioProcessor
class SineWaveSynth final : public AudioProcessor
{
public:
SineWaveSynth()
@@ -343,7 +343,7 @@ private:
};
//==============================================================================
class ReverbPlugin : public AudioProcessor
class ReverbPlugin final : public AudioProcessor
{
public:
ReverbPlugin()


+ 1
- 1
extras/AudioPluginHost/Source/Plugins/InternalPlugins.h View File

@@ -32,7 +32,7 @@
/**
Manages the internal plugin types.
*/
class InternalPluginFormat : public AudioPluginFormat
class InternalPluginFormat final : public AudioPluginFormat
{
public:
//==============================================================================


+ 3
- 3
extras/AudioPluginHost/Source/Plugins/PluginGraph.h View File

@@ -55,9 +55,9 @@ struct PluginDescriptionAndPreference
/**
A collection of plugins and some connections between them.
*/
class PluginGraph : public FileBasedDocument,
public AudioProcessorListener,
private ChangeListener
class PluginGraph final : public FileBasedDocument,
public AudioProcessorListener,
private ChangeListener
{
public:
//==============================================================================


+ 15
- 15
extras/AudioPluginHost/Source/UI/GraphEditorPanel.cpp View File

@@ -92,8 +92,8 @@
#endif
//==============================================================================
struct GraphEditorPanel::PinComponent : public Component,
public SettableTooltipClient
struct GraphEditorPanel::PinComponent final : public Component,
public SettableTooltipClient
{
PinComponent (GraphEditorPanel& p, AudioProcessorGraph::NodeAndChannel pinToUse, bool isIn)
: panel (p), graph (p.graph), pin (pinToUse), isInput (isIn)
@@ -170,10 +170,10 @@ struct GraphEditorPanel::PinComponent : public Component,
};
//==============================================================================
struct GraphEditorPanel::PluginComponent : public Component,
public Timer,
private AudioProcessorParameter::Listener,
private AsyncUpdater
struct GraphEditorPanel::PluginComponent final : public Component,
public Timer,
private AudioProcessorParameter::Listener,
private AsyncUpdater
{
PluginComponent (GraphEditorPanel& p, AudioProcessorGraph::NodeID id) : panel (p), graph (p.graph), pluginID (id)
{
@@ -554,8 +554,8 @@ struct GraphEditorPanel::PluginComponent : public Component,
//==============================================================================
struct GraphEditorPanel::ConnectorComponent : public Component,
public SettableTooltipClient
struct GraphEditorPanel::ConnectorComponent final : public Component,
public SettableTooltipClient
{
explicit ConnectorComponent (GraphEditorPanel& p)
: panel (p), graph (p.graph)
@@ -1001,8 +1001,8 @@ void GraphEditorPanel::timerCallback()
}
//==============================================================================
struct GraphDocumentComponent::TooltipBar : public Component,
private Timer
struct GraphDocumentComponent::TooltipBar final : public Component,
private Timer
{
TooltipBar()
{
@@ -1038,8 +1038,8 @@ struct GraphDocumentComponent::TooltipBar : public Component,
};
//==============================================================================
class GraphDocumentComponent::TitleBarComponent : public Component,
private Button::Listener
class GraphDocumentComponent::TitleBarComponent final : public Component,
private Button::Listener
{
public:
explicit TitleBarComponent (GraphDocumentComponent& graphDocumentComponent)
@@ -1134,9 +1134,9 @@ private:
};
//==============================================================================
struct GraphDocumentComponent::PluginListBoxModel : public ListBoxModel,
public ChangeListener,
public MouseListener
struct GraphDocumentComponent::PluginListBoxModel final : public ListBoxModel,
public ChangeListener,
public MouseListener
{
PluginListBoxModel (ListBox& lb, KnownPluginList& kpl)
: owner (lb),


+ 7
- 7
extras/AudioPluginHost/Source/UI/GraphEditorPanel.h View File

@@ -33,9 +33,9 @@ class MainHostWindow;
/**
A panel that displays and edits a PluginGraph.
*/
class GraphEditorPanel : public Component,
public ChangeListener,
private Timer
class GraphEditorPanel final : public Component,
public ChangeListener,
private Timer
{
public:
//==============================================================================
@@ -98,10 +98,10 @@ private:
It also manages the graph itself, and plays it.
*/
class GraphDocumentComponent : public Component,
public DragAndDropTarget,
public DragAndDropContainer,
private ChangeListener
class GraphDocumentComponent final : public Component,
public DragAndDropTarget,
public DragAndDropContainer,
private ChangeListener
{
public:
GraphDocumentComponent (AudioPluginFormatManager& formatManager,


+ 5
- 5
extras/AudioPluginHost/Source/UI/MainHostWindow.cpp View File

@@ -30,7 +30,7 @@
constexpr const char* scanModeKey = "pluginScanMode";
//==============================================================================
class Superprocess : private ChildProcessCoordinator
class Superprocess final : private ChildProcessCoordinator
{
public:
Superprocess()
@@ -94,8 +94,8 @@ private:
};
//==============================================================================
class CustomPluginScanner : public KnownPluginList::CustomScanner,
private ChangeListener
class CustomPluginScanner final : public KnownPluginList::CustomScanner,
private ChangeListener
{
public:
CustomPluginScanner()
@@ -202,7 +202,7 @@ private:
};
//==============================================================================
class CustomPluginListComponent : public PluginListComponent
class CustomPluginListComponent final : public PluginListComponent
{
public:
CustomPluginListComponent (AudioPluginFormatManager& manager,
@@ -256,7 +256,7 @@ private:
};
//==============================================================================
class MainHostWindow::PluginListWindow : public DocumentWindow
class MainHostWindow::PluginListWindow final : public DocumentWindow
{
public:
PluginListWindow (MainHostWindow& mw, AudioPluginFormatManager& pluginFormatManager)


+ 5
- 5
extras/AudioPluginHost/Source/UI/MainHostWindow.h View File

@@ -74,11 +74,11 @@ void addPluginAutoScaleOptionsSubMenu (AudioPluginInstance*, PopupMenu&);
constexpr const char* processUID = "juceaudiopluginhost";
//==============================================================================
class MainHostWindow : public DocumentWindow,
public MenuBarModel,
public ApplicationCommandTarget,
public ChangeListener,
public FileDragAndDropTarget
class MainHostWindow final : public DocumentWindow,
public MenuBarModel,
public ApplicationCommandTarget,
public ChangeListener,
public FileDragAndDropTarget
{
public:
//==============================================================================


+ 7
- 7
extras/AudioPluginHost/Source/UI/PluginWindow.h View File

@@ -46,10 +46,10 @@ class PluginGraph;
/**
A window that shows a log of parameter change messages sent by the plugin.
*/
class PluginDebugWindow : public AudioProcessorEditor,
public AudioProcessorParameter::Listener,
public ListBoxModel,
public AsyncUpdater
class PluginDebugWindow final : public AudioProcessorEditor,
public AudioProcessorParameter::Listener,
public ListBoxModel,
public AsyncUpdater
{
public:
PluginDebugWindow (AudioProcessor& proc)
@@ -146,7 +146,7 @@ private:
/**
A desktop window containing a plugin's GUI.
*/
class PluginWindow : public DocumentWindow
class PluginWindow final : public DocumentWindow
{
public:
enum class Type
@@ -235,7 +235,7 @@ public:
}
private:
class DecoratorConstrainer : public BorderedComponentBoundsConstrainer
class DecoratorConstrainer final : public BorderedComponentBoundsConstrainer
{
public:
explicit DecoratorConstrainer (DocumentWindow& windowIn)
@@ -327,7 +327,7 @@ private:
}
//==============================================================================
struct ProgramAudioProcessorEditor : public AudioProcessorEditor
struct ProgramAudioProcessorEditor final : public AudioProcessorEditor
{
explicit ProgramAudioProcessorEditor (AudioProcessor& p)
: AudioProcessorEditor (p)


+ 2
- 2
extras/Build/juceaide/Main.cpp View File

@@ -104,7 +104,7 @@ int writeBinaryData (juce::ArgumentList&& args)
return 0;
}
struct IconParseResults final
struct IconParseResults
{
juce::build_tools::Icons icons;
juce::File output;
@@ -191,7 +191,7 @@ bool getBoolValue (const std::unordered_map<juce::String, juce::String>& dict, j
|| str.equalsIgnoreCase ("on");
}
struct UpdateField final
struct UpdateField
{
const std::unordered_map<juce::String, juce::String>& dict;


+ 6
- 6
extras/NetworkGraphicsDemo/Source/ClientComponent.h View File

@@ -29,12 +29,12 @@
particular client covers, and updates itself when messages arrive from the master
containing new canvas states.
*/
class ClientCanvasComponent : public Component,
private OSCSender,
private OSCReceiver,
private OSCReceiver::Listener<OSCReceiver::RealtimeCallback>,
private AsyncUpdater,
private Timer
class ClientCanvasComponent final : public Component,
private OSCSender,
private OSCReceiver,
private OSCReceiver::Listener<OSCReceiver::RealtimeCallback>,
private AsyncUpdater,
private Timer
{
public:
ClientCanvasComponent (PropertiesFile& p, int windowIndex) : properties (p)


+ 8
- 8
extras/NetworkGraphicsDemo/Source/Demos.h View File

@@ -24,7 +24,7 @@
*/
struct BlankCanvas : public AnimatedContent
struct BlankCanvas final : public AnimatedContent
{
String getName() const override { return "Blank Canvas"; }
void reset() override {}
@@ -33,7 +33,7 @@ struct BlankCanvas : public AnimatedContent
};
//==============================================================================
struct GridLines : public AnimatedContent
struct GridLines final : public AnimatedContent
{
String getName() const override { return "Grid Lines"; }
void reset() override {}
@@ -64,7 +64,7 @@ struct GridLines : public AnimatedContent
};
//==============================================================================
struct BackgroundLogo : public AnimatedContent
struct BackgroundLogo : public AnimatedContent
{
BackgroundLogo()
{
@@ -99,7 +99,7 @@ struct BackgroundLogo : public AnimatedContent
};
//==============================================================================
struct FlockDemo : public BackgroundLogo
struct FlockDemo : public BackgroundLogo
{
String getName() const override { return "Flock"; }
@@ -358,7 +358,7 @@ struct FlockDemo : public BackgroundLogo
};
//==============================================================================
struct FlockWithText : public FlockDemo
struct FlockWithText final : public FlockDemo
{
FlockWithText()
{
@@ -445,7 +445,7 @@ struct FlockWithText : public FlockDemo
};
//==============================================================================
struct SmallFlock : public FlockDemo
struct SmallFlock final : public FlockDemo
{
String getName() const override { return "Small Flock"; }
@@ -456,7 +456,7 @@ struct SmallFlock : public FlockDemo
};
//==============================================================================
struct BigFlock : public FlockDemo
struct BigFlock final : public FlockDemo
{
String getName() const override { return "Big Flock"; }
@@ -468,7 +468,7 @@ struct BigFlock : public FlockDemo
//==============================================================================
template <int numHorizontalLogos>
struct MultiLogo : public BackgroundLogo
struct MultiLogo final : public BackgroundLogo
{
String getName() const override { return "Multi-Logo " + String ((int) numHorizontalLogos); }


+ 2
- 2
extras/NetworkGraphicsDemo/Source/Main.cpp View File

@@ -47,7 +47,7 @@ namespace
//==============================================================================
class NetworkGraphicsDemoApplication : public JUCEApplication
class NetworkGraphicsDemoApplication final : public JUCEApplication
{
public:
NetworkGraphicsDemoApplication() : properties (getPropertyFileOptions())
@@ -89,7 +89,7 @@ public:
}
//==============================================================================
struct MainWindow : public DocumentWindow
struct MainWindow final : public DocumentWindow
{
explicit MainWindow (PropertiesFile& props)
: DocumentWindow ("JUCE Networked Graphics Demo - Master", Colours::white, DocumentWindow::allButtons)


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save