From bf57a59147f18e9d5485b6dfa808bac6786f6e51 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Fri, 5 Apr 2019 13:47:17 +0200 Subject: [PATCH] Extract duplicate code into function. Saves 106B flash. --- Firmware/Marlin.h | 1 + Firmware/Marlin_main.cpp | 26 +++++++++++++++++++------- Firmware/mmu.cpp | 9 +-------- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 1a278013b..fd6121a06 100644 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -497,3 +497,4 @@ void M600_load_filament_movements(); void M600_wait_for_user(float HotendTempBckp); void M600_check_state(float nozzle_temp); void load_filament_final_feed(); +void marlin_wait_for_click(); diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index f199df2ae..b4aeef150 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4962,13 +4962,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE)) KEEPALIVE_STATE(IN_HANDLER); lcd_ignore_click(false); }else{ - KEEPALIVE_STATE(PAUSED_FOR_USER); - while(!lcd_clicked()){ - manage_heater(); - manage_inactivity(true); - lcd_update(0); - } - KEEPALIVE_STATE(IN_HANDLER); + marlin_wait_for_click(); } if (IS_SD_PRINTING) LCD_MESSAGERPGM(_T(MSG_RESUMING_PRINT)); @@ -9615,4 +9609,22 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE)) lcd_update_enable(false); } + +//! @brief Wait for click +//! +//! Set +void marlin_wait_for_click() +{ + int busy_state_backup = busy_state; + KEEPALIVE_STATE(PAUSED_FOR_USER); + lcd_consume_click(); + while(!lcd_clicked()) + { + manage_heater(); + manage_inactivity(true); + lcd_update(0); + } + KEEPALIVE_STATE(busy_state); +} + #define FIL_LOAD_LENGTH 60 diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index c7d1f2c93..754ad3f74 100644 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -1518,14 +1518,7 @@ void mmu_continue_loading(bool blocking) if (blocking) { - KEEPALIVE_STATE(PAUSED_FOR_USER); - lcd_consume_click(); - while(!lcd_clicked()){ - manage_heater(); - manage_inactivity(true); - lcd_update(0); - } - KEEPALIVE_STATE(IN_HANDLER); + marlin_wait_for_click(); restore_print_from_ram_and_continue(0); mmu_command(MmuCmd::T0 + tmp_extruder); manage_response(true, true, MMU_TCODE_MOVE);