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

Fix some LLVM 17 compiler warnings

This commit is contained in:
Tom Poole 2023-09-21 14:48:07 +01:00
parent 951b873c14
commit 2fb19ffd8f
176 changed files with 867 additions and 894 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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