mirror of
https://github.com/justcallmekoko/ESP32Marauder.git
synced 2025-12-22 15:16:43 -08:00
Less memory consumption from menu items
This commit is contained in:
@@ -571,6 +571,8 @@ void MenuFunctions::buttonNotSelected(uint8_t b, int8_t x) {
|
|||||||
display_obj.key[b].drawButton(false, current_menu->list->get(x).name);
|
display_obj.key[b].drawButton(false, current_menu->list->get(x).name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
uint16_t color = this->getColor(current_menu->list->get(x).color);
|
||||||
|
|
||||||
#ifdef HAS_FULL_SCREEN
|
#ifdef HAS_FULL_SCREEN
|
||||||
display_obj.tft.setFreeFont(MENU_FONT);
|
display_obj.tft.setFreeFont(MENU_FONT);
|
||||||
display_obj.key[b].drawButton(false, current_menu->list->get(x).name);
|
display_obj.key[b].drawButton(false, current_menu->list->get(x).name);
|
||||||
@@ -581,7 +583,7 @@ void MenuFunctions::buttonNotSelected(uint8_t b, int8_t x) {
|
|||||||
ICON_W,
|
ICON_W,
|
||||||
ICON_H,
|
ICON_H,
|
||||||
TFT_BLACK,
|
TFT_BLACK,
|
||||||
current_menu->list->get(x).color);
|
color);
|
||||||
display_obj.tft.setFreeFont(NULL);
|
display_obj.tft.setFreeFont(NULL);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -591,6 +593,8 @@ void MenuFunctions::buttonSelected(uint8_t b, int8_t x) {
|
|||||||
if (x == -1)
|
if (x == -1)
|
||||||
x = b;
|
x = b;
|
||||||
|
|
||||||
|
uint16_t color = this->getColor(current_menu->list->get(x).color);
|
||||||
|
|
||||||
#ifdef HAS_MINI_SCREEN
|
#ifdef HAS_MINI_SCREEN
|
||||||
display_obj.tft.setFreeFont(NULL);
|
display_obj.tft.setFreeFont(NULL);
|
||||||
display_obj.key[b].drawButton(true, current_menu->list->get(x).name);
|
display_obj.key[b].drawButton(true, current_menu->list->get(x).name);
|
||||||
@@ -606,7 +610,7 @@ void MenuFunctions::buttonSelected(uint8_t b, int8_t x) {
|
|||||||
ICON_W,
|
ICON_W,
|
||||||
ICON_H,
|
ICON_H,
|
||||||
TFT_BLACK,
|
TFT_BLACK,
|
||||||
current_menu->list->get(x).color);
|
color);
|
||||||
display_obj.tft.setFreeFont(NULL);
|
display_obj.tft.setFreeFont(NULL);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
@@ -1511,76 +1515,76 @@ void MenuFunctions::RunSetup()
|
|||||||
|
|
||||||
// Build Main Menu
|
// Build Main Menu
|
||||||
mainMenu.parentMenu = NULL;
|
mainMenu.parentMenu = NULL;
|
||||||
this->addNodes(&mainMenu, text_table1[7], TFT_GREEN, NULL, WIFI, [this]() {
|
this->addNodes(&mainMenu, text_table1[7], TFTGREEN, NULL, WIFI, [this]() {
|
||||||
this->changeMenu(&wifiMenu);
|
this->changeMenu(&wifiMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&mainMenu, text_table1[19], TFT_CYAN, NULL, BLUETOOTH, [this]() {
|
this->addNodes(&mainMenu, text_table1[19], TFTCYAN, NULL, BLUETOOTH, [this]() {
|
||||||
this->changeMenu(&bluetoothMenu);
|
this->changeMenu(&bluetoothMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&mainMenu, text_table1[9], TFT_BLUE, NULL, DEVICE, [this]() {
|
this->addNodes(&mainMenu, text_table1[9], TFTBLUE, NULL, DEVICE, [this]() {
|
||||||
this->changeMenu(&deviceMenu);
|
this->changeMenu(&deviceMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&mainMenu, text_table1[30], TFT_LIGHTGREY, NULL, REBOOT, []() {
|
this->addNodes(&mainMenu, text_table1[30], TFTLIGHTGREY, NULL, REBOOT, []() {
|
||||||
ESP.restart();
|
ESP.restart();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build WiFi Menu
|
// Build WiFi Menu
|
||||||
wifiMenu.parentMenu = &mainMenu; // Main Menu is second menu parent
|
wifiMenu.parentMenu = &mainMenu; // Main Menu is second menu parent
|
||||||
this->addNodes(&wifiMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&wifiMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(wifiMenu.parentMenu);
|
this->changeMenu(wifiMenu.parentMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiMenu, text_table1[31], TFT_YELLOW, NULL, SNIFFERS, [this]() {
|
this->addNodes(&wifiMenu, text_table1[31], TFTYELLOW, NULL, SNIFFERS, [this]() {
|
||||||
this->changeMenu(&wifiSnifferMenu);
|
this->changeMenu(&wifiSnifferMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiMenu, "Wardriving", TFT_GREEN, NULL, BEACON_SNIFF, [this]() {
|
this->addNodes(&wifiMenu, "Wardriving", TFTGREEN, NULL, BEACON_SNIFF, [this]() {
|
||||||
this->changeMenu(&wardrivingMenu);
|
this->changeMenu(&wardrivingMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiMenu, text_table1[32], TFT_RED, NULL, ATTACKS, [this]() {
|
this->addNodes(&wifiMenu, text_table1[32], TFTRED, NULL, ATTACKS, [this]() {
|
||||||
this->changeMenu(&wifiAttackMenu);
|
this->changeMenu(&wifiAttackMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiMenu, text_table1[33], TFT_PURPLE, NULL, GENERAL_APPS, [this]() {
|
this->addNodes(&wifiMenu, text_table1[33], TFTPURPLE, NULL, GENERAL_APPS, [this]() {
|
||||||
this->changeMenu(&wifiGeneralMenu);
|
this->changeMenu(&wifiGeneralMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build WiFi sniffer Menu
|
// Build WiFi sniffer Menu
|
||||||
wifiSnifferMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
|
wifiSnifferMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
|
||||||
this->addNodes(&wifiSnifferMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&wifiSnifferMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(wifiSnifferMenu.parentMenu);
|
this->changeMenu(wifiSnifferMenu.parentMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiSnifferMenu, text_table1[42], TFT_CYAN, NULL, PROBE_SNIFF, [this]() {
|
this->addNodes(&wifiSnifferMenu, text_table1[42], TFTCYAN, NULL, PROBE_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_PROBE, TFT_CYAN);
|
wifi_scan_obj.StartScan(WIFI_SCAN_PROBE, TFT_CYAN);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiSnifferMenu, text_table1[43], TFT_MAGENTA, NULL, BEACON_SNIFF, [this]() {
|
this->addNodes(&wifiSnifferMenu, text_table1[43], TFTMAGENTA, NULL, BEACON_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_AP, TFT_MAGENTA);
|
wifi_scan_obj.StartScan(WIFI_SCAN_AP, TFT_MAGENTA);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiSnifferMenu, text_table1[44], TFT_RED, NULL, DEAUTH_SNIFF, [this]() {
|
this->addNodes(&wifiSnifferMenu, text_table1[44], TFTRED, NULL, DEAUTH_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_DEAUTH, TFT_RED);
|
wifi_scan_obj.StartScan(WIFI_SCAN_DEAUTH, TFT_RED);
|
||||||
});
|
});
|
||||||
#ifdef HAS_ILI9341
|
#ifdef HAS_ILI9341
|
||||||
this->addNodes(&wifiSnifferMenu, text_table1[46], TFT_VIOLET, NULL, EAPOL, [this]() {
|
this->addNodes(&wifiSnifferMenu, text_table1[46], TFTVIOLET, NULL, EAPOL, [this]() {
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_EAPOL, TFT_VIOLET);
|
wifi_scan_obj.StartScan(WIFI_SCAN_EAPOL, TFT_VIOLET);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiSnifferMenu, text_table1[45], TFT_BLUE, NULL, PACKET_MONITOR, [this]() {
|
this->addNodes(&wifiSnifferMenu, text_table1[45], TFTBLUE, NULL, PACKET_MONITOR, [this]() {
|
||||||
wifi_scan_obj.StartScan(WIFI_PACKET_MONITOR, TFT_BLUE);
|
wifi_scan_obj.StartScan(WIFI_PACKET_MONITOR, TFT_BLUE);
|
||||||
});
|
});
|
||||||
#else
|
#else
|
||||||
this->addNodes(&wifiSnifferMenu, text_table1[46], TFT_VIOLET, NULL, EAPOL, [this]() {
|
this->addNodes(&wifiSnifferMenu, text_table1[46], TFTVIOLET, NULL, EAPOL, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_EAPOL, TFT_VIOLET);
|
wifi_scan_obj.StartScan(WIFI_SCAN_EAPOL, TFT_VIOLET);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiSnifferMenu, text_table1[45], TFT_BLUE, NULL, PACKET_MONITOR, [this]() {
|
this->addNodes(&wifiSnifferMenu, text_table1[45], TFTBLUE, NULL, PACKET_MONITOR, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_PACKET_MONITOR, TFT_BLUE);
|
wifi_scan_obj.StartScan(WIFI_PACKET_MONITOR, TFT_BLUE);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiSnifferMenu, "Channel Analyzer", TFT_CYAN, NULL, PACKET_MONITOR, [this]() {
|
this->addNodes(&wifiSnifferMenu, "Channel Analyzer", TFTCYAN, NULL, PACKET_MONITOR, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
this->renderGraphUI();
|
this->renderGraphUI();
|
||||||
@@ -1588,29 +1592,29 @@ void MenuFunctions::RunSetup()
|
|||||||
});
|
});
|
||||||
#endif
|
#endif
|
||||||
//#ifndef HAS_ILI9341
|
//#ifndef HAS_ILI9341
|
||||||
this->addNodes(&wifiSnifferMenu, text_table1[47], TFT_RED, NULL, PWNAGOTCHI, [this]() {
|
this->addNodes(&wifiSnifferMenu, text_table1[47], TFTRED, NULL, PWNAGOTCHI, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_PWN, TFT_RED);
|
wifi_scan_obj.StartScan(WIFI_SCAN_PWN, TFT_RED);
|
||||||
});
|
});
|
||||||
//#endif
|
//#endif
|
||||||
this->addNodes(&wifiSnifferMenu, text_table1[49], TFT_MAGENTA, NULL, BEACON_SNIFF, [this]() {
|
this->addNodes(&wifiSnifferMenu, text_table1[49], TFTMAGENTA, NULL, BEACON_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_TARGET_AP, TFT_MAGENTA);
|
wifi_scan_obj.StartScan(WIFI_SCAN_TARGET_AP, TFT_MAGENTA);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiSnifferMenu, text_table1[58], TFT_WHITE, NULL, PACKET_MONITOR, [this]() {
|
this->addNodes(&wifiSnifferMenu, text_table1[58], TFTWHITE, NULL, PACKET_MONITOR, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_RAW_CAPTURE, TFT_WHITE);
|
wifi_scan_obj.StartScan(WIFI_SCAN_RAW_CAPTURE, TFT_WHITE);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiSnifferMenu, text_table1[59], TFT_ORANGE, NULL, PACKET_MONITOR, [this]() {
|
this->addNodes(&wifiSnifferMenu, text_table1[59], TFTORANGE, NULL, PACKET_MONITOR, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_STATION, TFT_WHITE);
|
wifi_scan_obj.StartScan(WIFI_SCAN_STATION, TFT_WHITE);
|
||||||
});
|
});
|
||||||
#ifdef HAS_ILI9341
|
#ifdef HAS_ILI9341
|
||||||
this->addNodes(&wifiSnifferMenu, "Signal Monitor", TFT_CYAN, NULL, PACKET_MONITOR, [this]() {
|
this->addNodes(&wifiSnifferMenu, "Signal Monitor", TFTCYAN, NULL, PACKET_MONITOR, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_SIG_STREN, TFT_CYAN);
|
wifi_scan_obj.StartScan(WIFI_SCAN_SIG_STREN, TFT_CYAN);
|
||||||
@@ -1619,12 +1623,12 @@ void MenuFunctions::RunSetup()
|
|||||||
|
|
||||||
// Build Wardriving menu
|
// Build Wardriving menu
|
||||||
wardrivingMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
|
wardrivingMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
|
||||||
this->addNodes(&wardrivingMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&wardrivingMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(wardrivingMenu.parentMenu);
|
this->changeMenu(wardrivingMenu.parentMenu);
|
||||||
});
|
});
|
||||||
#ifdef HAS_GPS
|
#ifdef HAS_GPS
|
||||||
if (gps_obj.getGpsModuleStatus()) {
|
if (gps_obj.getGpsModuleStatus()) {
|
||||||
this->addNodes(&wardrivingMenu, "Wardrive", TFT_GREEN, NULL, BEACON_SNIFF, [this]() {
|
this->addNodes(&wardrivingMenu, "Wardrive", TFTGREEN, NULL, BEACON_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_WAR_DRIVE, TFT_GREEN);
|
wifi_scan_obj.StartScan(WIFI_SCAN_WAR_DRIVE, TFT_GREEN);
|
||||||
@@ -1633,7 +1637,7 @@ void MenuFunctions::RunSetup()
|
|||||||
#endif
|
#endif
|
||||||
#ifdef HAS_GPS
|
#ifdef HAS_GPS
|
||||||
if (gps_obj.getGpsModuleStatus()) {
|
if (gps_obj.getGpsModuleStatus()) {
|
||||||
this->addNodes(&wardrivingMenu, "Station Wardrive", TFT_ORANGE, NULL, PROBE_SNIFF, [this]() {
|
this->addNodes(&wardrivingMenu, "Station Wardrive", TFTORANGE, NULL, PROBE_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_STATION_WAR_DRIVE, TFT_ORANGE);
|
wifi_scan_obj.StartScan(WIFI_SCAN_STATION_WAR_DRIVE, TFT_ORANGE);
|
||||||
@@ -1643,45 +1647,45 @@ void MenuFunctions::RunSetup()
|
|||||||
|
|
||||||
// Build WiFi attack menu
|
// Build WiFi attack menu
|
||||||
wifiAttackMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
|
wifiAttackMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
|
||||||
this->addNodes(&wifiAttackMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&wifiAttackMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(wifiAttackMenu.parentMenu);
|
this->changeMenu(wifiAttackMenu.parentMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiAttackMenu, text_table1[50], TFT_RED, NULL, BEACON_LIST, [this]() {
|
this->addNodes(&wifiAttackMenu, text_table1[50], TFTRED, NULL, BEACON_LIST, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_ATTACK_BEACON_LIST, TFT_RED);
|
wifi_scan_obj.StartScan(WIFI_ATTACK_BEACON_LIST, TFT_RED);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiAttackMenu, text_table1[51], TFT_ORANGE, NULL, BEACON_SPAM, [this]() {
|
this->addNodes(&wifiAttackMenu, text_table1[51], TFTORANGE, NULL, BEACON_SPAM, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_ATTACK_BEACON_SPAM, TFT_ORANGE);
|
wifi_scan_obj.StartScan(WIFI_ATTACK_BEACON_SPAM, TFT_ORANGE);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiAttackMenu, text_table1[52], TFT_YELLOW, NULL, RICK_ROLL, [this]() {
|
this->addNodes(&wifiAttackMenu, text_table1[52], TFTYELLOW, NULL, RICK_ROLL, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_ATTACK_RICK_ROLL, TFT_YELLOW);
|
wifi_scan_obj.StartScan(WIFI_ATTACK_RICK_ROLL, TFT_YELLOW);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiAttackMenu, text_table1[53], TFT_RED, NULL, PROBE_SNIFF, [this]() {
|
this->addNodes(&wifiAttackMenu, text_table1[53], TFTRED, NULL, PROBE_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_ATTACK_AUTH, TFT_RED);
|
wifi_scan_obj.StartScan(WIFI_ATTACK_AUTH, TFT_RED);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiAttackMenu, "Evil Portal", TFT_ORANGE, NULL, BEACON_SNIFF, [this]() {
|
this->addNodes(&wifiAttackMenu, "Evil Portal", TFTORANGE, NULL, BEACON_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_EVIL_PORTAL, TFT_ORANGE);
|
wifi_scan_obj.StartScan(WIFI_SCAN_EVIL_PORTAL, TFT_ORANGE);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiAttackMenu, text_table1[54], TFT_RED, NULL, DEAUTH_SNIFF, [this]() {
|
this->addNodes(&wifiAttackMenu, text_table1[54], TFTRED, NULL, DEAUTH_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_ATTACK_DEAUTH, TFT_RED);
|
wifi_scan_obj.StartScan(WIFI_ATTACK_DEAUTH, TFT_RED);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiAttackMenu, text_table1[57], TFT_MAGENTA, NULL, BEACON_LIST, [this]() {
|
this->addNodes(&wifiAttackMenu, text_table1[57], TFTMAGENTA, NULL, BEACON_LIST, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_ATTACK_AP_SPAM, TFT_MAGENTA);
|
wifi_scan_obj.StartScan(WIFI_ATTACK_AP_SPAM, TFT_MAGENTA);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiAttackMenu, text_table1[62], TFT_RED, NULL, DEAUTH_SNIFF, [this]() {
|
this->addNodes(&wifiAttackMenu, text_table1[62], TFTRED, NULL, DEAUTH_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(WIFI_ATTACK_DEAUTH_TARGETED, TFT_ORANGE);
|
wifi_scan_obj.StartScan(WIFI_ATTACK_DEAUTH_TARGETED, TFT_ORANGE);
|
||||||
@@ -1689,62 +1693,62 @@ void MenuFunctions::RunSetup()
|
|||||||
|
|
||||||
// Build WiFi General menu
|
// Build WiFi General menu
|
||||||
wifiGeneralMenu.parentMenu = &wifiMenu;
|
wifiGeneralMenu.parentMenu = &wifiMenu;
|
||||||
this->addNodes(&wifiGeneralMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&wifiGeneralMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(wifiGeneralMenu.parentMenu);
|
this->changeMenu(wifiGeneralMenu.parentMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiGeneralMenu, text_table1[27], TFT_SKYBLUE, NULL, GENERATE, [this]() {
|
this->addNodes(&wifiGeneralMenu, text_table1[27], TFTSKYBLUE, NULL, GENERATE, [this]() {
|
||||||
this->changeMenu(&generateSSIDsMenu);
|
this->changeMenu(&generateSSIDsMenu);
|
||||||
wifi_scan_obj.RunGenerateSSIDs();
|
wifi_scan_obj.RunGenerateSSIDs();
|
||||||
});
|
});
|
||||||
#ifdef HAS_ILI9341
|
#ifdef HAS_ILI9341
|
||||||
this->addNodes(&wifiGeneralMenu, text_table1[1], TFT_NAVY, NULL, KEYBOARD_ICO, [this](){
|
this->addNodes(&wifiGeneralMenu, text_table1[1], TFTNAVY, NULL, KEYBOARD_ICO, [this](){
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
wifi_scan_obj.StartScan(LV_ADD_SSID, TFT_YELLOW);
|
wifi_scan_obj.StartScan(LV_ADD_SSID, TFT_YELLOW);
|
||||||
addSSIDGFX();
|
addSSIDGFX();
|
||||||
});
|
});
|
||||||
#endif
|
#endif
|
||||||
#if (!defined(HAS_ILI9341) && defined(HAS_BUTTONS))
|
#if (!defined(HAS_ILI9341) && defined(HAS_BUTTONS))
|
||||||
this->addNodes(&wifiGeneralMenu, text_table1[1], TFT_NAVY, NULL, KEYBOARD_ICO, [this](){
|
this->addNodes(&wifiGeneralMenu, text_table1[1], TFTNAVY, NULL, KEYBOARD_ICO, [this](){
|
||||||
this->changeMenu(&miniKbMenu);
|
this->changeMenu(&miniKbMenu);
|
||||||
this->miniKeyboard(&miniKbMenu);
|
this->miniKeyboard(&miniKbMenu);
|
||||||
});
|
});
|
||||||
#endif
|
#endif
|
||||||
this->addNodes(&wifiGeneralMenu, text_table1[28], TFT_SILVER, NULL, CLEAR_ICO, [this]() {
|
this->addNodes(&wifiGeneralMenu, text_table1[28], TFTSILVER, NULL, CLEAR_ICO, [this]() {
|
||||||
this->changeMenu(&clearSSIDsMenu);
|
this->changeMenu(&clearSSIDsMenu);
|
||||||
wifi_scan_obj.RunClearSSIDs();
|
wifi_scan_obj.RunClearSSIDs();
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiGeneralMenu, text_table1[29], TFT_DARKGREY, NULL, CLEAR_ICO, [this]() {
|
this->addNodes(&wifiGeneralMenu, text_table1[29], TFTDARKGREY, NULL, CLEAR_ICO, [this]() {
|
||||||
this->changeMenu(&clearAPsMenu);
|
this->changeMenu(&clearAPsMenu);
|
||||||
wifi_scan_obj.RunClearAPs();
|
wifi_scan_obj.RunClearAPs();
|
||||||
});
|
});
|
||||||
this->addNodes(&wifiGeneralMenu, text_table1[60], TFT_BLUE, NULL, CLEAR_ICO, [this]() {
|
this->addNodes(&wifiGeneralMenu, text_table1[60], TFTBLUE, NULL, CLEAR_ICO, [this]() {
|
||||||
this->changeMenu(&clearAPsMenu);
|
this->changeMenu(&clearAPsMenu);
|
||||||
wifi_scan_obj.RunClearStations();
|
wifi_scan_obj.RunClearStations();
|
||||||
});
|
});
|
||||||
#ifdef HAS_ILI9341
|
#ifdef HAS_ILI9341
|
||||||
// Select APs on OG
|
// Select APs on OG
|
||||||
this->addNodes(&wifiGeneralMenu, text_table1[56], TFT_NAVY, NULL, KEYBOARD_ICO, [this](){
|
this->addNodes(&wifiGeneralMenu, text_table1[56], TFTNAVY, NULL, KEYBOARD_ICO, [this](){
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
wifi_scan_obj.currentScanMode = LV_ADD_SSID;
|
wifi_scan_obj.currentScanMode = LV_ADD_SSID;
|
||||||
wifi_scan_obj.StartScan(LV_ADD_SSID, TFT_RED);
|
wifi_scan_obj.StartScan(LV_ADD_SSID, TFT_RED);
|
||||||
addAPGFX();
|
addAPGFX();
|
||||||
});
|
});
|
||||||
// Select Stations on OG
|
// Select Stations on OG
|
||||||
this->addNodes(&wifiGeneralMenu, text_table1[61], TFT_LIGHTGREY, NULL, KEYBOARD_ICO, [this](){
|
this->addNodes(&wifiGeneralMenu, text_table1[61], TFTLIGHTGREY, NULL, KEYBOARD_ICO, [this](){
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
wifi_scan_obj.currentScanMode = LV_ADD_SSID;
|
wifi_scan_obj.currentScanMode = LV_ADD_SSID;
|
||||||
wifi_scan_obj.StartScan(LV_ADD_SSID, TFT_RED);
|
wifi_scan_obj.StartScan(LV_ADD_SSID, TFT_RED);
|
||||||
addStationGFX();
|
addStationGFX();
|
||||||
});
|
});
|
||||||
// Select Evil Portal Files on OG
|
// Select Evil Portal Files on OG
|
||||||
this->addNodes(&wifiGeneralMenu, "Select EP HTML File", TFT_CYAN, NULL, KEYBOARD_ICO, [this](){
|
this->addNodes(&wifiGeneralMenu, "Select EP HTML File", TFTCYAN, NULL, KEYBOARD_ICO, [this](){
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
wifi_scan_obj.currentScanMode = LV_ADD_SSID;
|
wifi_scan_obj.currentScanMode = LV_ADD_SSID;
|
||||||
wifi_scan_obj.StartScan(LV_ADD_SSID, TFT_RED);
|
wifi_scan_obj.StartScan(LV_ADD_SSID, TFT_RED);
|
||||||
selectEPHTMLGFX();
|
selectEPHTMLGFX();
|
||||||
});
|
});
|
||||||
#else // Mini EP HTML select
|
#else // Mini EP HTML select
|
||||||
this->addNodes(&wifiGeneralMenu, "Select EP HTML File", TFT_CYAN, NULL, KEYBOARD_ICO, [this](){
|
this->addNodes(&wifiGeneralMenu, "Select EP HTML File", TFTCYAN, NULL, KEYBOARD_ICO, [this](){
|
||||||
this->changeMenu(&htmlMenu);
|
this->changeMenu(&htmlMenu);
|
||||||
#if (defined(HAS_BUTTONS) && defined(HAS_SD))
|
#if (defined(HAS_BUTTONS) && defined(HAS_SD))
|
||||||
#if !(defined(MARAUDER_V6) || defined(MARAUDER_V6_1))
|
#if !(defined(MARAUDER_V6) || defined(MARAUDER_V6_1))
|
||||||
@@ -1755,7 +1759,7 @@ void MenuFunctions::RunSetup()
|
|||||||
else
|
else
|
||||||
evil_portal_obj.selected_html_index = evil_portal_obj.html_files->size() - 1;
|
evil_portal_obj.selected_html_index = evil_portal_obj.html_files->size() - 1;
|
||||||
|
|
||||||
this->htmlMenu.list->set(0, MenuNode{evil_portal_obj.html_files->get(evil_portal_obj.selected_html_index), false, TFT_CYAN, 0, NULL, true, NULL});
|
this->htmlMenu.list->set(0, MenuNode{evil_portal_obj.html_files->get(evil_portal_obj.selected_html_index), false, TFTCYAN, 0, NULL, true, NULL});
|
||||||
this->buildButtons(&htmlMenu);
|
this->buildButtons(&htmlMenu);
|
||||||
this->displayCurrentMenu();
|
this->displayCurrentMenu();
|
||||||
}
|
}
|
||||||
@@ -1766,7 +1770,7 @@ void MenuFunctions::RunSetup()
|
|||||||
else
|
else
|
||||||
evil_portal_obj.selected_html_index = 0;
|
evil_portal_obj.selected_html_index = 0;
|
||||||
|
|
||||||
this->htmlMenu.list->set(0, MenuNode{evil_portal_obj.html_files->get(evil_portal_obj.selected_html_index), false, TFT_CYAN, 0, NULL, true, NULL});
|
this->htmlMenu.list->set(0, MenuNode{evil_portal_obj.html_files->get(evil_portal_obj.selected_html_index), false, TFTCYAN, 0, NULL, true, NULL});
|
||||||
this->buildButtons(&htmlMenu, 0, evil_portal_obj.html_files->get(evil_portal_obj.selected_html_index));
|
this->buildButtons(&htmlMenu, 0, evil_portal_obj.html_files->get(evil_portal_obj.selected_html_index));
|
||||||
this->displayCurrentMenu();
|
this->displayCurrentMenu();
|
||||||
}
|
}
|
||||||
@@ -1787,21 +1791,21 @@ void MenuFunctions::RunSetup()
|
|||||||
|
|
||||||
#if (!defined(HAS_ILI9341) && defined(HAS_BUTTONS))
|
#if (!defined(HAS_ILI9341) && defined(HAS_BUTTONS))
|
||||||
miniKbMenu.parentMenu = &wifiGeneralMenu;
|
miniKbMenu.parentMenu = &wifiGeneralMenu;
|
||||||
this->addNodes(&miniKbMenu, "a", TFT_CYAN, NULL, 0, [this]() {
|
this->addNodes(&miniKbMenu, "a", TFTCYAN, NULL, 0, [this]() {
|
||||||
this->changeMenu(miniKbMenu.parentMenu);
|
this->changeMenu(miniKbMenu.parentMenu);
|
||||||
});
|
});
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
htmlMenu.parentMenu = &wifiGeneralMenu;
|
htmlMenu.parentMenu = &wifiGeneralMenu;
|
||||||
this->addNodes(&htmlMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&htmlMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(htmlMenu.parentMenu);
|
this->changeMenu(htmlMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Select APs on Mini
|
// Select APs on Mini
|
||||||
this->addNodes(&wifiGeneralMenu, "Select APs", TFT_NAVY, NULL, KEYBOARD_ICO, [this](){
|
this->addNodes(&wifiGeneralMenu, "Select APs", TFTNAVY, NULL, KEYBOARD_ICO, [this](){
|
||||||
// Add the back button
|
// Add the back button
|
||||||
wifiAPMenu.list->clear();
|
wifiAPMenu.list->clear();
|
||||||
this->addNodes(&wifiAPMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&wifiAPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(wifiAPMenu.parentMenu);
|
this->changeMenu(wifiAPMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1815,7 +1819,7 @@ void MenuFunctions::RunSetup()
|
|||||||
// Populate the menu with buttons
|
// Populate the menu with buttons
|
||||||
for (int i = 0; i < menu_limit - 1; i++) {
|
for (int i = 0; i < menu_limit - 1; i++) {
|
||||||
// This is the menu node
|
// This is the menu node
|
||||||
this->addNodes(&wifiAPMenu, access_points->get(i).essid, TFT_CYAN, NULL, 255, [this, i](){
|
this->addNodes(&wifiAPMenu, access_points->get(i).essid, TFTCYAN, NULL, 255, [this, i](){
|
||||||
AccessPoint new_ap = access_points->get(i);
|
AccessPoint new_ap = access_points->get(i);
|
||||||
new_ap.selected = !access_points->get(i).selected;
|
new_ap.selected = !access_points->get(i).selected;
|
||||||
|
|
||||||
@@ -1837,7 +1841,7 @@ void MenuFunctions::RunSetup()
|
|||||||
});
|
});
|
||||||
|
|
||||||
wifiAPMenu.parentMenu = &wifiGeneralMenu;
|
wifiAPMenu.parentMenu = &wifiGeneralMenu;
|
||||||
this->addNodes(&wifiAPMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&wifiAPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(wifiAPMenu.parentMenu);
|
this->changeMenu(wifiAPMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1890,9 +1894,9 @@ void MenuFunctions::RunSetup()
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// Select Stations on Mini v2
|
// Select Stations on Mini v2
|
||||||
this->addNodes(&wifiGeneralMenu, "Select Stations", TFT_CYAN, NULL, KEYBOARD_ICO, [this](){
|
this->addNodes(&wifiGeneralMenu, "Select Stations", TFTCYAN, NULL, KEYBOARD_ICO, [this](){
|
||||||
wifiAPMenu.list->clear();
|
wifiAPMenu.list->clear();
|
||||||
this->addNodes(&wifiAPMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&wifiAPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(wifiAPMenu.parentMenu);
|
this->changeMenu(wifiAPMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1905,12 +1909,12 @@ void MenuFunctions::RunSetup()
|
|||||||
|
|
||||||
for (int i = 0; i < menu_limit - 1; i++) {
|
for (int i = 0; i < menu_limit - 1; i++) {
|
||||||
wifiStationMenu.list->clear();
|
wifiStationMenu.list->clear();
|
||||||
this->addNodes(&wifiAPMenu, access_points->get(i).essid, TFT_CYAN, NULL, 255, [this, i](){
|
this->addNodes(&wifiAPMenu, access_points->get(i).essid, TFTCYAN, NULL, 255, [this, i](){
|
||||||
|
|
||||||
wifiStationMenu.list->clear();
|
wifiStationMenu.list->clear();
|
||||||
|
|
||||||
// Add back button to the APs
|
// Add back button to the APs
|
||||||
this->addNodes(&wifiStationMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&wifiStationMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(wifiStationMenu.parentMenu);
|
this->changeMenu(wifiStationMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1918,7 +1922,7 @@ void MenuFunctions::RunSetup()
|
|||||||
for (int x = 0; x < access_points->get(i).stations->size(); x++) {
|
for (int x = 0; x < access_points->get(i).stations->size(); x++) {
|
||||||
int cur_ap_sta = access_points->get(i).stations->get(x);
|
int cur_ap_sta = access_points->get(i).stations->get(x);
|
||||||
|
|
||||||
this->addNodes(&wifiStationMenu, macToString(stations->get(cur_ap_sta)), TFT_CYAN, NULL, 255, [this, i, cur_ap_sta, x](){
|
this->addNodes(&wifiStationMenu, macToString(stations->get(cur_ap_sta)), TFTCYAN, NULL, 255, [this, i, cur_ap_sta, x](){
|
||||||
Station new_sta = stations->get(cur_ap_sta);
|
Station new_sta = stations->get(cur_ap_sta);
|
||||||
new_sta.selected = !stations->get(cur_ap_sta).selected;
|
new_sta.selected = !stations->get(cur_ap_sta).selected;
|
||||||
|
|
||||||
@@ -1947,74 +1951,74 @@ void MenuFunctions::RunSetup()
|
|||||||
});
|
});
|
||||||
|
|
||||||
wifiStationMenu.parentMenu = &wifiAPMenu;
|
wifiStationMenu.parentMenu = &wifiAPMenu;
|
||||||
this->addNodes(&wifiStationMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&wifiStationMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(wifiStationMenu.parentMenu);
|
this->changeMenu(wifiStationMenu.parentMenu);
|
||||||
});
|
});
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Build generate ssids menu
|
// Build generate ssids menu
|
||||||
generateSSIDsMenu.parentMenu = &wifiGeneralMenu;
|
generateSSIDsMenu.parentMenu = &wifiGeneralMenu;
|
||||||
this->addNodes(&generateSSIDsMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&generateSSIDsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(generateSSIDsMenu.parentMenu);
|
this->changeMenu(generateSSIDsMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build clear ssids menu
|
// Build clear ssids menu
|
||||||
clearSSIDsMenu.parentMenu = &wifiGeneralMenu;
|
clearSSIDsMenu.parentMenu = &wifiGeneralMenu;
|
||||||
this->addNodes(&clearSSIDsMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&clearSSIDsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(clearSSIDsMenu.parentMenu);
|
this->changeMenu(clearSSIDsMenu.parentMenu);
|
||||||
});
|
});
|
||||||
clearAPsMenu.parentMenu = &wifiGeneralMenu;
|
clearAPsMenu.parentMenu = &wifiGeneralMenu;
|
||||||
this->addNodes(&clearAPsMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&clearAPsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(clearAPsMenu.parentMenu);
|
this->changeMenu(clearAPsMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build Bluetooth Menu
|
// Build Bluetooth Menu
|
||||||
bluetoothMenu.parentMenu = &mainMenu; // Second Menu is third menu parent
|
bluetoothMenu.parentMenu = &mainMenu; // Second Menu is third menu parent
|
||||||
this->addNodes(&bluetoothMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&bluetoothMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(bluetoothMenu.parentMenu);
|
this->changeMenu(bluetoothMenu.parentMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&bluetoothMenu, text_table1[31], TFT_YELLOW, NULL, SNIFFERS, [this]() {
|
this->addNodes(&bluetoothMenu, text_table1[31], TFTYELLOW, NULL, SNIFFERS, [this]() {
|
||||||
this->changeMenu(&bluetoothSnifferMenu);
|
this->changeMenu(&bluetoothSnifferMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&bluetoothMenu, "Bluetooth Attacks", TFT_RED, NULL, ATTACKS, [this]() {
|
this->addNodes(&bluetoothMenu, "Bluetooth Attacks", TFTRED, NULL, ATTACKS, [this]() {
|
||||||
this->changeMenu(&bluetoothAttackMenu);
|
this->changeMenu(&bluetoothAttackMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build bluetooth sniffer Menu
|
// Build bluetooth sniffer Menu
|
||||||
bluetoothSnifferMenu.parentMenu = &bluetoothMenu; // Second Menu is third menu parent
|
bluetoothSnifferMenu.parentMenu = &bluetoothMenu; // Second Menu is third menu parent
|
||||||
this->addNodes(&bluetoothSnifferMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&bluetoothSnifferMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(bluetoothSnifferMenu.parentMenu);
|
this->changeMenu(bluetoothSnifferMenu.parentMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&bluetoothSnifferMenu, text_table1[34], TFT_GREEN, NULL, BLUETOOTH_SNIFF, [this]() {
|
this->addNodes(&bluetoothSnifferMenu, text_table1[34], TFTGREEN, NULL, BLUETOOTH_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(BT_SCAN_ALL, TFT_GREEN);
|
wifi_scan_obj.StartScan(BT_SCAN_ALL, TFT_GREEN);
|
||||||
});
|
});
|
||||||
this->addNodes(&bluetoothSnifferMenu, "Flipper Sniff", TFT_ORANGE, NULL, FLIPPER, [this]() {
|
this->addNodes(&bluetoothSnifferMenu, "Flipper Sniff", TFTORANGE, NULL, FLIPPER, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(BT_SCAN_FLIPPER, TFT_ORANGE);
|
wifi_scan_obj.StartScan(BT_SCAN_FLIPPER, TFT_ORANGE);
|
||||||
});
|
});
|
||||||
this->addNodes(&bluetoothSnifferMenu, "Airtag Sniff", TFT_WHITE, NULL, BLUETOOTH_SNIFF, [this]() {
|
this->addNodes(&bluetoothSnifferMenu, "Airtag Sniff", TFTWHITE, NULL, BLUETOOTH_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(BT_SCAN_AIRTAG, TFT_WHITE);
|
wifi_scan_obj.StartScan(BT_SCAN_AIRTAG, TFT_WHITE);
|
||||||
});
|
});
|
||||||
#ifdef HAS_GPS
|
#ifdef HAS_GPS
|
||||||
if (gps_obj.getGpsModuleStatus()) {
|
if (gps_obj.getGpsModuleStatus()) {
|
||||||
this->addNodes(&bluetoothSnifferMenu, "BT Wardrive", TFT_CYAN, NULL, BLUETOOTH_SNIFF, [this]() {
|
this->addNodes(&bluetoothSnifferMenu, "BT Wardrive", TFTCYAN, NULL, BLUETOOTH_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(BT_SCAN_WAR_DRIVE, TFT_GREEN);
|
wifi_scan_obj.StartScan(BT_SCAN_WAR_DRIVE, TFT_GREEN);
|
||||||
});
|
});
|
||||||
this->addNodes(&bluetoothSnifferMenu, "BT Wardrive Continuous", TFT_RED, NULL, REBOOT, [this]() {
|
this->addNodes(&bluetoothSnifferMenu, "BT Wardrive Continuous", TFTRED, NULL, REBOOT, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(BT_SCAN_WAR_DRIVE_CONT, TFT_GREEN);
|
wifi_scan_obj.StartScan(BT_SCAN_WAR_DRIVE_CONT, TFT_GREEN);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
this->addNodes(&bluetoothSnifferMenu, text_table1[35], TFT_MAGENTA, NULL, CC_SKIMMERS, [this]() {
|
this->addNodes(&bluetoothSnifferMenu, text_table1[35], TFTMAGENTA, NULL, CC_SKIMMERS, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(BT_SCAN_SKIMMERS, TFT_MAGENTA);
|
wifi_scan_obj.StartScan(BT_SCAN_SKIMMERS, TFT_MAGENTA);
|
||||||
@@ -2022,42 +2026,42 @@ void MenuFunctions::RunSetup()
|
|||||||
|
|
||||||
// Bluetooth Attack menu
|
// Bluetooth Attack menu
|
||||||
bluetoothAttackMenu.parentMenu = &bluetoothMenu; // Second Menu is third menu parent
|
bluetoothAttackMenu.parentMenu = &bluetoothMenu; // Second Menu is third menu parent
|
||||||
this->addNodes(&bluetoothAttackMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&bluetoothAttackMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(bluetoothAttackMenu.parentMenu);
|
this->changeMenu(bluetoothAttackMenu.parentMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&bluetoothAttackMenu, "Sour Apple", TFT_GREEN, NULL, DEAUTH_SNIFF, [this]() {
|
this->addNodes(&bluetoothAttackMenu, "Sour Apple", TFTGREEN, NULL, DEAUTH_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(BT_ATTACK_SOUR_APPLE, TFT_GREEN);
|
wifi_scan_obj.StartScan(BT_ATTACK_SOUR_APPLE, TFT_GREEN);
|
||||||
});
|
});
|
||||||
this->addNodes(&bluetoothAttackMenu, "Swiftpair Spam", TFT_CYAN, NULL, KEYBOARD_ICO, [this]() {
|
this->addNodes(&bluetoothAttackMenu, "Swiftpair Spam", TFTCYAN, NULL, KEYBOARD_ICO, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(BT_ATTACK_SWIFTPAIR_SPAM, TFT_CYAN);
|
wifi_scan_obj.StartScan(BT_ATTACK_SWIFTPAIR_SPAM, TFT_CYAN);
|
||||||
});
|
});
|
||||||
this->addNodes(&bluetoothAttackMenu, "Samsung BLE Spam", TFT_RED, NULL, GENERAL_APPS, [this]() {
|
this->addNodes(&bluetoothAttackMenu, "Samsung BLE Spam", TFTRED, NULL, GENERAL_APPS, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(BT_ATTACK_SAMSUNG_SPAM, TFT_RED);
|
wifi_scan_obj.StartScan(BT_ATTACK_SAMSUNG_SPAM, TFT_RED);
|
||||||
});
|
});
|
||||||
this->addNodes(&bluetoothAttackMenu, "Google BLE Spam", TFT_PURPLE, NULL, LANGUAGE, [this]() {
|
this->addNodes(&bluetoothAttackMenu, "Google BLE Spam", TFTPURPLE, NULL, LANGUAGE, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(BT_ATTACK_GOOGLE_SPAM, TFT_PURPLE);
|
wifi_scan_obj.StartScan(BT_ATTACK_GOOGLE_SPAM, TFT_PURPLE);
|
||||||
});
|
});
|
||||||
this->addNodes(&bluetoothAttackMenu, "Flipper BLE Spam", TFT_ORANGE, NULL, FLIPPER, [this]() {
|
this->addNodes(&bluetoothAttackMenu, "Flipper BLE Spam", TFTORANGE, NULL, FLIPPER, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(BT_ATTACK_FLIPPER_SPAM, TFT_ORANGE);
|
wifi_scan_obj.StartScan(BT_ATTACK_FLIPPER_SPAM, TFT_ORANGE);
|
||||||
});
|
});
|
||||||
this->addNodes(&bluetoothAttackMenu, "BLE Spam All", TFT_MAGENTA, NULL, DEAUTH_SNIFF, [this]() {
|
this->addNodes(&bluetoothAttackMenu, "BLE Spam All", TFTMAGENTA, NULL, DEAUTH_SNIFF, [this]() {
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
this->drawStatusBar();
|
this->drawStatusBar();
|
||||||
wifi_scan_obj.StartScan(BT_ATTACK_SPAM_ALL, TFT_MAGENTA);
|
wifi_scan_obj.StartScan(BT_ATTACK_SPAM_ALL, TFT_MAGENTA);
|
||||||
});
|
});
|
||||||
|
|
||||||
#ifdef HAS_ILI9341
|
#ifdef HAS_ILI9341
|
||||||
this->addNodes(&bluetoothAttackMenu, "Spoof Airtag", TFT_WHITE, NULL, ATTACKS, [this](){
|
this->addNodes(&bluetoothAttackMenu, "Spoof Airtag", TFTWHITE, NULL, ATTACKS, [this](){
|
||||||
display_obj.clearScreen();
|
display_obj.clearScreen();
|
||||||
wifi_scan_obj.currentScanMode = LV_ADD_SSID;
|
wifi_scan_obj.currentScanMode = LV_ADD_SSID;
|
||||||
wifi_scan_obj.StartScan(LV_ADD_SSID, TFT_WHITE);
|
wifi_scan_obj.StartScan(LV_ADD_SSID, TFT_WHITE);
|
||||||
@@ -2068,7 +2072,7 @@ void MenuFunctions::RunSetup()
|
|||||||
#ifndef HAS_ILI9341
|
#ifndef HAS_ILI9341
|
||||||
#ifdef HAS_BT
|
#ifdef HAS_BT
|
||||||
// Select Airtag on Mini
|
// Select Airtag on Mini
|
||||||
this->addNodes(&bluetoothAttackMenu, "Spoof Airtag", TFT_WHITE, NULL, ATTACKS, [this](){
|
this->addNodes(&bluetoothAttackMenu, "Spoof Airtag", TFTWHITE, NULL, ATTACKS, [this](){
|
||||||
// Clear nodes and add back button
|
// Clear nodes and add back button
|
||||||
airtagMenu.list->clear();
|
airtagMenu.list->clear();
|
||||||
this->addNodes(&airtagMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&airtagMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
||||||
@@ -2085,7 +2089,7 @@ void MenuFunctions::RunSetup()
|
|||||||
|
|
||||||
// Create the menu nodes for all of the list items
|
// Create the menu nodes for all of the list items
|
||||||
for (int i = 0; i < menu_limit; i++) {
|
for (int i = 0; i < menu_limit; i++) {
|
||||||
this->addNodes(&airtagMenu, airtags->get(i).mac, TFT_WHITE, NULL, BLUETOOTH, [this, i](){
|
this->addNodes(&airtagMenu, airtags->get(i).mac, TFTWHITE, NULL, BLUETOOTH, [this, i](){
|
||||||
AirTag new_at = airtags->get(i);
|
AirTag new_at = airtags->get(i);
|
||||||
new_at.selected = true;
|
new_at.selected = true;
|
||||||
|
|
||||||
@@ -2111,7 +2115,7 @@ void MenuFunctions::RunSetup()
|
|||||||
});
|
});
|
||||||
|
|
||||||
airtagMenu.parentMenu = &bluetoothAttackMenu;
|
airtagMenu.parentMenu = &bluetoothAttackMenu;
|
||||||
this->addNodes(&airtagMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&airtagMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(airtagMenu.parentMenu);
|
this->changeMenu(airtagMenu.parentMenu);
|
||||||
});
|
});
|
||||||
#endif
|
#endif
|
||||||
@@ -2120,35 +2124,35 @@ void MenuFunctions::RunSetup()
|
|||||||
|
|
||||||
// Device menu
|
// Device menu
|
||||||
deviceMenu.parentMenu = &mainMenu;
|
deviceMenu.parentMenu = &mainMenu;
|
||||||
this->addNodes(&deviceMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&deviceMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(deviceMenu.parentMenu);
|
this->changeMenu(deviceMenu.parentMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&deviceMenu, text_table1[15], TFT_ORANGE, NULL, UPDATE, [this]() {
|
this->addNodes(&deviceMenu, text_table1[15], TFTORANGE, NULL, UPDATE, [this]() {
|
||||||
wifi_scan_obj.currentScanMode = OTA_UPDATE;
|
wifi_scan_obj.currentScanMode = OTA_UPDATE;
|
||||||
this->changeMenu(&whichUpdateMenu);
|
this->changeMenu(&whichUpdateMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
this->addNodes(&deviceMenu, "Save/Load Files", TFT_CYAN, NULL, SD_UPDATE, [this]() {
|
this->addNodes(&deviceMenu, "Save/Load Files", TFTCYAN, NULL, SD_UPDATE, [this]() {
|
||||||
this->changeMenu(&saveFileMenu);
|
this->changeMenu(&saveFileMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
this->addNodes(&deviceMenu, text_table1[16], TFT_GREEN, NULL, LANGUAGE, [this]() {
|
this->addNodes(&deviceMenu, text_table1[16], TFTGREEN, NULL, LANGUAGE, [this]() {
|
||||||
|
|
||||||
wifi_scan_obj.currentScanMode = SHOW_INFO;
|
wifi_scan_obj.currentScanMode = SHOW_INFO;
|
||||||
this->changeMenu(&languageMenu);
|
this->changeMenu(&languageMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&deviceMenu, text_table1[17], TFT_WHITE, NULL, DEVICE_INFO, [this]() {
|
this->addNodes(&deviceMenu, text_table1[17], TFTWHITE, NULL, DEVICE_INFO, [this]() {
|
||||||
wifi_scan_obj.currentScanMode = SHOW_INFO;
|
wifi_scan_obj.currentScanMode = SHOW_INFO;
|
||||||
this->changeMenu(&infoMenu);
|
this->changeMenu(&infoMenu);
|
||||||
wifi_scan_obj.RunInfo();
|
wifi_scan_obj.RunInfo();
|
||||||
});
|
});
|
||||||
this->addNodes(&deviceMenu, text08, TFT_NAVY, NULL, KEYBOARD_ICO, [this]() {
|
this->addNodes(&deviceMenu, text08, TFTNAVY, NULL, KEYBOARD_ICO, [this]() {
|
||||||
this->changeMenu(&settingsMenu);
|
this->changeMenu(&settingsMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
#ifdef HAS_SD
|
#ifdef HAS_SD
|
||||||
if (sd_obj.supported) {
|
if (sd_obj.supported) {
|
||||||
this->addNodes(&deviceMenu, "Delete SD Files", TFT_CYAN, NULL, SD_UPDATE, [this]() {
|
this->addNodes(&deviceMenu, "Delete SD Files", TFTCYAN, NULL, SD_UPDATE, [this]() {
|
||||||
#ifndef HAS_ILI9341
|
#ifndef HAS_ILI9341
|
||||||
#ifdef HAS_BUTTONS
|
#ifdef HAS_BUTTONS
|
||||||
this->changeMenu(&sdDeleteMenu);
|
this->changeMenu(&sdDeleteMenu);
|
||||||
@@ -2174,7 +2178,7 @@ void MenuFunctions::RunSetup()
|
|||||||
|
|
||||||
int sd_file_index = 0;
|
int sd_file_index = 0;
|
||||||
|
|
||||||
this->sdDeleteMenu.list->set(0, MenuNode{sd_obj.sd_files->get(sd_file_index), false, TFT_CYAN, 0, NULL, true, NULL});
|
this->sdDeleteMenu.list->set(0, MenuNode{sd_obj.sd_files->get(sd_file_index), false, TFTCYAN, 0, NULL, true, NULL});
|
||||||
this->buildButtons(&sdDeleteMenu);
|
this->buildButtons(&sdDeleteMenu);
|
||||||
this->displayCurrentMenu();
|
this->displayCurrentMenu();
|
||||||
|
|
||||||
@@ -2187,7 +2191,7 @@ void MenuFunctions::RunSetup()
|
|||||||
else
|
else
|
||||||
sd_file_index = sd_obj.sd_files->size() - 1;
|
sd_file_index = sd_obj.sd_files->size() - 1;
|
||||||
|
|
||||||
this->sdDeleteMenu.list->set(0, MenuNode{sd_obj.sd_files->get(sd_file_index), false, TFT_CYAN, 0, NULL, true, NULL});
|
this->sdDeleteMenu.list->set(0, MenuNode{sd_obj.sd_files->get(sd_file_index), false, TFTCYAN, 0, NULL, true, NULL});
|
||||||
this->buildButtons(&sdDeleteMenu);
|
this->buildButtons(&sdDeleteMenu);
|
||||||
this->displayCurrentMenu();
|
this->displayCurrentMenu();
|
||||||
}
|
}
|
||||||
@@ -2198,7 +2202,7 @@ void MenuFunctions::RunSetup()
|
|||||||
else
|
else
|
||||||
sd_file_index = 0;
|
sd_file_index = 0;
|
||||||
|
|
||||||
this->sdDeleteMenu.list->set(0, MenuNode{sd_obj.sd_files->get(sd_file_index), false, TFT_CYAN, 0, NULL, true, NULL});
|
this->sdDeleteMenu.list->set(0, MenuNode{sd_obj.sd_files->get(sd_file_index), false, TFTCYAN, 0, NULL, true, NULL});
|
||||||
this->buildButtons(&sdDeleteMenu, 0, sd_obj.sd_files->get(sd_file_index));
|
this->buildButtons(&sdDeleteMenu, 0, sd_obj.sd_files->get(sd_file_index));
|
||||||
this->displayCurrentMenu();
|
this->displayCurrentMenu();
|
||||||
}
|
}
|
||||||
@@ -2230,7 +2234,7 @@ void MenuFunctions::RunSetup()
|
|||||||
#ifndef HAS_ILI9341
|
#ifndef HAS_ILI9341
|
||||||
#ifdef HAS_BUTTONS
|
#ifdef HAS_BUTTONS
|
||||||
sdDeleteMenu.parentMenu = &deviceMenu;
|
sdDeleteMenu.parentMenu = &deviceMenu;
|
||||||
this->addNodes(&sdDeleteMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&sdDeleteMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(sdDeleteMenu.parentMenu);
|
this->changeMenu(sdDeleteMenu.parentMenu);
|
||||||
});
|
});
|
||||||
#endif
|
#endif
|
||||||
@@ -2239,74 +2243,74 @@ void MenuFunctions::RunSetup()
|
|||||||
|
|
||||||
// Save Files Menu
|
// Save Files Menu
|
||||||
saveFileMenu.parentMenu = &deviceMenu;
|
saveFileMenu.parentMenu = &deviceMenu;
|
||||||
this->addNodes(&saveFileMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&saveFileMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(saveFileMenu.parentMenu);
|
this->changeMenu(saveFileMenu.parentMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&saveFileMenu, "Save SSIDs", TFT_CYAN, NULL, SD_UPDATE, [this]() {
|
this->addNodes(&saveFileMenu, "Save SSIDs", TFTCYAN, NULL, SD_UPDATE, [this]() {
|
||||||
this->changeMenu(&saveSSIDsMenu);
|
this->changeMenu(&saveSSIDsMenu);
|
||||||
wifi_scan_obj.RunSaveSSIDList(true);
|
wifi_scan_obj.RunSaveSSIDList(true);
|
||||||
});
|
});
|
||||||
this->addNodes(&saveFileMenu, "Load SSIDs", TFT_SKYBLUE, NULL, SD_UPDATE, [this]() {
|
this->addNodes(&saveFileMenu, "Load SSIDs", TFTSKYBLUE, NULL, SD_UPDATE, [this]() {
|
||||||
this->changeMenu(&loadSSIDsMenu);
|
this->changeMenu(&loadSSIDsMenu);
|
||||||
wifi_scan_obj.RunLoadSSIDList();
|
wifi_scan_obj.RunLoadSSIDList();
|
||||||
});
|
});
|
||||||
this->addNodes(&saveFileMenu, "Save APs", TFT_NAVY, NULL, SD_UPDATE, [this]() {
|
this->addNodes(&saveFileMenu, "Save APs", TFTNAVY, NULL, SD_UPDATE, [this]() {
|
||||||
this->changeMenu(&saveAPsMenu);
|
this->changeMenu(&saveAPsMenu);
|
||||||
wifi_scan_obj.RunSaveAPList();
|
wifi_scan_obj.RunSaveAPList();
|
||||||
});
|
});
|
||||||
this->addNodes(&saveFileMenu, "Load APs", TFT_BLUE, NULL, SD_UPDATE, [this]() {
|
this->addNodes(&saveFileMenu, "Load APs", TFTBLUE, NULL, SD_UPDATE, [this]() {
|
||||||
this->changeMenu(&loadAPsMenu);
|
this->changeMenu(&loadAPsMenu);
|
||||||
wifi_scan_obj.RunLoadAPList();
|
wifi_scan_obj.RunLoadAPList();
|
||||||
});
|
});
|
||||||
this->addNodes(&saveFileMenu, "Save Airtags", TFT_WHITE, NULL, SD_UPDATE, [this]() {
|
this->addNodes(&saveFileMenu, "Save Airtags", TFTWHITE, NULL, SD_UPDATE, [this]() {
|
||||||
this->changeMenu(&saveAPsMenu);
|
this->changeMenu(&saveAPsMenu);
|
||||||
wifi_scan_obj.RunSaveATList();
|
wifi_scan_obj.RunSaveATList();
|
||||||
});
|
});
|
||||||
this->addNodes(&saveFileMenu, "Load Airtags", TFT_WHITE, NULL, SD_UPDATE, [this]() {
|
this->addNodes(&saveFileMenu, "Load Airtags", TFTWHITE, NULL, SD_UPDATE, [this]() {
|
||||||
this->changeMenu(&loadAPsMenu);
|
this->changeMenu(&loadAPsMenu);
|
||||||
wifi_scan_obj.RunLoadATList();
|
wifi_scan_obj.RunLoadATList();
|
||||||
});
|
});
|
||||||
|
|
||||||
saveSSIDsMenu.parentMenu = &saveFileMenu;
|
saveSSIDsMenu.parentMenu = &saveFileMenu;
|
||||||
this->addNodes(&saveSSIDsMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&saveSSIDsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(saveSSIDsMenu.parentMenu);
|
this->changeMenu(saveSSIDsMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
loadSSIDsMenu.parentMenu = &saveFileMenu;
|
loadSSIDsMenu.parentMenu = &saveFileMenu;
|
||||||
this->addNodes(&loadSSIDsMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&loadSSIDsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(loadSSIDsMenu.parentMenu);
|
this->changeMenu(loadSSIDsMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
saveAPsMenu.parentMenu = &saveFileMenu;
|
saveAPsMenu.parentMenu = &saveFileMenu;
|
||||||
this->addNodes(&saveAPsMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&saveAPsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(saveAPsMenu.parentMenu);
|
this->changeMenu(saveAPsMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
loadAPsMenu.parentMenu = &saveFileMenu;
|
loadAPsMenu.parentMenu = &saveFileMenu;
|
||||||
this->addNodes(&loadAPsMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&loadAPsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(loadAPsMenu.parentMenu);
|
this->changeMenu(loadAPsMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
saveATsMenu.parentMenu = &saveFileMenu;
|
saveATsMenu.parentMenu = &saveFileMenu;
|
||||||
this->addNodes(&saveATsMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&saveATsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(saveATsMenu.parentMenu);
|
this->changeMenu(saveATsMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
loadATsMenu.parentMenu = &saveFileMenu;
|
loadATsMenu.parentMenu = &saveFileMenu;
|
||||||
this->addNodes(&loadATsMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&loadATsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(loadATsMenu.parentMenu);
|
this->changeMenu(loadATsMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
// GPS Menu
|
// GPS Menu
|
||||||
#ifdef HAS_GPS
|
#ifdef HAS_GPS
|
||||||
if (gps_obj.getGpsModuleStatus()) {
|
if (gps_obj.getGpsModuleStatus()) {
|
||||||
this->addNodes(&deviceMenu, "GPS Data", TFT_RED, NULL, GPS_MENU, [this]() {
|
this->addNodes(&deviceMenu, "GPS Data", TFTRED, NULL, GPS_MENU, [this]() {
|
||||||
wifi_scan_obj.currentScanMode = WIFI_SCAN_GPS_DATA;
|
wifi_scan_obj.currentScanMode = WIFI_SCAN_GPS_DATA;
|
||||||
this->changeMenu(&gpsInfoMenu);
|
this->changeMenu(&gpsInfoMenu);
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_GPS_DATA, TFT_CYAN);
|
wifi_scan_obj.StartScan(WIFI_SCAN_GPS_DATA, TFT_CYAN);
|
||||||
});
|
});
|
||||||
|
|
||||||
this->addNodes(&deviceMenu, "NMEA Stream", TFT_ORANGE, NULL, GPS_MENU, [this]() {
|
this->addNodes(&deviceMenu, "NMEA Stream", TFTORANGE, NULL, GPS_MENU, [this]() {
|
||||||
wifi_scan_obj.currentScanMode = WIFI_SCAN_GPS_NMEA;
|
wifi_scan_obj.currentScanMode = WIFI_SCAN_GPS_NMEA;
|
||||||
this->changeMenu(&gpsInfoMenu);
|
this->changeMenu(&gpsInfoMenu);
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_GPS_NMEA, TFT_ORANGE);
|
wifi_scan_obj.StartScan(WIFI_SCAN_GPS_NMEA, TFT_ORANGE);
|
||||||
@@ -2314,7 +2318,7 @@ void MenuFunctions::RunSetup()
|
|||||||
|
|
||||||
// GPS Info Menu
|
// GPS Info Menu
|
||||||
gpsInfoMenu.parentMenu = &deviceMenu;
|
gpsInfoMenu.parentMenu = &deviceMenu;
|
||||||
this->addNodes(&gpsInfoMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&gpsInfoMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
|
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
|
||||||
wifi_scan_obj.StartScan(WIFI_SCAN_OFF);
|
wifi_scan_obj.StartScan(WIFI_SCAN_OFF);
|
||||||
this->changeMenu(gpsInfoMenu.parentMenu);
|
this->changeMenu(gpsInfoMenu.parentMenu);
|
||||||
@@ -2325,12 +2329,12 @@ void MenuFunctions::RunSetup()
|
|||||||
// Settings menu
|
// Settings menu
|
||||||
// Device menu
|
// Device menu
|
||||||
settingsMenu.parentMenu = &deviceMenu;
|
settingsMenu.parentMenu = &deviceMenu;
|
||||||
this->addNodes(&settingsMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&settingsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
changeMenu(settingsMenu.parentMenu);
|
changeMenu(settingsMenu.parentMenu);
|
||||||
});
|
});
|
||||||
for (int i = 0; i < settings_obj.getNumberSettings(); i++) {
|
for (int i = 0; i < settings_obj.getNumberSettings(); i++) {
|
||||||
if (this->callSetting(settings_obj.setting_index_to_name(i)) == "bool")
|
if (this->callSetting(settings_obj.setting_index_to_name(i)) == "bool")
|
||||||
this->addNodes(&settingsMenu, settings_obj.setting_index_to_name(i), TFT_LIGHTGREY, NULL, 0, [this, i]() {
|
this->addNodes(&settingsMenu, settings_obj.setting_index_to_name(i), TFTLIGHTGREY, NULL, 0, [this, i]() {
|
||||||
settings_obj.toggleSetting(settings_obj.setting_index_to_name(i));
|
settings_obj.toggleSetting(settings_obj.setting_index_to_name(i));
|
||||||
this->changeMenu(&specSettingMenu);
|
this->changeMenu(&specSettingMenu);
|
||||||
this->displaySetting(settings_obj.setting_index_to_name(i), &settingsMenu, i + 1);
|
this->displaySetting(settings_obj.setting_index_to_name(i), &settingsMenu, i + 1);
|
||||||
@@ -2339,28 +2343,28 @@ void MenuFunctions::RunSetup()
|
|||||||
|
|
||||||
// Specific setting menu
|
// Specific setting menu
|
||||||
specSettingMenu.parentMenu = &settingsMenu;
|
specSettingMenu.parentMenu = &settingsMenu;
|
||||||
addNodes(&specSettingMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
addNodes(&specSettingMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(specSettingMenu.parentMenu);
|
this->changeMenu(specSettingMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Select update
|
// Select update
|
||||||
whichUpdateMenu.parentMenu = &deviceMenu;
|
whichUpdateMenu.parentMenu = &deviceMenu;
|
||||||
this->addNodes(&whichUpdateMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&whichUpdateMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
|
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
|
||||||
this->changeMenu(whichUpdateMenu.parentMenu);
|
this->changeMenu(whichUpdateMenu.parentMenu);
|
||||||
});
|
});
|
||||||
#ifdef HAS_SD
|
#ifdef HAS_SD
|
||||||
if (sd_obj.supported) addNodes(&whichUpdateMenu, text_table1[40], TFT_MAGENTA, NULL, SD_UPDATE, [this]() {
|
if (sd_obj.supported) addNodes(&whichUpdateMenu, text_table1[40], TFTMAGENTA, NULL, SD_UPDATE, [this]() {
|
||||||
wifi_scan_obj.currentScanMode = OTA_UPDATE;
|
wifi_scan_obj.currentScanMode = OTA_UPDATE;
|
||||||
this->changeMenu(&confirmMenu);
|
this->changeMenu(&confirmMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Confirm SD update menu
|
// Confirm SD update menu
|
||||||
confirmMenu.parentMenu = &whichUpdateMenu;
|
confirmMenu.parentMenu = &whichUpdateMenu;
|
||||||
this->addNodes(&confirmMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&confirmMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
this->changeMenu(confirmMenu.parentMenu);
|
this->changeMenu(confirmMenu.parentMenu);
|
||||||
});
|
});
|
||||||
this->addNodes(&confirmMenu, text14, TFT_ORANGE, NULL, UPDATE, [this]() {
|
this->addNodes(&confirmMenu, text14, TFTORANGE, NULL, UPDATE, [this]() {
|
||||||
wifi_scan_obj.currentScanMode = OTA_UPDATE;
|
wifi_scan_obj.currentScanMode = OTA_UPDATE;
|
||||||
this->changeMenu(&failedUpdateMenu);
|
this->changeMenu(&failedUpdateMenu);
|
||||||
sd_obj.runUpdate();
|
sd_obj.runUpdate();
|
||||||
@@ -2372,20 +2376,20 @@ void MenuFunctions::RunSetup()
|
|||||||
|
|
||||||
// Failed update menu
|
// Failed update menu
|
||||||
failedUpdateMenu.parentMenu = &whichUpdateMenu;
|
failedUpdateMenu.parentMenu = &whichUpdateMenu;
|
||||||
this->addNodes(&failedUpdateMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&failedUpdateMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
|
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
|
||||||
this->changeMenu(failedUpdateMenu.parentMenu);
|
this->changeMenu(failedUpdateMenu.parentMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Device info menu
|
// Device info menu
|
||||||
infoMenu.parentMenu = &deviceMenu;
|
infoMenu.parentMenu = &deviceMenu;
|
||||||
this->addNodes(&infoMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&infoMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
|
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
|
||||||
this->changeMenu(infoMenu.parentMenu);
|
this->changeMenu(infoMenu.parentMenu);
|
||||||
});
|
});
|
||||||
//language info menu
|
//language info menu
|
||||||
languageMenu.parentMenu = &deviceMenu;
|
languageMenu.parentMenu = &deviceMenu;
|
||||||
this->addNodes(&languageMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
this->addNodes(&languageMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||||
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
|
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
|
||||||
this->changeMenu(infoMenu.parentMenu);
|
this->changeMenu(infoMenu.parentMenu);
|
||||||
});
|
});
|
||||||
@@ -2428,7 +2432,7 @@ void MenuFunctions::RunSetup()
|
|||||||
else
|
else
|
||||||
this->mini_kb_index = str_len - 2;
|
this->mini_kb_index = str_len - 2;
|
||||||
|
|
||||||
targetMenu->list->set(0, MenuNode{String(char_array[this->mini_kb_index]).c_str(), false, TFT_CYAN, 0, NULL, true, NULL});
|
targetMenu->list->set(0, MenuNode{String(char_array[this->mini_kb_index]).c_str(), false, TFTCYAN, 0, NULL, true, NULL});
|
||||||
this->buildButtons(targetMenu);
|
this->buildButtons(targetMenu);
|
||||||
while (!l_btn.justReleased())
|
while (!l_btn.justReleased())
|
||||||
delay(1);
|
delay(1);
|
||||||
@@ -2444,7 +2448,7 @@ void MenuFunctions::RunSetup()
|
|||||||
else
|
else
|
||||||
this->mini_kb_index = 0;
|
this->mini_kb_index = 0;
|
||||||
|
|
||||||
targetMenu->list->set(0, MenuNode{String(char_array[this->mini_kb_index]).c_str(), false, TFT_CYAN, 0, NULL, true, NULL});
|
targetMenu->list->set(0, MenuNode{String(char_array[this->mini_kb_index]).c_str(), false, TFTCYAN, 0, NULL, true, NULL});
|
||||||
this->buildButtons(targetMenu, 0, String(char_array[this->mini_kb_index]).c_str());
|
this->buildButtons(targetMenu, 0, String(char_array[this->mini_kb_index]).c_str());
|
||||||
while (!r_btn.justReleased())
|
while (!r_btn.justReleased())
|
||||||
delay(1);
|
delay(1);
|
||||||
@@ -2494,7 +2498,7 @@ void MenuFunctions::RunSetup()
|
|||||||
else
|
else
|
||||||
this->mini_kb_index = 0;
|
this->mini_kb_index = 0;
|
||||||
|
|
||||||
targetMenu->list->set(0, MenuNode{String(char_array[this->mini_kb_index]).c_str(), false, TFT_CYAN, 0, NULL, true, NULL});
|
targetMenu->list->set(0, MenuNode{String(char_array[this->mini_kb_index]).c_str(), false, TFTCYAN, 0, NULL, true, NULL});
|
||||||
this->buildButtons(targetMenu, 0, String(char_array[this->mini_kb_index]).c_str());
|
this->buildButtons(targetMenu, 0, String(char_array[this->mini_kb_index]).c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2521,7 +2525,7 @@ void MenuFunctions::RunSetup()
|
|||||||
else
|
else
|
||||||
this->mini_kb_index = str_len - 2;
|
this->mini_kb_index = str_len - 2;
|
||||||
|
|
||||||
targetMenu->list->set(0, MenuNode{String(char_array[this->mini_kb_index]).c_str(), false, TFT_CYAN, 0, NULL, true, NULL});
|
targetMenu->list->set(0, MenuNode{String(char_array[this->mini_kb_index]).c_str(), false, TFTCYAN, 0, NULL, true, NULL});
|
||||||
this->buildButtons(targetMenu);
|
this->buildButtons(targetMenu);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2606,7 +2610,14 @@ void MenuFunctions::showMenuList(Menu * menu, int layer)
|
|||||||
|
|
||||||
|
|
||||||
// Function to add MenuNodes to a menu
|
// Function to add MenuNodes to a menu
|
||||||
void MenuFunctions::addNodes(Menu * menu, String name, uint16_t color, Menu * child, int place, std::function<void()> callable, bool selected, String command)
|
/*void MenuFunctions::addNodes(Menu * menu, String name, uint16_t color, Menu * child, int place, std::function<void()> callable, bool selected, String command)
|
||||||
|
{
|
||||||
|
TFT_eSPI_Button new_button;
|
||||||
|
menu->list->add(MenuNode{name, false, color, place, &new_button, selected, callable});
|
||||||
|
//menu->list->add(MenuNode{name, false, color, place, selected, callable});
|
||||||
|
}*/
|
||||||
|
|
||||||
|
void MenuFunctions::addNodes(Menu * menu, String name, uint8_t color, Menu * child, int place, std::function<void()> callable, bool selected, String command)
|
||||||
{
|
{
|
||||||
TFT_eSPI_Button new_button;
|
TFT_eSPI_Button new_button;
|
||||||
menu->list->add(MenuNode{name, false, color, place, &new_button, selected, callable});
|
menu->list->add(MenuNode{name, false, color, place, &new_button, selected, callable});
|
||||||
@@ -2694,6 +2705,27 @@ void MenuFunctions::renderGraphUI() {
|
|||||||
display_obj.tft.println("Channel Marker");
|
display_obj.tft.println("Channel Marker");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint16_t MenuFunctions::getColor(uint16_t color) {
|
||||||
|
if (color == TFTWHITE) return TFT_WHITE;
|
||||||
|
else if (color == TFTCYAN) return TFT_CYAN;
|
||||||
|
else if (color == TFTBLUE) return TFT_BLUE;
|
||||||
|
else if (color == TFTRED) return TFT_RED;
|
||||||
|
else if (color == TFTGREEN) return TFT_GREEN;
|
||||||
|
else if (color == TFTGREY) return TFT_LIGHTGREY;
|
||||||
|
else if (color == TFTGRAY) return TFT_LIGHTGREY;
|
||||||
|
else if (color == TFTMAGENTA) return TFT_MAGENTA;
|
||||||
|
else if (color == TFTVIOLET) return TFT_VIOLET;
|
||||||
|
else if (color == TFTORANGE) return TFT_ORANGE;
|
||||||
|
else if (color == TFTYELLOW) return TFT_YELLOW;
|
||||||
|
else if (color == TFTLIGHTGREY) return TFT_LIGHTGREY;
|
||||||
|
else if (color == TFTPURPLE) return TFT_PURPLE;
|
||||||
|
else if (color == TFTNAVY) return TFT_NAVY;
|
||||||
|
else if (color == TFTSILVER) return TFT_SILVER;
|
||||||
|
else if (color == TFTDARKGREY) return TFT_DARKGREY;
|
||||||
|
else if (color == TFTSKYBLUE) return TFT_SKYBLUE;
|
||||||
|
else return color;
|
||||||
|
}
|
||||||
|
|
||||||
void MenuFunctions::buildButtons(Menu * menu, int starting_index, String button_name)
|
void MenuFunctions::buildButtons(Menu * menu, int starting_index, String button_name)
|
||||||
{
|
{
|
||||||
if (menu->list != NULL)
|
if (menu->list != NULL)
|
||||||
@@ -2701,6 +2733,9 @@ void MenuFunctions::buildButtons(Menu * menu, int starting_index, String button_
|
|||||||
this->menu_start_index = starting_index;
|
this->menu_start_index = starting_index;
|
||||||
for (uint8_t i = 0; i < menu->list->size(); i++)
|
for (uint8_t i = 0; i < menu->list->size(); i++)
|
||||||
{
|
{
|
||||||
|
// Get color
|
||||||
|
uint16_t color = this->getColor(menu->list->get(starting_index + i).color);
|
||||||
|
|
||||||
TFT_eSPI_Button new_button;
|
TFT_eSPI_Button new_button;
|
||||||
char buf[menu->list->get(starting_index + i).name.length() + 1] = {};
|
char buf[menu->list->get(starting_index + i).name.length() + 1] = {};
|
||||||
if (button_name != "")
|
if (button_name != "")
|
||||||
@@ -2714,7 +2749,7 @@ void MenuFunctions::buildButtons(Menu * menu, int starting_index, String button_
|
|||||||
KEY_H,
|
KEY_H,
|
||||||
TFT_BLACK, // Outline
|
TFT_BLACK, // Outline
|
||||||
TFT_BLACK, // Fill
|
TFT_BLACK, // Fill
|
||||||
menu->list->get(starting_index + i).color, // Text
|
color, // Text
|
||||||
buf,
|
buf,
|
||||||
KEY_TEXTSIZE);
|
KEY_TEXTSIZE);
|
||||||
|
|
||||||
@@ -2743,6 +2778,7 @@ void MenuFunctions::displayCurrentMenu(uint8_t start_index)
|
|||||||
#endif
|
#endif
|
||||||
for (uint8_t i = start_index; i < current_menu->list->size(); i++)
|
for (uint8_t i = start_index; i < current_menu->list->size(); i++)
|
||||||
{
|
{
|
||||||
|
uint16_t color = this->getColor(current_menu->list->get(i).color);
|
||||||
#ifdef HAS_FULL_SCREEN
|
#ifdef HAS_FULL_SCREEN
|
||||||
#ifndef HAS_ILI9341
|
#ifndef HAS_ILI9341
|
||||||
if ((current_menu->list->get(i).selected) || (current_menu->selected == i)) {
|
if ((current_menu->list->get(i).selected) || (current_menu->selected == i)) {
|
||||||
@@ -2762,7 +2798,7 @@ void MenuFunctions::displayCurrentMenu(uint8_t start_index)
|
|||||||
ICON_W,
|
ICON_W,
|
||||||
ICON_H,
|
ICON_H,
|
||||||
TFT_BLACK,
|
TFT_BLACK,
|
||||||
current_menu->list->get(i).color);
|
color);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ struct Menu;
|
|||||||
|
|
||||||
// Individual Nodes of a menu
|
// Individual Nodes of a menu
|
||||||
|
|
||||||
struct MenuNode {
|
/*struct MenuNode {
|
||||||
String name;
|
String name;
|
||||||
bool command;
|
bool command;
|
||||||
uint16_t color;
|
uint16_t color;
|
||||||
@@ -105,6 +105,16 @@ struct MenuNode {
|
|||||||
TFT_eSPI_Button* button;
|
TFT_eSPI_Button* button;
|
||||||
bool selected;
|
bool selected;
|
||||||
std::function<void()> callable;
|
std::function<void()> callable;
|
||||||
|
};*/
|
||||||
|
|
||||||
|
struct MenuNode {
|
||||||
|
String name;
|
||||||
|
bool command;
|
||||||
|
uint8_t color;
|
||||||
|
uint8_t icon;
|
||||||
|
TFT_eSPI_Button* button;
|
||||||
|
bool selected;
|
||||||
|
std::function<void()> callable;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Full Menus
|
// Full Menus
|
||||||
@@ -181,13 +191,15 @@ class MenuFunctions
|
|||||||
// Menu icons
|
// Menu icons
|
||||||
|
|
||||||
|
|
||||||
|
uint16_t getColor(uint16_t color);
|
||||||
void drawAvgLine(int16_t value);
|
void drawAvgLine(int16_t value);
|
||||||
void drawMaxLine(int16_t value, uint16_t color);
|
void drawMaxLine(int16_t value, uint16_t color);
|
||||||
float calculateGraphScale(int16_t value);
|
float calculateGraphScale(int16_t value);
|
||||||
float graphScaleCheck(const int16_t array[TFT_WIDTH]);
|
float graphScaleCheck(const int16_t array[TFT_WIDTH]);
|
||||||
void drawGraph(int16_t *values);
|
void drawGraph(int16_t *values);
|
||||||
void renderGraphUI();
|
void renderGraphUI();
|
||||||
void addNodes(Menu* menu, String name, uint16_t color, Menu* child, int place, std::function<void()> callable, bool selected = false, String command = "");
|
//void addNodes(Menu* menu, String name, uint16_t color, Menu* child, int place, std::function<void()> callable, bool selected = false, String command = "");
|
||||||
|
void addNodes(Menu* menu, String name, uint8_t color, Menu* child, int place, std::function<void()> callable, bool selected = false, String command = "");
|
||||||
void battery(bool initial = false);
|
void battery(bool initial = false);
|
||||||
void battery2(bool initial = false);
|
void battery2(bool initial = false);
|
||||||
void showMenuList(Menu* menu, int layer);
|
void showMenuList(Menu* menu, int layer);
|
||||||
|
|||||||
@@ -1098,6 +1098,26 @@
|
|||||||
#endif
|
#endif
|
||||||
//// END SD DEFINITIONS
|
//// END SD DEFINITIONS
|
||||||
|
|
||||||
|
//// SPACE SAVING COLORS
|
||||||
|
#define TFTWHITE 1
|
||||||
|
#define TFTCYAN 2
|
||||||
|
#define TFTBLUE 3
|
||||||
|
#define TFTRED 4
|
||||||
|
#define TFTGREEN 5
|
||||||
|
#define TFTGREY 6
|
||||||
|
#define TFTGRAY 7
|
||||||
|
#define TFTMAGENTA 8
|
||||||
|
#define TFTVIOLET 9
|
||||||
|
#define TFTORANGE 10
|
||||||
|
#define TFTYELLOW 11
|
||||||
|
#define TFTLIGHTGREY 12
|
||||||
|
#define TFTPURPLE 13
|
||||||
|
#define TFTNAVY 14
|
||||||
|
#define TFTSILVER 15
|
||||||
|
#define TFTDARKGREY 16
|
||||||
|
#define TFTSKYBLUE 17
|
||||||
|
//// END SPACE SAVING COLORS
|
||||||
|
|
||||||
//// SCREEN STUFF
|
//// SCREEN STUFF
|
||||||
#ifndef HAS_SCREEN
|
#ifndef HAS_SCREEN
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user