| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #include "../wiegand.h"
- /*
- Triggers a custom event that is handled in the main menu on_scene handler.
- @param context Pointer to the application context.
- @param index Index of the selected menu item to map to custom event.
- */
- void wiegand_menu_callback(void* context, uint32_t index) {
- App* app = context;
- WiegandMainMenuEvent event = WiegandMainMenuUnknownEvent;
- switch(index) {
- case WiegandMainMenuInstructions:
- event = WiegandMainMenuInstructionsEvent;
- break;
- case WiegandMainMenuRead:
- event = WiegandMainMenuReadEvent;
- break;
- case WiegandMainMenuLoad:
- event = WiegandMainMenuLoadEvent;
- break;
- }
- if(event != WiegandMainMenuUnknownEvent) {
- scene_manager_handle_custom_event(app->scene_manager, event);
- }
- }
- /*
- Displays the main menu.
- @param context Pointer to the application context.
- */
- void wiegand_main_menu_scene_on_enter(void* context) {
- App* app = context;
- submenu_reset(app->submenu);
- submenu_set_header(app->submenu, "Wiegand");
- submenu_add_item(
- app->submenu, "Instructions", WiegandMainMenuInstructions, wiegand_menu_callback, app);
- submenu_add_item(app->submenu, "Read", WiegandMainMenuRead, wiegand_menu_callback, app);
- submenu_add_item(app->submenu, "Load", WiegandMainMenuLoad, wiegand_menu_callback, app);
- view_dispatcher_switch_to_view(app->view_dispatcher, WiegandSubmenuView);
- }
- bool wiegand_main_menu_scene_on_event(void* context, SceneManagerEvent event) {
- App* app = context;
- bool consumed = false;
- if(event.type == SceneManagerEventTypeCustom) {
- switch(event.event) {
- case WiegandMainMenuInstructionsEvent:
- scene_manager_next_scene(app->scene_manager, WiegandInstructionsScene);
- consumed = true;
- break;
- case WiegandMainMenuReadEvent:
- scene_manager_next_scene(app->scene_manager, WiegandReadScene);
- consumed = true;
- break;
- case WiegandMainMenuLoadEvent:
- scene_manager_next_scene(app->scene_manager, WiegandLoadScene);
- consumed = true;
- break;
- default:
- consumed = false;
- break;
- }
- }
- return consumed;
- }
|