🧑‍💻 Media conditionals

This commit is contained in:
Scott Lahteine 2025-01-22 15:48:29 -06:00
parent 428f721cbf
commit 0f7fb5d88d
35 changed files with 65 additions and 61 deletions

View file

@ -28,7 +28,7 @@
// #error "SPINDLE_LASER_PWM_PIN must use SERVO0, SERVO1 or SERVO3 connector"
//#endif
#if ENABLED(SDCARD_EEPROM_EMULATION) && DISABLED(SDSUPPORT)
#if ENABLED(SDCARD_EEPROM_EMULATION) && !HAS_MEDIA
#undef SDCARD_EEPROM_EMULATION // Avoid additional error noise
#if USE_FALLBACK_EEPROM
#warning "EEPROM type not specified. Fallback is SDCARD_EEPROM_EMULATION."

View file

@ -42,7 +42,7 @@
class Sd2CardUSBMscHandler : public USBMscHandler {
public:
DiskIODriver* diskIODriver() {
#if ENABLED(MULTI_VOLUME)
#if HAS_MULTI_VOLUME
#if SHARED_VOLUME_IS(SD_ONBOARD)
return &card.media_driver_sdcard;
#elif SHARED_VOLUME_IS(USB_FLASH_DRIVE)

View file

@ -58,7 +58,7 @@
* Check for common serial pin conflicts
*/
#define _CHECK_SERIAL_PIN(N) (( \
BTN_EN1 == N || BTN_EN2 == N ||DOGLCD_CS == N || HEATER_BED_PIN == N || FAN0_PIN == N || \
BTN_EN1 == N || BTN_EN2 == N || DOGLCD_CS == N || HEATER_BED_PIN == N || FAN0_PIN == N || \
SDIO_D2_PIN == N || SDIO_D3_PIN == N || SDIO_CK_PIN == N || SDIO_CMD_PIN == N || \
Y_STEP_PIN == N || Y_ENABLE_PIN == N || E0_ENABLE_PIN == N || POWER_LOSS_PIN == N \
))

View file

