From fd00ea0ca725eb4dd786769605b3c9792e1a52fe Mon Sep 17 00:00:00 2001 From: Vojtech Kral Date: Fri, 18 May 2018 18:37:16 +0200 Subject: Firmware updater: Add cancelation --- xs/src/avrdude/avrdude-slic3r.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'xs/src/avrdude/avrdude-slic3r.cpp') diff --git a/xs/src/avrdude/avrdude-slic3r.cpp b/xs/src/avrdude/avrdude-slic3r.cpp index a581371ae..13c37e508 100644 --- a/xs/src/avrdude/avrdude-slic3r.cpp +++ b/xs/src/avrdude/avrdude-slic3r.cpp @@ -21,10 +21,10 @@ static void avrdude_message_handler_closure(const char *msg, unsigned size, void } // Used by our custom code in avrdude to report progress in the GUI -static void avrdude_progress_handler_closure(const char *task, unsigned progress, void *user_p) +static bool avrdude_progress_handler_closure(const char *task, unsigned progress, void *user_p) { auto *progress_fn = reinterpret_cast(user_p); - (*progress_fn)(task, progress); + return (*progress_fn)(task, progress); } @@ -73,6 +73,8 @@ int AvrDude::priv::run() { AvrDude::AvrDude() : p(new priv()) {} +AvrDude::AvrDude(AvrDude &&other) : p(std::move(other.p)) {} + AvrDude::~AvrDude() { if (p && p->avrdude_thread.joinable()) { @@ -98,7 +100,7 @@ AvrDude& AvrDude::on_message(MessageFn fn) return *this; } -AvrDude& AvrDude::on_progress(MessageFn fn) +AvrDude& AvrDude::on_progress(ProgressFn fn) { if (p) { p->progress_fn = std::move(fn); } return *this; -- cgit v1.2.3