diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 9797df828d..36b283260b 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -157,6 +157,7 @@ namespace pt = boost::property_tree; struct StaticBambuLib { static void reset(); + static void release(); }; namespace Slic3r { @@ -1898,6 +1899,8 @@ GUI_App::~GUI_App() delete preset_updater; } + StaticBambuLib::release(); + BOOST_LOG_TRIVIAL(info) << __FUNCTION__<< boost::format(": exit"); } diff --git a/src/slic3r/GUI/MediaPlayCtrl.cpp b/src/slic3r/GUI/MediaPlayCtrl.cpp index 047c057d12..80b71295e1 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.cpp +++ b/src/slic3r/GUI/MediaPlayCtrl.cpp @@ -691,10 +691,7 @@ void MediaPlayCtrl::media_proc() continue; } lock.unlock(); - if (url.IsEmpty()) { - break; - } - else if (url == "") { + if (url == "") { BOOST_LOG_TRIVIAL(info) << "MediaPlayCtrl: start stop"; m_media_ctrl->Stop(); BOOST_LOG_TRIVIAL(info) << "MediaPlayCtrl: end stop"; diff --git a/src/slic3r/GUI/Printer/PrinterFileSystem.cpp b/src/slic3r/GUI/Printer/PrinterFileSystem.cpp index 54d35172ba..5241876586 100644 --- a/src/slic3r/GUI/Printer/PrinterFileSystem.cpp +++ b/src/slic3r/GUI/Printer/PrinterFileSystem.cpp @@ -69,6 +69,7 @@ struct StaticBambuLib : BambuLib { static StaticBambuLib &get(BambuLib * copy = nullptr); static int Fake_Bambu_Create(Bambu_Tunnel*, char const*) { return -2; } static void reset(); + static void release(); private: std::vector copies_; }; @@ -1641,6 +1642,7 @@ StaticBambuLib &StaticBambuLib::get(BambuLib *copy) GET_FUNC(Bambu_Destroy); GET_FUNC(Bambu_SetLogger); GET_FUNC(Bambu_FreeLogMsg); + GET_FUNC(Bambu_Deinit); if (!lib.Bambu_Create) { lib.Bambu_Create = Fake_Bambu_Create; @@ -1658,6 +1660,12 @@ void StaticBambuLib::reset() *c = lib; } +void StaticBambuLib::release() +{ + if (auto f = get().Bambu_Deinit) + f(); +} + extern "C" BambuLib *bambulib_get() { return &StaticBambuLib::get(); }