mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-09 23:34:20 +00:00
Fix some LLVM 17 compiler warnings
This commit is contained in:
parent
951b873c14
commit
2fb19ffd8f
176 changed files with 867 additions and 894 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
|
||||
|
||||
//==============================================================================
|
||||
class AudioAppDemo : public AudioAppComponent
|
||||
class AudioAppDemo final : public AudioAppComponent
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -51,8 +51,8 @@
|
|||
#include "../Assets/DemoUtilities.h"
|
||||
|
||||
//==============================================================================
|
||||
class AudioSettingsDemo : public Component,
|
||||
public ChangeListener
|
||||
class AudioSettingsDemo final : public Component,
|
||||
public ChangeListener
|
||||
{
|
||||
public:
|
||||
AudioSettingsDemo()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -50,8 +50,8 @@
|
|||
|
||||
|
||||
//==============================================================================
|
||||
class SimpleFFTDemo : public AudioAppComponent,
|
||||
private Timer
|
||||
class SimpleFFTDemo final : public AudioAppComponent,
|
||||
private Timer
|
||||
{
|
||||
public:
|
||||
SimpleFFTDemo() :
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#include "PluginProcessor.h"
|
||||
|
||||
//==============================================================================
|
||||
class AudioPluginAudioProcessorEditor : public juce::AudioProcessorEditor
|
||||
class AudioPluginAudioProcessorEditor final : public juce::AudioProcessorEditor
|
||||
{
|
||||
public:
|
||||
explicit AudioPluginAudioProcessorEditor (AudioPluginAudioProcessor&);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#include <juce_audio_processors/juce_audio_processors.h>
|
||||
|
||||
//==============================================================================
|
||||
class AudioPluginAudioProcessor : public juce::AudioProcessor
|
||||
class AudioPluginAudioProcessor final : public juce::AudioProcessor
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ struct ConvolutionDemoDSP
|
|||
std::vector<DSPDemoParameterBase*> parameters { &cabinetParam };
|
||||
};
|
||||
|
||||
struct ConvolutionDemo : public Component
|
||||
struct ConvolutionDemo final : public Component
|
||||
{
|
||||
ConvolutionDemo()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ struct FIRFilterDemoDSP
|
|||
std::vector<DSPDemoParameterBase*> parameters { &cutoffParam, &typeParam };
|
||||
};
|
||||
|
||||
struct FIRFilterDemo : public Component
|
||||
struct FIRFilterDemo final : public Component
|
||||
{
|
||||
FIRFilterDemo()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ struct GainDemoDSP
|
|||
std::vector<DSPDemoParameterBase*> parameters { &gainParam };
|
||||
};
|
||||
|
||||
struct GainDemo : public Component
|
||||
struct GainDemo final : public Component
|
||||
{
|
||||
GainDemo()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ struct IIRFilterDemoDSP
|
|||
double sampleRate = 0.0;
|
||||
};
|
||||
|
||||
struct IIRFilterDemo : public Component
|
||||
struct IIRFilterDemo final : public Component
|
||||
{
|
||||
IIRFilterDemo()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ struct OverdriveDemoDSP
|
|||
double sampleRate = 0.0;
|
||||
};
|
||||
|
||||
struct OverdriveDemo : public Component
|
||||
struct OverdriveDemo final : public Component
|
||||
{
|
||||
OverdriveDemo()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ struct SIMDRegisterDemoDSP
|
|||
double sampleRate = 0.0;
|
||||
};
|
||||
|
||||
struct SIMDRegisterDemo : public Component
|
||||
struct SIMDRegisterDemo final : public Component
|
||||
{
|
||||
SIMDRegisterDemo()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ struct StateVariableFilterDemoDSP
|
|||
double sampleRate = 0.0;
|
||||
};
|
||||
|
||||
struct StateVariableFilterDemo : public Component
|
||||
struct StateVariableFilterDemo final : public Component
|
||||
{
|
||||
StateVariableFilterDemo()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -50,8 +50,8 @@
|
|||
|
||||
|
||||
//==============================================================================
|
||||
class BouncingBallWavetableDemo : public AudioAppComponent,
|
||||
private Timer
|
||||
class BouncingBallWavetableDemo final : public AudioAppComponent,
|
||||
private Timer
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
#include "../Assets/DemoUtilities.h"
|
||||
|
||||
//==============================================================================
|
||||
class CameraDemo : public Component
|
||||
class CameraDemo final : public Component
|
||||
{
|
||||
public:
|
||||
CameraDemo()
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@
|
|||
#endif
|
||||
|
||||
//==============================================================================
|
||||
class CodeEditorDemo : public Component,
|
||||
private FilenameComponentListener
|
||||
class CodeEditorDemo final : public Component,
|
||||
private FilenameComponentListener
|
||||
{
|
||||
public:
|
||||
CodeEditorDemo()
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
#include "WidgetsDemo.h"
|
||||
|
||||
//==============================================================================
|
||||
class ComponentTransformsDemo : public Component
|
||||
class ComponentTransformsDemo final : public Component
|
||||
{
|
||||
public:
|
||||
ComponentTransformsDemo()
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
#include "../Assets/DemoUtilities.h"
|
||||
|
||||
//==============================================================================
|
||||
struct GridDemo : public Component
|
||||
struct GridDemo final : public Component
|
||||
{
|
||||
GridDemo()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@
|
|||
|
||||
|
||||
//==============================================================================
|
||||
class HelloWorldDemo : public Component
|
||||
class HelloWorldDemo final : public Component
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -49,8 +49,8 @@
|
|||
#include "../Assets/DemoUtilities.h"
|
||||
|
||||
//==============================================================================
|
||||
class ImagesDemo : public Component,
|
||||
public FileBrowserListener
|
||||
class ImagesDemo final : public Component,
|
||||
public FileBrowserListener
|
||||
{
|
||||
public:
|
||||
ImagesDemo()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
#include "../Assets/DemoUtilities.h"
|
||||
|
||||
//==============================================================================
|
||||
class MultiTouchDemo : public Component
|
||||
class MultiTouchDemo final : public Component
|
||||
{
|
||||
public:
|
||||
MultiTouchDemo()
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
|
|
@ -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 ()
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
|
||||
|
||||
//==============================================================================
|
||||
class Arpeggiator : public AudioProcessor
|
||||
class Arpeggiator final : public AudioProcessor
|
||||
{
|
||||
public:
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
|
||||
|
||||
//==============================================================================
|
||||
class GainProcessor : public AudioProcessor
|
||||
class GainProcessor final : public AudioProcessor
|
||||
{
|
||||
public:
|
||||
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@
|
|||
#include "../Assets/DemoUtilities.h"
|
||||
|
||||
//==============================================================================
|
||||
class MultiOutSynth : public AudioProcessor
|
||||
class MultiOutSynth final : public AudioProcessor
|
||||
{
|
||||
public:
|
||||
enum
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
|
||||
|
||||
//==============================================================================
|
||||
class NoiseGate : public AudioProcessor
|
||||
class NoiseGate final : public AudioProcessor
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -49,8 +49,8 @@
|
|||
#include "../Assets/DemoUtilities.h"
|
||||
|
||||
//==============================================================================
|
||||
class NetworkingDemo : public Component,
|
||||
private Thread
|
||||
class NetworkingDemo final : public Component,
|
||||
private Thread
|
||||
{
|
||||
public:
|
||||
NetworkingDemo()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -219,7 +219,7 @@ static String getAllSystemInfo()
|
|||
return systemInfo;
|
||||
}
|
||||
|
||||
class SystemInfoDemo : public Component
|
||||
class SystemInfoDemo final : public Component
|
||||
{
|
||||
public:
|
||||
SystemInfoDemo()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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) {}
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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. */
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@
|
|||
#include <mutex>
|
||||
|
||||
//==============================================================================
|
||||
class MainContentComponent : public AudioAppComponent,
|
||||
private Timer
|
||||
class MainContentComponent final : public AudioAppComponent,
|
||||
private Timer
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class GraphDocumentComponent;
|
|||
|
||||
|
||||
//==============================================================================
|
||||
class IOConfigurationWindow : public AudioProcessorEditor
|
||||
class IOConfigurationWindow final : public AudioProcessorEditor
|
||||
{
|
||||
public:
|
||||
IOConfigurationWindow (AudioProcessor&);
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
/**
|
||||
Manages the internal plugin types.
|
||||
*/
|
||||
class InternalPluginFormat : public AudioPluginFormat
|
||||
class InternalPluginFormat final : public AudioPluginFormat
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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); }
|
||||
|
||||
|
|
|
|||
|
|
@ -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 have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue