Browse Source

Convert functions mmu_eject_fil_0 to mmu_eject_fil_4 to template function.

Marek Bel 6 years ago
parent
commit
7a1b47c340
3 changed files with 30 additions and 64 deletions
  1. 0 36
      Firmware/mmu.cpp
  2. 0 5
      Firmware/mmu.h
  3. 30 23
      Firmware/ultralcd.cpp

+ 0 - 36
Firmware/mmu.cpp

@@ -1183,42 +1183,6 @@ void extr_adj_4()
 #endif
 }
 
-
-void mmu_eject_fil_0()
-{
-//-//
-     menu_back();
-	mmu_eject_filament(0, true);
-}
-
-void mmu_eject_fil_1()
-{
-//-//
-     menu_back();
-	mmu_eject_filament(1, true);
-}
-
-void mmu_eject_fil_2()
-{
-//-//
-     menu_back();
-	mmu_eject_filament(2, true);
-}
-
-void mmu_eject_fil_3()
-{
-//-//
-     menu_back();
-	mmu_eject_filament(3, true);
-}
-
-void mmu_eject_fil_4()
-{
-//-//
-     menu_back();
-	mmu_eject_filament(4, true);
-}
-
 void load_all()
 {
 #ifndef SNMM

+ 0 - 5
Firmware/mmu.h

@@ -127,11 +127,6 @@ extern bool mmu_check_version();
 extern void mmu_show_warning();
 extern void lcd_mmu_load_to_nozzle(uint8_t filament_nr);
 extern void mmu_eject_filament(uint8_t filament, bool recover);
-extern void mmu_eject_fil_0();
-extern void mmu_eject_fil_1();
-extern void mmu_eject_fil_2();
-extern void mmu_eject_fil_3();
-extern void mmu_eject_fil_4();
 extern void mmu_continue_loading();
 extern void mmu_filament_ramming();
 extern void mmu_wait_for_heater_blocking();

+ 30 - 23
Firmware/ultralcd.cpp

@@ -4745,7 +4745,7 @@ static void lcd_wizard_unload()
 		} 
 		else
 		{
-			mmu_eject_fil_0();
+		    mmu_eject_filament(0, true);
 		}
 	} 
 	else
@@ -5717,30 +5717,37 @@ else {
      }
 }
 
-static void mmu_fil_eject_menu()
-{
-//-//if (degHotend0() > EXTRUDE_MINTEMP)
-if(bFilamentAction)
+template <uint8_t filament>
+static void mmu_eject_filament()
 {
-	MENU_BEGIN();
-	MENU_ITEM_BACK_P(_T(MSG_MAIN));
-	MENU_ITEM_FUNCTION_P(_i("Eject filament 1"), mmu_eject_fil_0);
-	MENU_ITEM_FUNCTION_P(_i("Eject filament 2"), mmu_eject_fil_1);
-	MENU_ITEM_FUNCTION_P(_i("Eject filament 3"), mmu_eject_fil_2);
-	MENU_ITEM_FUNCTION_P(_i("Eject filament 4"), mmu_eject_fil_3);
-	MENU_ITEM_FUNCTION_P(_i("Eject filament 5"), mmu_eject_fil_4);
-	MENU_END();
+    menu_back();
+    mmu_eject_filament(filament, true);
 }
-else {
-     eFilamentAction=e_FILAMENT_ACTION_mmuEject;
-     bFilamentFirstRun=false;
-     if(target_temperature[0]>=EXTRUDE_MINTEMP)
-          {
-          bFilamentPreheatState=true;
-          mFilamentItem(target_temperature[0],target_temperature_bed);
-          }
-     else mFilamentMenu();
-     }
+
+static void mmu_fil_eject_menu()
+{
+    if(bFilamentAction)
+    {
+        MENU_BEGIN();
+        MENU_ITEM_BACK_P(_T(MSG_MAIN));
+        MENU_ITEM_FUNCTION_P(_i("Eject filament 1"), mmu_eject_filament<0>);
+        MENU_ITEM_FUNCTION_P(_i("Eject filament 2"), mmu_eject_filament<1>);
+        MENU_ITEM_FUNCTION_P(_i("Eject filament 3"), mmu_eject_filament<2>);
+        MENU_ITEM_FUNCTION_P(_i("Eject filament 4"), mmu_eject_filament<3>);
+        MENU_ITEM_FUNCTION_P(_i("Eject filament 5"), mmu_eject_filament<4>);
+        MENU_END();
+    }
+    else
+    {
+        eFilamentAction=e_FILAMENT_ACTION_mmuEject;
+        bFilamentFirstRun=false;
+        if(target_temperature[0]>=EXTRUDE_MINTEMP)
+        {
+            bFilamentPreheatState=true;
+            mFilamentItem(target_temperature[0],target_temperature_bed);
+        }
+        else mFilamentMenu();
+    }
 }
 
 #ifdef SNMM