Files
TagTinker/scenes/tagtinker_scene.c
T
i12bp8 2739069f22 Add optional WiFi Plugins (ESP32-S2 bridge + Cloudflare Worker)
- Flipper FAP: WiFi Setup, Plugins picker, plugin-run scene wired into
  Targeted Payloads -> <tag> -> WiFi Plugins
- Framed UART link to the dev board with bulk-read RX path and 16 KB
  stream buffer to keep up with full plugin bursts
- ESP firmware: 900 KB UART<->HTTPS bridge, USB-Serial-JTAG console,
  cert-bundle TLS, 16 KB worker stack to host mbedTLS handshake
- Cloudflare Worker: Crypto, Weather, Identicon plugins out of the
  box; new plugins are a single TypeScript file, no Flipper reflash
- Shared protocol header + 1bpp BMP writer that matches web-image-prep
  palette/stride conventions
2026-04-26 20:50:16 +02:00

82 lines
2.9 KiB
C

/*
* Scene handler table
*/
#include "tagtinker_scene.h"
void(*const tagtinker_scene_on_enter_handlers[])(void*) = {
tagtinker_scene_warning_on_enter,
tagtinker_scene_main_menu_on_enter,
tagtinker_scene_settings_on_enter,
tagtinker_scene_broadcast_menu_on_enter,
tagtinker_scene_broadcast_on_enter,
tagtinker_scene_target_menu_on_enter,
tagtinker_scene_target_actions_on_enter,
tagtinker_scene_barcode_input_on_enter,
tagtinker_scene_text_input_on_enter,
tagtinker_scene_preset_list_on_enter,
tagtinker_scene_synced_image_list_on_enter,
tagtinker_scene_size_picker_on_enter,
tagtinker_scene_image_options_on_enter,
tagtinker_scene_transmit_on_enter,
tagtinker_scene_about_on_enter,
tagtinker_scene_text_box_on_enter,
tagtinker_scene_nfc_scan_on_enter,
tagtinker_scene_wifi_plugins_on_enter,
tagtinker_scene_wifi_setup_on_enter,
tagtinker_scene_wifi_run_on_enter,
};
bool(*const tagtinker_scene_on_event_handlers[])(void*, SceneManagerEvent) = {
tagtinker_scene_warning_on_event,
tagtinker_scene_main_menu_on_event,
tagtinker_scene_settings_on_event,
tagtinker_scene_broadcast_menu_on_event,
tagtinker_scene_broadcast_on_event,
tagtinker_scene_target_menu_on_event,
tagtinker_scene_target_actions_on_event,
tagtinker_scene_barcode_input_on_event,
tagtinker_scene_text_input_on_event,
tagtinker_scene_preset_list_on_event,
tagtinker_scene_synced_image_list_on_event,
tagtinker_scene_size_picker_on_event,
tagtinker_scene_image_options_on_event,
tagtinker_scene_transmit_on_event,
tagtinker_scene_about_on_event,
tagtinker_scene_text_box_on_event,
tagtinker_scene_nfc_scan_on_event,
tagtinker_scene_wifi_plugins_on_event,
tagtinker_scene_wifi_setup_on_event,
tagtinker_scene_wifi_run_on_event,
};
void(*const tagtinker_scene_on_exit_handlers[])(void*) = {
tagtinker_scene_warning_on_exit,
tagtinker_scene_main_menu_on_exit,
tagtinker_scene_settings_on_exit,
tagtinker_scene_broadcast_menu_on_exit,
tagtinker_scene_broadcast_on_exit,
tagtinker_scene_target_menu_on_exit,
tagtinker_scene_target_actions_on_exit,
tagtinker_scene_barcode_input_on_exit,
tagtinker_scene_text_input_on_exit,
tagtinker_scene_preset_list_on_exit,
tagtinker_scene_synced_image_list_on_exit,
tagtinker_scene_size_picker_on_exit,
tagtinker_scene_image_options_on_exit,
tagtinker_scene_transmit_on_exit,
tagtinker_scene_about_on_exit,
tagtinker_scene_text_box_on_exit,
tagtinker_scene_nfc_scan_on_exit,
tagtinker_scene_wifi_plugins_on_exit,
tagtinker_scene_wifi_setup_on_exit,
tagtinker_scene_wifi_run_on_exit,
};
const SceneManagerHandlers tagtinker_scene_handlers = {
.on_enter_handlers = tagtinker_scene_on_enter_handlers,
.on_event_handlers = tagtinker_scene_on_event_handlers,
.on_exit_handlers = tagtinker_scene_on_exit_handlers,
.scene_num = TagTinkerSceneCount,
};