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