@@ -189,8 +189,11 @@ int Division::getLinksCount() const noexcept
189189void Division::enableLink (int i, bool ena)
190190{
191191 jassert (isPositiveAndBelow (i, _linkedDivisions.size ()));
192- _linkedDivisions[i].enabled = ena;
193- _engine.getSequencer ()->setCurrentStepDirty ();
192+
193+ if (_linkedDivisions[i].enabled != ena) {
194+ _linkedDivisions[i].enabled = ena;
195+ _engine.getSequencer ()->setCurrentStepDirty ();
196+ }
194197}
195198
196199bool Division::isLinkEnabled (int i)
@@ -207,10 +210,17 @@ Division::Link& Division::getLinkByIndex(int i)
207210
208211void Division::cancelAllLinks ()
209212{
210- for (auto & link : _linkedDivisions)
211- link.enabled = false ;
213+ bool changed{ false };
212214
213- _engine.getSequencer ()->setCurrentStepDirty ();
215+ for (auto & link : _linkedDivisions) {
216+ if (link.enabled ) {
217+ changed = true ;
218+ link.enabled = false ;
219+ }
220+ }
221+
222+ if (changed)
223+ _engine.getSequencer ()->setCurrentStepDirty ();
214224}
215225
216226void Division::clear ()
@@ -252,9 +262,11 @@ void Division::enableStop(int i, bool ena)
252262{
253263 jassert (isPositiveAndBelow (i, _stops.size ()));
254264
255- _stops[i].setEnabled (ena);
265+ if (_stops[i].isEnabled () != ena) {
266+ _stops[i].setEnabled (ena);
256267
257- _engine.getSequencer ()->setCurrentStepDirty ();
268+ _engine.getSequencer ()->setCurrentStepDirty ();
269+ }
258270}
259271
260272bool Division::isStopEnabled (int i) const
@@ -304,10 +316,12 @@ void Division::setTremulantEnabled(bool ena) noexcept
304316 if (!_hasTremulant)
305317 return ;
306318
307- _tremulantEnabled = ena;
308- _tremulantTargetLevel = _tremulantEnabled ? _tremulantMaxLevel : 0 .0f ;
319+ if (_tremulantEnabled != ena) {
320+ _tremulantEnabled = ena;
321+ _tremulantTargetLevel = _tremulantEnabled ? _tremulantMaxLevel : 0 .0f ;
309322
310- _engine.getSequencer ()->setCurrentStepDirty ();
323+ _engine.getSequencer ()->setCurrentStepDirty ();
324+ }
311325}
312326
313327float Division::getTremulantLevel (bool update)
0 commit comments