#pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define TAG "FlipFrid" typedef enum { FlipFridAttackDefaultValues, FlipFridAttackBfCustomerId, FlipFridAttackLoadFile, FlipFridAttackLoadFileCustomUids, } FlipFridAttacks; typedef enum { EM4100, HIDProx, PAC, H10301, } FlipFridProtos; typedef enum { NoneScene, SceneEntryPoint, SceneSelectFile, SceneSelectField, SceneAttack, SceneLoadCustomUids, } FlipFridScene; typedef enum { EventTypeTick, EventTypeKey, } EventType; typedef struct { EventType evt_type; InputKey key; InputType input_type; } FlipFridEvent; // STRUCTS typedef struct { FuriMutex* mutex; bool is_running; bool is_attacking; FlipFridScene current_scene; FlipFridScene previous_scene; NotificationApp* notify; u_int8_t menu_index; u_int8_t menu_proto_index; FuriString* data_str; uint8_t data[6]; uint8_t payload[6]; uint8_t attack_step; FlipFridAttacks attack; FlipFridProtos proto; FuriString* attack_name; FuriString* proto_name; FuriString* main_menu_items[4]; FuriString* main_menu_proto_items[4]; DialogsApp* dialogs; FuriString* notification_msg; uint8_t key_index; LFRFIDWorker* worker; ProtocolDict* dict; ProtocolId protocol; bool workr_rund; bool attack_stop_called; uint8_t time_between_cards; // Used for custom dictionnary Stream* uids_stream; } FlipFridState;