@ -49,7 +49,7 @@
class Sd2CardUSBMscHandler : public USBMscHandler {
public:
DiskIODriver* diskIODriver() {
#if ENABLED(MULTI_VOLUME)
#if HAS_MULTI_VOLUME
#if SHARED_VOLUME_IS(SD_ONBOARD)
return &card.media_driver_sdcard;
#elif SHARED_VOLUME_IS(USB_FLASH_DRIVE)

View file

@ -815,7 +815,7 @@ void idle(const bool no_stepper_sleep/*=false*/) {
TERN_(HAS_MEDIA, card.manage_media());
// Handle USB Flash Drive insert / remove
TERN_(USB_FLASH_DRIVE_SUPPORT, card.diskIODriver()->idle());
TERN_(HAS_USB_FLASH_DRIVE, card.diskIODriver()->idle());
// Announce Host Keepalive state (if any)
TERN_(HOST_KEEPALIVE_FEATURE, gcode.host_keepalive());

View file

@ -194,7 +194,7 @@ void GcodeSuite::M115() {
// MULTI_VOLUME (M21 S/M21 U)
#if HAS_MEDIA
cap_line(F("MULTI_VOLUME"), ENABLED(MULTI_VOLUME));
cap_line(F("MULTI_VOLUME"), ENABLED(HAS_MULTI_VOLUME));
#endif
// REPEAT (M808)

View file

@ -273,7 +273,7 @@ void GCodeParser::parse(char *p) {
// Only use string_arg for these M codes
if (letter == 'M') switch (codenum) {
TERN_(EXPECTED_PRINTER_CHECK, case 16:)
TERN_(SDSUPPORT, case 23: case 28: case 30: case 928:)
TERN_(HAS_MEDIA, case 23: case 28: case 30: case 928:)
TERN_(HAS_STATUS_MESSAGE, case 117:)
TERN_(HAS_RS485_SERIAL, case 485:)
TERN_(GCODE_MACROS, case 810 ... 819:)

View file

@ -35,7 +35,7 @@
* P1 or U - Change to the USB Drive and mount it
*/
void GcodeSuite::M21() {
#if ENABLED(MULTI_VOLUME)
#if HAS_MULTI_VOLUME
const int8_t vol = parser.intval('P', -1);
if (vol == 0 || parser.seen_test('S')) // "S" for SD Card
card.changeMedia(&card.media_driver_sdcard);

View file

@ -36,6 +36,12 @@
#if ENABLED(SDSUPPORT)
#define HAS_MEDIA 1
#endif
#if ENABLED(MULTI_VOLUME)
#define HAS_MULTI_VOLUME 1
#endif
#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
#define HAS_USB_FLASH_DRIVE 1
#endif
//
// Serial Port Info

View file

@ -1234,7 +1234,7 @@
#define HOMING_BUMP_MM { 0, 0, 0 }
#endif
#if ENABLED(USB_FLASH_DRIVE_SUPPORT) && NONE(USE_OTG_USB_HOST, USE_UHS3_USB)
#if HAS_USB_FLASH_DRIVE && NONE(USE_OTG_USB_HOST, USE_UHS3_USB)
#define USE_UHS2_USB
#endif

View file

@ -550,7 +550,7 @@
#endif
#endif
#if DISABLED(USB_FLASH_DRIVE_SUPPORT) || ALL(MULTI_VOLUME, VOLUME_SD_ONBOARD)
#if !HAS_USB_FLASH_DRIVE || ALL(HAS_MULTI_VOLUME, VOLUME_SD_ONBOARD)
#if ENABLED(ONBOARD_SDIO)
#define NEED_SD2CARD_SDIO 1
#else

View file

@ -3850,11 +3850,9 @@ static_assert(_PLUS_TEST(3), "DEFAULT_MAX_ACCELERATION values must be positive."
#error "PRINTCOUNTER requires EEPROM_SETTINGS."
#endif
#if ENABLED(USB_FLASH_DRIVE_SUPPORT) && !PINS_EXIST(USB_CS, USB_INTR) && DISABLED(USE_OTG_USB_HOST)
#error "USB_CS_PIN and USB_INTR_PIN are required for USB_FLASH_DRIVE_SUPPORT."
#endif
#if ENABLED(USE_OTG_USB_HOST) && !defined(HAS_OTG_USB_HOST_SUPPORT)
#if HAS_USB_FLASH_DRIVE && DISABLED(USE_OTG_USB_HOST) && !PINS_EXIST(USB_CS, USB_INTR)
#error "USB_CS_PIN and USB_INTR_PIN (or USE_OTG_USB_HOST) are required for USB_FLASH_DRIVE_SUPPORT."
#elif ENABLED(USE_OTG_USB_HOST) && !defined(HAS_OTG_USB_HOST_SUPPORT)
#error "The current board does not support USE_OTG_USB_HOST."
#endif
@ -4075,7 +4073,7 @@ static_assert(_PLUS_TEST(3), "DEFAULT_MAX_ACCELERATION values must be positive."
* Check to make sure MONITOR_DRIVER_STATUS isn't enabled
* on boards where TMC drivers share the SPI bus with SD.
*/
#if HAS_TMC_SPI && ALL(MONITOR_DRIVER_STATUS, HAS_MEDIA, USES_SHARED_SPI)
#if HAS_TMC_SPI && ALL(HAS_MEDIA, MONITOR_DRIVER_STATUS, USES_SHARED_SPI)
#error "MONITOR_DRIVER_STATUS and SDSUPPORT cannot be used together on boards with shared SPI."
#endif

View file

@ -21,7 +21,7 @@
*/
#include "../../../inc/MarlinConfigPre.h"
#if ALL(HAS_TFT_LVGL_UI, MULTI_VOLUME)
#if ALL(HAS_TFT_LVGL_UI, HAS_MULTI_VOLUME)
#include "draw_ui.h"
#include <lv_conf.h>

View file

@ -168,7 +168,7 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
}
else {
lv_clear_print_file();
TERN(MULTI_VOLUME, lv_draw_media_select(), lv_draw_ready_print());
TERN(HAS_MULTI_VOLUME, lv_draw_media_select(), lv_draw_ready_print());
}
}
else {

View file

@ -76,7 +76,7 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
case ID_INFO_EXT: uiCfg.curTempType = 0; lv_draw_preHeat(); break;
case ID_INFO_BED: uiCfg.curTempType = 1; lv_draw_preHeat(); break;
case ID_INFO_FAN: lv_draw_fan(); break;
case ID_PRINT: TERN(MULTI_VOLUME, lv_draw_media_select(), lv_draw_print_file()); break;
case ID_PRINT: TERN(HAS_MULTI_VOLUME, lv_draw_media_select(), lv_draw_print_file()); break;
}
}

View file

@ -966,7 +966,7 @@ void clear_cur_ui() {
#if ENABLED(TOUCH_SCREEN_CALIBRATION)
case TOUCH_CALIBRATION_UI: lv_clear_touch_calibration_screen(); break;
#endif
#if ENABLED(MULTI_VOLUME)
#if HAS_MULTI_VOLUME
case MEDIA_SELECT_UI: lv_clear_media_select(); break;
#endif
default: break;

View file

@ -197,7 +197,7 @@ static FSTR_P const assets[] = {
F("bmp_cloud.bin"),
#endif
#if ENABLED(MULTI_VOLUME)
#if HAS_MULTI_VOLUME
F("bmp_usb_disk.bin"),
//F("bmp_usb_disk_sel.bin"),
F("bmp_sd.bin"),

View file

@ -134,9 +134,9 @@ void tft_lvgl_init() {
hal.watchdog_refresh(); // LVGL init takes time
#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
#if HAS_USB_FLASH_DRIVE
uint16_t usb_flash_loop = 1000;
#if ENABLED(MULTI_VOLUME) && !HAS_SD_HOST_DRIVE
#if HAS_MULTI_VOLUME && !HAS_SD_HOST_DRIVE
if (IS_SD_INSERTED())
card.changeMedia(&card.media_driver_sdcard);
else

View file

@ -293,8 +293,8 @@ void menu_main() {
#endif
#if HAS_SD_DETECT
GCODES_ITEM(MSG_CHANGE_MEDIA, F("M21" TERN_(MULTI_VOLUME, "S"))); // M21 Change Media
#if ENABLED(MULTI_VOLUME)
GCODES_ITEM(MSG_CHANGE_MEDIA, F("M21" TERN_(HAS_MULTI_VOLUME, "S"))); // M21 Change Media
#if HAS_MULTI_VOLUME
GCODES_ITEM(MSG_ATTACH_USB_MEDIA, F("M21U")); // M21 Attach USB Media
#endif
#else // - or -
@ -314,7 +314,7 @@ void menu_main() {
#if HAS_SD_DETECT
ACTION_ITEM(MSG_NO_MEDIA, nullptr); // "No Media"
#else
#if ENABLED(MULTI_VOLUME)
#if HAS_MULTI_VOLUME
GCODES_ITEM(MSG_ATTACH_SD_MEDIA, F("M21S")); // M21S Attach SD Card
GCODES_ITEM(MSG_ATTACH_USB_MEDIA, F("M21U")); // M21U Attach USB Media
#else
@ -420,8 +420,8 @@ void menu_main() {
#endif
#if HAS_SD_DETECT
GCODES_ITEM(MSG_CHANGE_MEDIA, F("M21" TERN_(MULTI_VOLUME, "S"))); // M21 Change Media
#if ENABLED(MULTI_VOLUME)
GCODES_ITEM(MSG_CHANGE_MEDIA, F("M21" TERN_(HAS_MULTI_VOLUME, "S"))); // M21 Change Media
#if HAS_MULTI_VOLUME
GCODES_ITEM(MSG_ATTACH_USB_MEDIA, F("M21U")); // M21 Attach USB Media
#endif
#else // - or -
@ -441,7 +441,7 @@ void menu_main() {
#if HAS_SD_DETECT
ACTION_ITEM(MSG_NO_MEDIA, nullptr); // "No Media"
#else
#if ENABLED(MULTI_VOLUME)
#if HAS_MULTI_VOLUME
GCODES_ITEM(MSG_ATTACH_SD_MEDIA, F("M21S")); // M21S Attach SD Card
GCODES_ITEM(MSG_ATTACH_USB_MEDIA, F("M21U")); // M21U Attach USB Media
#else

View file

@ -112,7 +112,7 @@ void menu_media_filelist() {
#endif
START_MENU();
#if ENABLED(MULTI_VOLUME)
#if HAS_MULTI_VOLUME
ACTION_ITEM(MSG_BACK, []{ ui.goto_screen(menu_media); });
#else
BACK_ITEM_F(TERN1(BROWSE_MEDIA_ON_INSERT, screen_history_depth) ? GET_TEXT_F(MSG_MAIN_MENU) : GET_TEXT_F(MSG_BACK));
@ -141,7 +141,7 @@ void menu_media_filelist() {
END_MENU();
}
#if ENABLED(MULTI_VOLUME)
#if HAS_MULTI_VOLUME
void menu_media_select() {
START_MENU();
BACK_ITEM_F(TERN1(BROWSE_MEDIA_ON_INSERT, screen_history_depth) ? GET_TEXT_F(MSG_MAIN_MENU) : GET_TEXT_F(MSG_BACK));
@ -156,7 +156,7 @@ void menu_media_filelist() {
#endif
void menu_media() {
TERN(MULTI_VOLUME, menu_media_select, menu_media_filelist)();
TERN(HAS_MULTI_VOLUME, menu_media_select, menu_media_filelist)();
}
#endif // HAS_MARLINUI_MENU && HAS_MEDIA

View file

@ -521,7 +521,7 @@ void RTS::sdCardStop() {
thermalManager.zero_fan_speeds();
wait_for_heatup = wait_for_user = false;
poweroff_continue = false;
#if ALL(SDSUPPORT, POWER_LOSS_RECOVERY)
#if ALL(HAS_MEDIA, POWER_LOSS_RECOVERY)
if (card.flag.mounted) card.removeJobRecoveryFile();
#endif
#ifdef EVENT_GCODE_SD_STOP
@ -1094,7 +1094,7 @@ void RTS::handleData() {
thermalManager.disable_all_heaters();
print_job_timer.reset();
#if ALL(SDSUPPORT, POWER_LOSS_RECOVERY)
#if ALL(HAS_MEDIA, POWER_LOSS_RECOVERY)
if (card.flag.mounted) {
card.removeJobRecoveryFile();
recovery.info.valid_head = 0;

View file

@ -95,7 +95,7 @@
#define TEMP_BOARD_PIN TEMP_MCU
// SPI for MAX Thermocouple
#if DISABLED(SDSUPPORT)
#if !HAS_MEDIA
#define TEMP_0_CS_PIN 17 // Don't use 53 if using Display/SD card
#else
#define TEMP_0_CS_PIN 17 // Don't use 49 (SD_DETECT_PIN)

View file

@ -253,9 +253,9 @@
#define BTN_ENC 16 // D16 PA13_TXD1 // the click
#endif
#if ANY(HAS_WIRED_LCD, TOUCH_UI_ULTIPANEL, TOUCH_UI_FTDI_EVE, USB_FLASH_DRIVE_SUPPORT)
#if ANY(HAS_WIRED_LCD, TOUCH_UI_ULTIPANEL, TOUCH_UI_FTDI_EVE, HAS_USB_FLASH_DRIVE)
#define SD_DETECT_PIN 2 // D2 PB25_TIOA0
#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
#if HAS_USB_FLASH_DRIVE
#define DISABLE_DUE_SD_MMC
#endif
#endif

View file

@ -39,7 +39,7 @@
*
* Each card requires about 550 bytes of SRAM so use of a Mega is recommended.
*/
#define USE_MULTIPLE_CARDS 0 //TODO? ENABLED(MULTI_VOLUME)
#define USE_MULTIPLE_CARDS 0 // TODO? HAS_MULTI_VOLUME
/**
* Call flush for endl if ENDL_CALLS_FLUSH is nonzero

View file

@ -34,7 +34,7 @@
#include "../inc/MarlinConfigPre.h"
#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
#if HAS_USB_FLASH_DRIVE
#include "usb_flashdrive/Sd2Card_FlashDrive.h"
#endif

View file

@ -504,7 +504,7 @@ void CardReader::mount() {
if (flag.mounted)
cdroot();
else {
#if ANY(HAS_SD_DETECT, USB_FLASH_DRIVE_SUPPORT)
#if ANY(HAS_SD_DETECT, HAS_USB_FLASH_DRIVE)
if (marlin_state != MarlinState::MF_INITIALIZING) LCD_ALERTMESSAGE(MSG_MEDIA_INIT_FAIL);
#endif
}

View file

@ -50,7 +50,7 @@ extern const char M23_STR[], M24_STR[];
#include "SdFile.h"
#include "disk_io_driver.h"
#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
#if HAS_USB_FLASH_DRIVE
#include "usb_flashdrive/Sd2Card_FlashDrive.h"
#endif
@ -60,7 +60,7 @@ extern const char M23_STR[], M24_STR[];
#include "Sd2Card.h"
#endif
#if ENABLED(MULTI_VOLUME)
#if HAS_MULTI_VOLUME
#define SV_SD_ONBOARD 1
#define SV_USB_FLASH_DRIVE 2
#define _VOLUME_ID(N) _CAT(SV_, N)
@ -257,7 +257,7 @@ public:
static AutoReporter<AutoReportSD> auto_reporter;
#endif
#if SHARED_VOLUME_IS(USB_FLASH_DRIVE) || ENABLED(USB_FLASH_DRIVE_SUPPORT)
#if SHARED_VOLUME_IS(USB_FLASH_DRIVE) || HAS_USB_FLASH_DRIVE
#define HAS_USB_FLASH_DRIVE 1
static DiskIODriver_USBFlash media_driver_usbFlash;
#endif
@ -363,7 +363,7 @@ private:
#endif
};
#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
#if HAS_USB_FLASH_DRIVE
#define IS_SD_INSERTED() DiskIODriver_USBFlash::isInserted()
#elif HAS_SD_DETECT
#define IS_SD_INSERTED() (READ(SD_DETECT_PIN) == SD_DETECT_STATE)

View file

@ -38,14 +38,14 @@
//#define BS_HOST_DEBUG(...) {char s[255]; sprintf(s,__VA_ARGS__); SERIAL_ECHOLNPGM("UHS:",s);}
//#define MAX_HOST_DEBUG(...) {char s[255]; sprintf(s,__VA_ARGS__); SERIAL_ECHOLNPGM("UHS:",s);}
#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
#if HAS_USB_FLASH_DRIVE
#include "../../MarlinCore.h"
#include "../../core/serial.h"
#include "../../module/temperature.h"
#if DISABLED(USE_OTG_USB_HOST) && !PINS_EXIST(USB_CS, USB_INTR)
#error "USB_FLASH_DRIVE_SUPPORT requires USB_CS_PIN and USB_INTR_PIN to be defined."
#error "USB_FLASH_DRIVE_SUPPORT requires USB_CS_PIN and USB_INTR_PIN (or USE_OTG_USB_HOST) to be defined."
#endif
#if ENABLED(USE_UHS3_USB)
@ -325,4 +325,4 @@ bool DiskIODriver_USBFlash::writeBlock(uint32_t block, const uint8_t *src) {
return bulk.Write(0, block, 512, 1, src) == 0;
}
#endif // USB_FLASH_DRIVE_SUPPORT
#endif // HAS_USB_FLASH_DRIVE

View file

@ -29,7 +29,7 @@
#include "../../../inc/MarlinConfigPre.h"
#if ENABLED(USB_FLASH_DRIVE_SUPPORT) && DISABLED(USE_UHS3_USB)
#if HAS_USB_FLASH_DRIVE && DISABLED(USE_UHS3_USB)
#include "Usb.h"
@ -792,4 +792,4 @@ uint8_t USB::setConf(uint8_t addr, uint8_t ep, uint8_t conf_value) {
return ctrlReq(addr, ep, bmREQ_SET, USB_REQUEST_SET_CONFIGURATION, conf_value, 0x00, 0x0000, 0x0000, 0x0000, nullptr, nullptr);
}
#endif // USB_FLASH_DRIVE_SUPPORT
#endif // HAS_USB_FLASH_DRIVE && !USE_UHS3_USB

View file

@ -25,7 +25,7 @@
#include "../../../inc/MarlinConfigPre.h"
#if ENABLED(USB_FLASH_DRIVE_SUPPORT) && DISABLED(USE_UHS3_USB)
#if HAS_USB_FLASH_DRIVE && DISABLED(USE_UHS3_USB)
#include "masstorage.h"
@ -1204,4 +1204,4 @@ uint8_t BulkOnly::Read(uint8_t lun __attribute__((unused)), uint32_t addr __attr
#endif
}
#endif // USB_FLASH_DRIVE_SUPPORT
#endif // HAS_USB_FLASH_DRIVE && !USE_UHS3_USB

View file

@ -25,7 +25,7 @@
#include "../../../inc/MarlinConfigPre.h"
#if ENABLED(USB_FLASH_DRIVE_SUPPORT) && DISABLED(USE_UHS3_USB)
#if HAS_USB_FLASH_DRIVE && DISABLED(USE_UHS3_USB)
#include "Usb.h"
@ -125,4 +125,4 @@ void E_Notify(double d, int lvl) {
#endif // DEBUG_USB_HOST
#endif // USB_FLASH_DRIVE_SUPPORT
#endif // HAS_USB_FLASH_DRIVE && !USE_UHS3_USB

View file

@ -25,7 +25,7 @@
#include "../../../inc/MarlinConfigPre.h"
#if ENABLED(USB_FLASH_DRIVE_SUPPORT) && DISABLED(USE_UHS3_USB)
#if HAS_USB_FLASH_DRIVE && DISABLED(USE_UHS3_USB)
#include "Usb.h"
@ -74,4 +74,4 @@ bool PTPListParser::Parse(uint8_t **pp, uint16_t *pcntdn, PTP_ARRAY_EL_FUNC pf,
return true;
}
#endif // USB_FLASH_DRIVE_SUPPORT
#endif // HAS_USB_FLASH_DRIVE && !USE_UHS3_USB

View file

@ -28,7 +28,7 @@
#include "macros.h"
#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
#if HAS_USB_FLASH_DRIVE
////////////////////////////////////////////////////////////////////////////////
/* Added by Bill Greiman to speed up mass storage initialization with USB
* flash drives and simple USB hard drives.
@ -65,7 +65,7 @@
* For example Serial3.
*/
#ifndef USB_HOST_SERIAL
#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
#if HAS_USB_FLASH_DRIVE
#define USB_HOST_SERIAL MYSERIAL1
#else
#define USB_HOST_SERIAL Serial

View file

@ -25,10 +25,10 @@
#include "../../../inc/MarlinConfigPre.h"
#if ENABLED(USB_FLASH_DRIVE_SUPPORT) && DISABLED(USE_UHS3_USB)
#if HAS_USB_FLASH_DRIVE && DISABLED(USE_UHS3_USB)
#if !PINS_EXIST(USB_CS, USB_INTR)
#error "USB_FLASH_DRIVE_SUPPORT requires USB_CS_PIN and USB_INTR_PIN to be defined."
#error "USB_FLASH_DRIVE_SUPPORT requires USB_CS_PIN and USB_INTR_PIN (or USE_UHS3_USB) to be defined."
#endif
#include "Usb.h"
@ -203,4 +203,4 @@ uint8_t MAX3421e::IntHandler() {
return HIRQ_sendback;
}
#endif // USB_FLASH_DRIVE_SUPPORT
#endif // HAS_USB_FLASH_DRIVE && !USE_UHS3_USB

View file

@ -208,7 +208,7 @@ MALYAN_LCD = build_src_filter=+<src/lcd/extui/malyan
NEXTION_TFT = build_src_filter=+<src/lcd/extui/nextion>
USE_UHS2_USB = build_src_filter=+<src/sd/usb_flashdrive/lib-uhs2>
USE_UHS3_USB = build_src_filter=+<src/sd/usb_flashdrive/lib-uhs3>
USB_FLASH_DRIVE_SUPPORT = build_src_filter=+<src/sd/usb_flashdrive/Sd2Card_FlashDrive.cpp>
HAS_USB_FLASH_DRIVE = build_src_filter=+<src/sd/usb_flashdrive/Sd2Card_FlashDrive.cpp>
HAS_MCP3426_ADC = build_src_filter=+<src/feature/adc> +<src/gcode/feature/adc>
AUTO_BED_LEVELING_BILINEAR = build_src_filter=+<src/feature/bedlevel/abl>
AUTO_BED_LEVELING_(3POINT|(BI)?LINEAR) = build_src_filter=+<src/gcode/bedlevel/abl>