Skip to content

Commit 62951be

Browse files
committed
Merge commit '187e9f260d0bafca5e2177c79c6b9088c58a5475'
2 parents 96db0d2 + 187e9f2 commit 62951be

33 files changed

Lines changed: 340 additions & 115 deletions

‎src/dmt/app/AbstractPluginEditor.h‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,16 @@ class AbstractPluginEditor
140140
});
141141
}
142142

143-
~AbstractPluginEditor() override = default;
143+
~AbstractPluginEditor()
144+
{
145+
// Ensure OpenGL context is detached before destruction
146+
if (openGLContext.isAttached()) {
147+
openGLContext.detach();
148+
}
149+
150+
// Stop the debounce timer if it's running
151+
stopTimer();
152+
}
144153

145154
//==============================================================================
146155
// JUCE overrides

‎src/dmt/configuration/Properties.h‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@ class Properties
5656
using String = juce::String;
5757

5858
public:
59+
//============================================================================
60+
/**
61+
* @brief Construct a new Properties object
62+
*/
63+
Properties() = default;
64+
5965
//============================================================================
6066
/**
6167
* @brief Initialize the properties with options and settings.
@@ -203,6 +209,8 @@ class Properties
203209
private:
204210
juce::ApplicationProperties file;
205211
juce::PropertySet fallbackPropertySet;
212+
213+
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(Properties)
206214
};
207215
} // namespace configuration
208216
} // namespace dmt

‎src/dmt/dsp/effect/DisfluxProcessor.h‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,8 @@ class alignas(64) DisfluxProcessor
317317
juce::IIRFilter outputHighpassLeft;
318318
juce::IIRFilter outputHighpassRight;
319319
float lastHighpassFrequency = -1.0f;
320+
321+
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DisfluxProcessor)
320322
};
321323

322324
//==============================================================================

‎src/dmt/dsp/effect/Distortion.h‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,8 @@ struct alignas(64) Distortion
354354
}
355355
}
356356
}
357+
358+
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(Distortion)
357359
};
358360

359361
//==============================================================================

‎src/dmt/dsp/effect/HeretikProcessor.h‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,8 @@ class alignas(64) HeretikProcessor
160160
std::array<float, 2> feedbackBuffer;
161161
Filter leftFilter;
162162
Filter rightFilter;
163+
164+
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(HeretikProcessor)
163165
};
164166

165167
//==============================================================================

‎src/dmt/dsp/effect/LowpassProcessor.h‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,8 @@ class alignas(64) LowpassProcessor
262262
// They do the actual filtering of the audio.
263263
FilterArray leftFilters;
264264
FilterArray rightFilters;
265+
266+
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(LowpassProcessor)
265267
};
266268

267269
//==============================================================================

‎src/dmt/dsp/effect/NeutrinoProcessor.h‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ class alignas(64) NeutrinoProcessor
9797
juce::Synthesiser synth;
9898
juce::AudioProcessorValueTreeState& apvts;
9999
float sampleRate = -1.0f;
100+
101+
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(NeutrinoProcessor)
100102
};
101103

102104
//==============================================================================

‎src/dmt/dsp/envelope/AdhEnvelope.h‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class AhdEnvelope
6868
Idle
6969
};
7070

71-
constexpr AhdEnvelope() noexcept = default;
71+
AhdEnvelope() noexcept = default;
7272

7373
inline void setParameters(const juce::AudioProcessorValueTreeState& apvts,
7474
juce::String prefix) noexcept
@@ -235,6 +235,8 @@ class AhdEnvelope
235235
float sampleRate = -1.0f;
236236
Parameters params;
237237
size_t sampleIndex = 0;
238+
239+
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(AhdEnvelope)
238240
};
239241

240242
//==============================================================================

‎src/dmt/dsp/synth/DigitalOscillator.h‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,10 @@ class alignas(64) DigitalOscillator
104104

105105
//==============================================================================
106106
// Oscillator
107+
108+
//============================================================================
109+
DigitalOscillator() = default;
110+
107111
public:
108112
inline void setParameters(const juce::AudioProcessorValueTreeState& apvts,
109113
String prefix)
@@ -349,6 +353,8 @@ class alignas(64) DigitalOscillator
349353
float sampleRate = -1.0f;
350354
float phase = 0.0f;
351355
float pwmEndSample = 0.0f;
356+
357+
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DigitalOscillator)
352358
//==============================================================================
353359
};
354360
} // namespace synth

‎src/dmt/dsp/synth/DigitalWaveform.h‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ struct DigitalWaveform
4646
static constexpr float twoPi = juce::MathConstants<float>::twoPi;
4747
static constexpr float pi = juce::MathConstants<float>::pi;
4848

49+
//============================================================================
50+
/**
51+
* @brief Construct a new Digital Waveform object
52+
*/
53+
DigitalWaveform() = default;
54+
4955
//==============================================================================
5056
/**
5157
* @brief Enumeration of waveform types.
@@ -142,6 +148,8 @@ struct DigitalWaveform
142148
}
143149

144150
//==============================================================================
151+
152+
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DigitalWaveform)
145153
};
146154

147155
//==============================================================================

0 commit comments

Comments
 (0)