Browse Source

✨ MULTI_VOLUME for Color UI and MarlinUI (#22004)

Victor Oliveira 4 years ago
parent
commit
d6a7ebce6c
No account linked to committer's email address

+ 2
- 2
Marlin/src/HAL/STM32/msc_sd.cpp View File

@@ -33,9 +33,9 @@ public:
33 33
   DiskIODriver* diskIODriver() {
34 34
     #if ENABLED(MULTI_VOLUME)
35 35
       #if SHARED_VOLUME_IS(SD_ONBOARD)
36
-        return &card.media_sd_spi;
36
+        return &card.media_driver_sdcard;
37 37
       #elif SHARED_VOLUME_IS(USB_FLASH_DRIVE)
38
-        return &card.media_usbFlashDrive;
38
+        return &card.media_driver_usbFlash;
39 39
       #endif
40 40
     #else
41 41
       return card.diskIODriver();

+ 2
- 2
Marlin/src/lcd/extui/mks_ui/draw_media_select.cpp View File

@@ -46,8 +46,8 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
46 46
   if (event != LV_EVENT_RELEASED) return;
47 47
   lv_clear_media_select();
48 48
   switch (obj->mks_obj_id) {
49
-    case ID_T_USB_DISK: card.changeMedia(&card.media_usbFlashDrive); break;
50
-    case ID_T_SD_DISK:  card.changeMedia(&card.media_sd_spi); break;
49
+    case ID_T_USB_DISK: card.changeMedia(&card.media_driver_usbFlash); break;
50
+    case ID_T_SD_DISK:  card.changeMedia(&card.media_driver_sdcard); break;
51 51
     case ID_T_RETURN:
52 52
       TERN_(MKS_TEST, curent_disp_ui = 1);
53 53
       lv_draw_ready_print();

+ 3
- 0
Marlin/src/lcd/language/language_en.h View File

@@ -740,6 +740,9 @@ namespace Language_en {
740 740
   PROGMEM Language_Str MSG_CALIBRATION_FAILED              = _UxGT("Calibration Failed");
741 741
 
742 742
   PROGMEM Language_Str MSG_DRIVER_BACKWARD                 = _UxGT(" driver backward");
743
+
744
+  PROGMEM Language_Str MSG_SD_CARD                         = _UxGT("SD Card");
745
+  PROGMEM Language_Str MSG_USB_DISK                        = _UxGT("USB Disk");
743 746
 }
744 747
 
745 748
 #if FAN_COUNT == 1

+ 24
- 2
Marlin/src/lcd/menu/menu_media.cpp View File

@@ -104,7 +104,7 @@ class MenuItem_sdfolder : public MenuItem_sdbase {
104 104
     }
105 105
 };
106 106
 
107
-void menu_media() {
107
+void menu_media_filelist() {
108 108
   ui.encoder_direction_menus();
109 109
 
110 110
   #if HAS_MARLINUI_U8GLIB
@@ -115,7 +115,11 @@ void menu_media() {
115 115
   #endif
116 116
 
117 117
   START_MENU();
118
-  BACK_ITEM_P(TERN1(BROWSE_MEDIA_ON_INSERT, screen_history_depth) ? GET_TEXT(MSG_MAIN) : GET_TEXT(MSG_BACK));
118
+  #if ENABLED(MULTI_VOLUME)
119
+    ACTION_ITEM(MSG_BACK, []{ ui.goto_screen(menu_media); });
120
+  #else
121
+    BACK_ITEM_P(TERN1(BROWSE_MEDIA_ON_INSERT, screen_history_depth) ? GET_TEXT(MSG_MAIN) : GET_TEXT(MSG_BACK));
122
+  #endif
119 123
   if (card.flag.workDirIsRoot) {
120 124
     #if !PIN_EXISTS(SD_DETECT)
121 125
       ACTION_ITEM(MSG_REFRESH, []{ encoderTopLine = 0; card.mount(); });
@@ -138,4 +142,22 @@ void menu_media() {
138 142
   END_MENU();
139 143
 }
140 144
 
145
+#if ENABLED(MULTI_VOLUME)
146
+  void menu_media_select() {
147
+    START_MENU();
148
+    BACK_ITEM_P(TERN1(BROWSE_MEDIA_ON_INSERT, screen_history_depth) ? GET_TEXT(MSG_MAIN) : GET_TEXT(MSG_BACK));
149
+    #if ENABLED(VOLUME_SD_ONBOARD)
150
+      ACTION_ITEM(MSG_SD_CARD, []{ card.changeMedia(&card.media_driver_sdcard); card.mount(); ui.goto_screen(menu_media_filelist); });
151
+    #endif
152
+    #if ENABLED(VOLUME_USB_FLASH_DRIVE)
153
+      ACTION_ITEM(MSG_USB_DISK, []{ card.changeMedia(&card.media_driver_usbFlash); card.mount(); ui.goto_screen(menu_media_filelist); });
154
+    #endif
155
+    END_MENU();
156
+  }
157
+#endif
158
+
159
+void menu_media() {
160
+  TERN(MULTI_VOLUME, menu_media_select, menu_media_filelist)();
161
+}
162
+
141 163
 #endif // HAS_LCD_MENU && SDSUPPORT

+ 8
- 11
Marlin/src/sd/cardreader.cpp View File

@@ -121,13 +121,12 @@ uint8_t CardReader::workDirDepth;
121 121
 
122 122
 #endif // SDCARD_SORT_ALPHA
123 123
 
124
-#if SHARED_VOLUME_IS(USB_FLASH_DRIVE) || ENABLED(USB_FLASH_DRIVE_SUPPORT)
125
-  DiskIODriver_USBFlash CardReader::media_usbFlashDrive;
124
+#if HAS_USB_FLASH_DRIVE
125
+  DiskIODriver_USBFlash CardReader::media_driver_usbFlash;
126 126
 #endif
127
-#if NEED_SD2CARD_SDIO
128
-  DiskIODriver_SDIO CardReader::media_sdio;
129
-#elif NEED_SD2CARD_SPI
130
-  DiskIODriver_SPI_SD CardReader::media_sd_spi;
127
+
128
+#if NEED_SD2CARD_SDIO || NEED_SD2CARD_SPI
129
+  CardReader::sdcard_driver_t CardReader::media_driver_sdcard;
131 130
 #endif
132 131
 
133 132
 DiskIODriver* CardReader::driver = nullptr;
@@ -144,12 +143,10 @@ uint32_t CardReader::filesize, CardReader::sdpos;
144 143
 
145 144
 CardReader::CardReader() {
146 145
   changeMedia(&
147
-    #if SHARED_VOLUME_IS(SD_ONBOARD)
148
-      TERN(SDIO_SUPPORT, media_sdio, media_sd_spi)
149
-    #elif SHARED_VOLUME_IS(USB_FLASH_DRIVE) || ENABLED(USB_FLASH_DRIVE_SUPPORT)
150
-      media_usbFlashDrive
146
+    #if HAS_USB_FLASH_DRIVE && !SHARED_VOLUME_IS(SD_ONBOARD)
147
+      media_driver_usbFlash
151 148
     #else
152
-      TERN(SDIO_SUPPORT, media_sdio, media_sd_spi)
149
+      media_driver_sdcard
153 150
     #endif
154 151
   );
155 152
 

+ 6
- 5
Marlin/src/sd/cardreader.h View File

@@ -235,12 +235,13 @@ public:
235 235
   #endif
236 236
 
237 237
   #if SHARED_VOLUME_IS(USB_FLASH_DRIVE) || ENABLED(USB_FLASH_DRIVE_SUPPORT)
238
-    static DiskIODriver_USBFlash media_usbFlashDrive;
238
+    #define HAS_USB_FLASH_DRIVE 1
239
+    static DiskIODriver_USBFlash media_driver_usbFlash;
239 240
   #endif
240
-  #if NEED_SD2CARD_SDIO
241
-    static DiskIODriver_SDIO media_sdio;
242
-  #elif NEED_SD2CARD_SPI
243
-    static DiskIODriver_SPI_SD media_sd_spi;
241
+
242
+  #if NEED_SD2CARD_SDIO || NEED_SD2CARD_SPI
243
+    typedef TERN(NEED_SD2CARD_SDIO, DiskIODriver_SDIO, DiskIODriver_SPI_SD) sdcard_driver_t;
244
+    static sdcard_driver_t media_driver_sdcard;
244 245
   #endif
245 246
 
246 247
 private:

Loading…
Cancel
Save