mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-12 19:48:35 -07:00
Add One-Click Devboard flash to esp_flasher
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
ADD_SCENE(esp_flasher, start, Start)
|
ADD_SCENE(esp_flasher, start, Start)
|
||||||
|
ADD_SCENE(esp_flasher, devboard, Devboard)
|
||||||
ADD_SCENE(esp_flasher, console_output, ConsoleOutput)
|
ADD_SCENE(esp_flasher, console_output, ConsoleOutput)
|
||||||
ADD_SCENE(esp_flasher, about, About)
|
ADD_SCENE(esp_flasher, about, About)
|
||||||
ADD_SCENE(esp_flasher, browse, Browse)
|
ADD_SCENE(esp_flasher, browse, Browse)
|
||||||
|
|||||||
80
applications/external/esp_flasher/scenes/esp_flasher_scene_devboard.c
vendored
Normal file
80
applications/external/esp_flasher/scenes/esp_flasher_scene_devboard.c
vendored
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
#include "../esp_flasher_app_i.h"
|
||||||
|
|
||||||
|
enum SubmenuIndex {
|
||||||
|
SubmenuIndexMarauder,
|
||||||
|
SubmenuIndexEvilPortal,
|
||||||
|
SubmenuIndexBlackMagic,
|
||||||
|
};
|
||||||
|
|
||||||
|
void esp_flasher_scene_devboard_submenu_callback(void* context, uint32_t index) {
|
||||||
|
furi_assert(context);
|
||||||
|
EspFlasherApp* app = context;
|
||||||
|
|
||||||
|
view_dispatcher_send_custom_event(app->view_dispatcher, index);
|
||||||
|
}
|
||||||
|
|
||||||
|
void esp_flasher_scene_devboard_on_enter(void* context) {
|
||||||
|
furi_assert(context);
|
||||||
|
|
||||||
|
EspFlasherApp* app = context;
|
||||||
|
Submenu* submenu = app->submenu;
|
||||||
|
submenu_add_item(
|
||||||
|
submenu,
|
||||||
|
"Marauder",
|
||||||
|
SubmenuIndexMarauder,
|
||||||
|
esp_flasher_scene_devboard_submenu_callback,
|
||||||
|
app);
|
||||||
|
submenu_add_item(
|
||||||
|
submenu,
|
||||||
|
"Evil Portal",
|
||||||
|
SubmenuIndexEvilPortal,
|
||||||
|
esp_flasher_scene_devboard_submenu_callback,
|
||||||
|
app);
|
||||||
|
submenu_add_item(
|
||||||
|
submenu,
|
||||||
|
"Black Magic",
|
||||||
|
SubmenuIndexBlackMagic,
|
||||||
|
esp_flasher_scene_devboard_submenu_callback,
|
||||||
|
app);
|
||||||
|
|
||||||
|
submenu_set_selected_item(
|
||||||
|
submenu, scene_manager_get_scene_state(app->scene_manager, EspFlasherSceneDevboard));
|
||||||
|
|
||||||
|
view_dispatcher_switch_to_view(app->view_dispatcher, EspFlasherAppViewSubmenu);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool esp_flasher_scene_devboard_on_event(void* context, SceneManagerEvent event) {
|
||||||
|
furi_assert(context);
|
||||||
|
|
||||||
|
EspFlasherApp* app = context;
|
||||||
|
bool consumed = false;
|
||||||
|
if(event.type == SceneManagerEventTypeCustom) {
|
||||||
|
const char* path = NULL;
|
||||||
|
consumed = true;
|
||||||
|
if(event.event == SubmenuIndexBlackMagic) {
|
||||||
|
path = APP_DATA_PATH("Black_Magic.bin");
|
||||||
|
} else if(event.event == SubmenuIndexEvilPortal) {
|
||||||
|
path = APP_DATA_PATH("Evil_Portal.bin");
|
||||||
|
} else if(event.event == SubmenuIndexMarauder) {
|
||||||
|
path = APP_DATA_PATH("Marauder.bin");
|
||||||
|
} else {
|
||||||
|
consumed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(consumed) {
|
||||||
|
app->selected_flash_options[SelectedFlashBoot] = true;
|
||||||
|
strncpy(app->bin_file_path_boot, path, sizeof(app->bin_file_path_boot));
|
||||||
|
scene_manager_next_scene(app->scene_manager, EspFlasherSceneConsoleOutput);
|
||||||
|
}
|
||||||
|
scene_manager_set_scene_state(app->scene_manager, EspFlasherSceneDevboard, event.event);
|
||||||
|
}
|
||||||
|
|
||||||
|
return consumed;
|
||||||
|
}
|
||||||
|
|
||||||
|
void esp_flasher_scene_devboard_on_exit(void* context) {
|
||||||
|
furi_assert(context);
|
||||||
|
|
||||||
|
EspFlasherApp* app = context;
|
||||||
|
submenu_reset(app->submenu);
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
#include "../esp_flasher_app_i.h"
|
#include "../esp_flasher_app_i.h"
|
||||||
|
|
||||||
enum SubmenuIndex {
|
enum SubmenuIndex {
|
||||||
|
SubmenuIndexEspFlasherDevboardFlash,
|
||||||
SubmenuIndexEspFlasherFlash,
|
SubmenuIndexEspFlasherFlash,
|
||||||
SubmenuIndexEspFlasherAbout,
|
SubmenuIndexEspFlasherAbout,
|
||||||
};
|
};
|
||||||
@@ -19,7 +20,13 @@ void esp_flasher_scene_start_on_enter(void* context) {
|
|||||||
Submenu* submenu = app->submenu;
|
Submenu* submenu = app->submenu;
|
||||||
submenu_add_item(
|
submenu_add_item(
|
||||||
submenu,
|
submenu,
|
||||||
"Flash ESP",
|
"Flash Wifi Devboard",
|
||||||
|
SubmenuIndexEspFlasherDevboardFlash,
|
||||||
|
esp_flasher_scene_start_submenu_callback,
|
||||||
|
app);
|
||||||
|
submenu_add_item(
|
||||||
|
submenu,
|
||||||
|
"Flash Generic ESP",
|
||||||
SubmenuIndexEspFlasherFlash,
|
SubmenuIndexEspFlasherFlash,
|
||||||
esp_flasher_scene_start_submenu_callback,
|
esp_flasher_scene_start_submenu_callback,
|
||||||
app);
|
app);
|
||||||
@@ -48,6 +55,9 @@ bool esp_flasher_scene_start_on_event(void* context, SceneManagerEvent event) {
|
|||||||
} else if(event.event == SubmenuIndexEspFlasherFlash) {
|
} else if(event.event == SubmenuIndexEspFlasherFlash) {
|
||||||
scene_manager_next_scene(app->scene_manager, EspFlasherSceneBrowse);
|
scene_manager_next_scene(app->scene_manager, EspFlasherSceneBrowse);
|
||||||
consumed = true;
|
consumed = true;
|
||||||
|
} else if(event.event == SubmenuIndexEspFlasherDevboardFlash) {
|
||||||
|
scene_manager_next_scene(app->scene_manager, EspFlasherSceneDevboard);
|
||||||
|
consumed = true;
|
||||||
}
|
}
|
||||||
scene_manager_set_scene_state(app->scene_manager, EspFlasherSceneStart, event.event);
|
scene_manager_set_scene_state(app->scene_manager, EspFlasherSceneStart, event.event);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user