From ef5463f9fe49b97db08fbce68414d99fa977201f Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Wed, 16 Oct 2024 10:21:47 +0800 Subject: [PATCH] ENH: call Bambu source deinit Change-Id: I7b96056aabe7a894c66fcaf61e24f783f5a1e217 Jira: STUDIO-7666 (cherry picked from commit 9f85798a0bc8d02b3f0a30fd42934f58b48e67e9) --- src/slic3r/GUI/GUI_App.cpp | 3 +++ src/slic3r/GUI/MediaPlayCtrl.cpp | 5 +---- src/slic3r/GUI/Printer/PrinterFileSystem.cpp | 8 ++++++++ 3 files changed, 12 insertions(+), 4 deletions(-) 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(); }