#pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "scenes/hex_viewer_scene.h" #include "views/hex_viewer_startscreen.h" #include "views/hex_viewer_scene_1.h" #include "views/hex_viewer_scene_2.h" #include "helpers/hex_viewer_storage.h" #include #include #include #include #define TAG "HexViewer" // #define SUBGHZ_APP_EXTENSION ".sub" // #define SUBGHZ_APP_FOLDER ANY_PATH("subghz") #define HEX_VIEWER_APP_PATH_FOLDER "/any" // TODO ANY_PATH #define HEX_VIEWER_APP_EXTENSION "*" #define HEX_VIEWER_PERCENT_INPUT 16 #define HEX_VIEWER_BYTES_PER_LINE 4u #define HEX_VIEWER_LINES_ON_SCREEN 4u #define HEX_VIEWER_BUF_SIZE (HEX_VIEWER_LINES_ON_SCREEN * HEX_VIEWER_BYTES_PER_LINE) // typedef struct HexViewerModel HexViewerModel; // typedef struct HexViewer HexViewer; typedef struct { uint8_t file_bytes[HEX_VIEWER_LINES_ON_SCREEN][HEX_VIEWER_BYTES_PER_LINE]; uint32_t file_offset; uint32_t file_read_bytes; uint32_t file_size; Stream* stream; } HexViewerModel; // TODO Clean typedef struct { HexViewerModel* model; Gui* gui; Storage* storage; NotificationApp* notification; ViewDispatcher* view_dispatcher; Submenu* submenu; TextInput* text_input; SceneManager* scene_manager; VariableItemList* variable_item_list; HexViewerStartscreen* hex_viewer_startscreen; HexViewerScene1* hex_viewer_scene_1; HexViewerScene2* hex_viewer_scene_2; DialogsApp* dialogs; // File Browser FuriString* file_path; // File Browser uint32_t haptic; uint32_t speaker; uint32_t led; uint32_t save_settings; ButtonMenu* button_menu; // Button Menu char percent_buf[HEX_VIEWER_PERCENT_INPUT]; } HexViewer; typedef enum { HexViewerViewIdStartscreen, HexViewerViewIdMenu, HexViewerViewIdScene1, HexViewerViewIdScene2, HexViewerViewIdScene3, HexViewerViewIdScene4, HexViewerViewIdScene5, HexViewerViewIdSettings, } HexViewerViewId; typedef enum { HexViewerHapticOff, HexViewerHapticOn, } HexViewerHapticState; typedef enum { HexViewerSpeakerOff, HexViewerSpeakerOn, } HexViewerSpeakerState; typedef enum { HexViewerLedOff, HexViewerLedOn, } HexViewerLedState; typedef enum { HexViewerSettingsOff, HexViewerSettingsOn, } HexViewerSettingsStoreState;