spi_mem_app_i.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #pragma once
  2. #include <furi.h>
  3. #include <furi_hal_spi.h>
  4. #include <furi_hal_spi_config.h>
  5. #include "spi_mem_app.h"
  6. #include <gui/gui.h>
  7. #include <gui/view_dispatcher.h>
  8. #include <gui/modules/submenu.h>
  9. #include <gui/modules/dialog_ex.h>
  10. #include <gui/modules/popup.h>
  11. #include <notification/notification_messages.h>
  12. #include <dialogs/dialogs.h>
  13. #include <gui/modules/widget.h>
  14. #include <gui/modules/text_input.h>
  15. #include <storage/storage.h>
  16. #include <toolbox/path.h>
  17. #include <toolbox/name_generator.h>
  18. #include "scenes/spi_mem_scene.h"
  19. #include "lib/spi/spi_mem_worker.h"
  20. #include "spi_mem_manager_icons.h"
  21. #include "views/spi_mem_view_progress.h"
  22. #include "views/spi_mem_view_detect.h"
  23. #include <assets_icons.h>
  24. #define TAG "SPIMem"
  25. #define SPI_MEM_FILE_EXTENSION ".bin"
  26. #define SPI_MEM_FILE_PREFIX "SPIMem"
  27. #define SPI_MEM_FILE_NAME_SIZE 100
  28. #define SPI_MEM_TEXT_BUFFER_SIZE 128
  29. typedef enum {
  30. SPIMemModeRead,
  31. SPIMemModeWrite,
  32. SPIMemModeCompare,
  33. SPIMemModeErase,
  34. SPIMemModeDelete,
  35. SPIMemModeUnknown
  36. } SPIMemMode;
  37. struct SPIMemApp {
  38. Gui* gui;
  39. ViewDispatcher* view_dispatcher;
  40. SceneManager* scene_manager;
  41. Submenu* submenu;
  42. DialogEx* dialog_ex;
  43. Popup* popup;
  44. NotificationApp* notifications;
  45. FuriString* file_path;
  46. DialogsApp* dialogs;
  47. Storage* storage;
  48. File* file;
  49. Widget* widget;
  50. SPIMemWorker* worker;
  51. SPIMemChip* chip_info;
  52. found_chips_t found_chips;
  53. uint32_t chip_vendor_enum;
  54. SPIMemProgressView* view_progress;
  55. SPIMemDetectView* view_detect;
  56. TextInput* text_input;
  57. SPIMemMode mode;
  58. char text_buffer[SPI_MEM_TEXT_BUFFER_SIZE + 1];
  59. };
  60. typedef enum {
  61. SPIMemViewSubmenu,
  62. SPIMemViewDialogEx,
  63. SPIMemViewPopup,
  64. SPIMemViewWidget,
  65. SPIMemViewTextInput,
  66. SPIMemViewProgress,
  67. SPIMemViewDetect
  68. } SPIMemView;
  69. typedef enum {
  70. SPIMemCustomEventViewReadCancel,
  71. SPIMemCustomEventViewVerifySkip,
  72. SPIMemCustomEventTextEditResult,
  73. SPIMemCustomEventPopupBack
  74. } SPIMemCustomEvent;