From 0545775de677606152342d612d3258e074b01269 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 13 Jan 2022 17:40:29 -0500 Subject: [PATCH] prepare for better ins del safety --- src/engine/dispatch.h | 5 +++++ src/engine/engine.cpp | 3 +++ src/engine/platform/abstract.cpp | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/src/engine/dispatch.h b/src/engine/dispatch.h index 63ed82162..2f33f0b60 100644 --- a/src/engine/dispatch.h +++ b/src/engine/dispatch.h @@ -196,6 +196,11 @@ class DivDispatch { */ void setSkipRegisterWrites(bool value); + /** + * notify deletion of an instrument. + */ + virtual void notifyInsDeletion(void* ins); + /** * force-retrigger instruments. */ diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp index 73a7e7a67..b3bc72d4a 100644 --- a/src/engine/engine.cpp +++ b/src/engine/engine.cpp @@ -2706,6 +2706,9 @@ int DivEngine::addInstrument(int refChan) { void DivEngine::delInstrument(int index) { isBusy.lock(); if (index>=0 && index<(int)song.ins.size()) { + for (int i=0; inotifyInsDeletion(song.ins[index]); + } delete song.ins[index]; song.ins.erase(song.ins.begin()+index); song.insLen=song.ins.size(); diff --git a/src/engine/platform/abstract.cpp b/src/engine/platform/abstract.cpp index c78815316..a313b2d0a 100644 --- a/src/engine/platform/abstract.cpp +++ b/src/engine/platform/abstract.cpp @@ -46,6 +46,10 @@ void DivDispatch::setSkipRegisterWrites(bool value) { skipRegisterWrites=value; } +void DivDispatch::notifyInsDeletion(void* ins) { + +} + void DivDispatch::forceIns() { }