From 4b9d1b9f260589e5e758bcc90968535cab7bdfa4 Mon Sep 17 00:00:00 2001
From: Scott Lahteine <github@thinkyhead.com>
Date: Sat, 16 Sep 2017 23:25:01 -0500
Subject: [PATCH] Move M80-M81 to cpp

---
 Marlin/src/Marlin.cpp                         | 16 -----
 Marlin/src/gcode/control/M80.h                | 56 ----------------
 .../src/gcode/control/{M81.h => M80_M81.cpp}  | 64 ++++++++++++++++++-
 Marlin/src/gcode/gcode.cpp                    | 14 +---
 4 files changed, 66 insertions(+), 84 deletions(-)
 delete mode 100644 Marlin/src/gcode/control/M80.h
 rename Marlin/src/gcode/control/{M81.h => M80_M81.cpp} (54%)

diff --git a/Marlin/src/Marlin.cpp b/Marlin/src/Marlin.cpp
index 5259e33150..4b1ac1df7d 100644
--- a/Marlin/src/Marlin.cpp
+++ b/Marlin/src/Marlin.cpp
@@ -177,16 +177,6 @@ static millis_t stepper_inactive_time = (DEFAULT_STEPPER_DEACTIVE_TIME) * 1000UL
   float z_endstop_adj;
 #endif
 
-#if HAS_POWER_SWITCH
-  bool powersupply_on =
-    #if ENABLED(PS_DEFAULT_OFF)
-      false
-    #else
-      true
-    #endif
-  ;
-#endif
-
 #if ENABLED(FILAMENT_RUNOUT_SENSOR)
   static bool filament_ran_out = false;
 #endif
@@ -369,12 +359,6 @@ bool pin_is_protected(const int8_t pin) {
   return false;
 }
 
-#if HAS_POWER_SWITCH
-  #include "gcode/control/M80.h"
-#endif
-
-#include "gcode/control/M81.h"
-
 #include "gcode/units/M82_M83.h"
 
 #include "gcode/control/M18_M84.h"
diff --git a/Marlin/src/gcode/control/M80.h b/Marlin/src/gcode/control/M80.h
deleted file mode 100644
index 7f6a2775a0..0000000000
--- a/Marlin/src/gcode/control/M80.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Marlin 3D Printer Firmware
- * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
- *
- * Based on Sprinter and grbl.
- * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-/**
- * M80   : Turn on the Power Supply
- * M80 S : Report the current state and exit
- */
-void gcode_M80() {
-
-  // S: Report the current power supply state and exit
-  if (parser.seen('S')) {
-    serialprintPGM(powersupply_on ? PSTR("PS:1\n") : PSTR("PS:0\n"));
-    return;
-  }
-
-  OUT_WRITE(PS_ON_PIN, PS_ON_AWAKE); // GND
-
-  /**
-   * If you have a switch on suicide pin, this is useful
-   * if you want to start another print with suicide feature after
-   * a print without suicide...
-   */
-  #if HAS_SUICIDE
-    OUT_WRITE(SUICIDE_PIN, HIGH);
-  #endif
-
-  #if ENABLED(HAVE_TMC2130)
-    delay(100);
-    tmc2130_init(); // Settings only stick when the driver has power
-  #endif
-
-  powersupply_on = true;
-
-  #if ENABLED(ULTIPANEL)
-    LCD_MESSAGEPGM(WELCOME_MSG);
-  #endif
-}
diff --git a/Marlin/src/gcode/control/M81.h b/Marlin/src/gcode/control/M80_M81.cpp
similarity index 54%
rename from Marlin/src/gcode/control/M81.h
rename to Marlin/src/gcode/control/M80_M81.cpp
index 9944eced2c..a5164a1a7a 100644
--- a/Marlin/src/gcode/control/M81.h
+++ b/Marlin/src/gcode/control/M80_M81.cpp
@@ -20,12 +20,74 @@
  *
  */
 
+#include "../gcode.h"
+#include "../../module/temperature.h"
+#include "../../module/stepper.h"
+
+#include "../../inc/MarlinConfig.h"
+
+#if ENABLED(ULTIPANEL)
+  #include "../../lcd/ultralcd.h"
+#endif
+
+#if HAS_POWER_SWITCH
+
+  // Could be moved to a feature, but this is all the data
+  bool powersupply_on =
+    #if ENABLED(PS_DEFAULT_OFF)
+      false
+    #else
+      true
+    #endif
+  ;
+
+  #if ENABLED(HAVE_TMC2130)
+    #include "../../feature/tmc2130.h"
+  #endif
+
+  /**
+   * M80   : Turn on the Power Supply
+   * M80 S : Report the current state and exit
+   */
+  void GcodeSuite::M80() {
+
+    // S: Report the current power supply state and exit
+    if (parser.seen('S')) {
+      serialprintPGM(powersupply_on ? PSTR("PS:1\n") : PSTR("PS:0\n"));
+      return;
+    }
+
+    OUT_WRITE(PS_ON_PIN, PS_ON_AWAKE); // GND
+
+    /**
+     * If you have a switch on suicide pin, this is useful
+     * if you want to start another print with suicide feature after
+     * a print without suicide...
+     */
+    #if HAS_SUICIDE
+      OUT_WRITE(SUICIDE_PIN, HIGH);
+    #endif
+
+    #if ENABLED(HAVE_TMC2130)
+      delay(100);
+      tmc2130_init(); // Settings only stick when the driver has power
+    #endif
+
+    powersupply_on = true;
+
+    #if ENABLED(ULTIPANEL)
+      LCD_MESSAGEPGM(WELCOME_MSG);
+    #endif
+  }
+
+#endif // HAS_POWER_SWITCH
+
 /**
  * M81: Turn off Power, including Power Supply, if there is one.
  *
  *      This code should ALWAYS be available for EMERGENCY SHUTDOWN!
  */
-void gcode_M81() {
+void GcodeSuite::M81() {
   thermalManager.disable_all_heaters();
   stepper.finish_and_disable();
 
diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp
index 9698998fab..dc47ff426a 100644
--- a/Marlin/src/gcode/gcode.cpp
+++ b/Marlin/src/gcode/gcode.cpp
@@ -117,8 +117,6 @@ void GcodeSuite::dwell(millis_t time) {
 // Placeholders for non-migrated codes
 //
 extern void gcode_M18_M84();
-extern void gcode_M80();
-extern void gcode_M81();
 extern void gcode_M82();
 extern void gcode_M83();
 extern void gcode_M85();
@@ -492,16 +490,10 @@ void GcodeSuite::process_next_command() {
       #endif // BARICUDA
 
       #if HAS_POWER_SWITCH
+        case 80: M80(); break;    // M80: Turn on Power Supply
+      #endif
 
-        case 80: // M80: Turn on Power Supply
-          gcode_M80();
-          break;
-
-      #endif // HAS_POWER_SWITCH
-
-      case 81: // M81: Turn off Power, including Power Supply, if possible
-        gcode_M81();
-        break;
+      case 81: M81(); break;      // M81: Turn off Power, including Power Supply, if possible
 
       case 82: // M82: Set E axis normal mode (same as other axes)
         gcode_M82();
-- 
GitLab