lfrfid_app.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #pragma once
  2. #include <furi.h>
  3. #include <furi_hal.h>
  4. #include <generic_scene.hpp>
  5. #include <scene_controller.hpp>
  6. #include <view_controller.hpp>
  7. #include <record_controller.hpp>
  8. #include <text_store.h>
  9. #include <view_modules/submenu_vm.h>
  10. #include <view_modules/popup_vm.h>
  11. #include <view_modules/dialog_ex_vm.h>
  12. #include <view_modules/text_input_vm.h>
  13. #include <view_modules/byte_input_vm.h>
  14. #include "view/container_vm.h"
  15. #include <notification/notification_messages.h>
  16. #include <storage/storage.h>
  17. #include <dialogs/dialogs.h>
  18. #include "helpers/rfid_worker.h"
  19. class LfRfidApp {
  20. public:
  21. enum class EventType : uint8_t {
  22. GENERIC_EVENT_ENUM_VALUES,
  23. Next,
  24. MenuSelected,
  25. };
  26. enum class SceneType : uint8_t {
  27. GENERIC_SCENE_ENUM_VALUES,
  28. Read,
  29. ReadSuccess,
  30. ReadedMenu,
  31. Write,
  32. WriteSuccess,
  33. Emulate,
  34. SaveName,
  35. SaveSuccess,
  36. SelectKey,
  37. SavedKeyMenu,
  38. SaveData,
  39. SaveType,
  40. SavedInfo,
  41. DeleteConfirm,
  42. DeleteSuccess,
  43. };
  44. class Event {
  45. public:
  46. union {
  47. int32_t menu_index;
  48. } payload;
  49. EventType type;
  50. };
  51. SceneController<GenericScene<LfRfidApp>, LfRfidApp> scene_controller;
  52. ViewController<LfRfidApp, SubmenuVM, PopupVM, DialogExVM, TextInputVM, ByteInputVM, ContainerVM>
  53. view_controller;
  54. ~LfRfidApp();
  55. LfRfidApp();
  56. RecordController<NotificationApp> notification;
  57. RecordController<Storage> storage;
  58. RecordController<DialogsApp> dialogs;
  59. RfidWorker worker;
  60. TextStore text_store;
  61. void run(void* args);
  62. static const char* app_folder;
  63. static const char* app_extension;
  64. static const char* app_filetype;
  65. bool save_key(RfidKey* key);
  66. bool load_key_from_file_select(bool need_restore);
  67. bool delete_key(RfidKey* key);
  68. bool load_key_data(const char* path, RfidKey* key);
  69. bool save_key_data(const char* path, RfidKey* key);
  70. void make_app_folder();
  71. };