diff --git a/core/audio/plugin_host/plugin_host_manager.cpp b/core/audio/plugin_host/plugin_host_manager.cpp index 9de40ef..0101b76 100644 --- a/core/audio/plugin_host/plugin_host_manager.cpp +++ b/core/audio/plugin_host/plugin_host_manager.cpp @@ -17,6 +17,13 @@ void plugin_host_manager::init(singleton_initliazer& initliazer) { mixer_ptr->on_remove_track.add_raw(this, &plugin_host_manager::on_mixer_track_removed); } +void plugin_host_manager::release() { + singleton_t::release(); + for (auto host: plugin_hosts_) { + delete host; + } +} + plugin_host* plugin_host_manager::load_plugin(const char* path) { auto host = new vst2_plugin_host(); try { diff --git a/core/audio/plugin_host/plugin_host_manager.h b/core/audio/plugin_host/plugin_host_manager.h index 06af03e..f0cc888 100644 --- a/core/audio/plugin_host/plugin_host_manager.h +++ b/core/audio/plugin_host/plugin_host_manager.h @@ -7,6 +7,7 @@ class mixer_track; class CORE_API plugin_host_manager : public singleton_t { public: void init(singleton_initliazer& initliazer) override; + void release() override; plugin_host* load_plugin(const char* path);