ibutton_i.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #pragma once
  2. #include "ibutton.h"
  3. #include <gui/gui.h>
  4. #include <gui/view.h>
  5. #include <assets_icons.h>
  6. #include <gui/view_dispatcher.h>
  7. #include <gui/scene_manager.h>
  8. #include <notification/notification_messages.h>
  9. #include <one_wire/ibutton/ibutton_worker.h>
  10. #include <storage/storage.h>
  11. #include <dialogs/dialogs.h>
  12. #include <gui/modules/submenu.h>
  13. #include <gui/modules/popup.h>
  14. #include <gui/modules/dialog_ex.h>
  15. #include <gui/modules/text_input.h>
  16. #include <gui/modules/byte_input.h>
  17. #include <gui/modules/widget.h>
  18. #include "ibutton_custom_event.h"
  19. #include "scenes/ibutton_scene.h"
  20. #define IBUTTON_FILE_NAME_SIZE 100
  21. #define IBUTTON_TEXT_STORE_SIZE 128
  22. #define IBUTTON_APP_FOLDER ANY_PATH("ibutton")
  23. #define IBUTTON_APP_EXTENSION ".ibtn"
  24. #define IBUTTON_APP_FILE_TYPE "Flipper iButton key"
  25. struct iButton {
  26. SceneManager* scene_manager;
  27. ViewDispatcher* view_dispatcher;
  28. Gui* gui;
  29. Storage* storage;
  30. DialogsApp* dialogs;
  31. NotificationApp* notifications;
  32. iButtonWorker* key_worker;
  33. iButtonKey* key;
  34. FuriString* file_path;
  35. char text_store[IBUTTON_TEXT_STORE_SIZE + 1];
  36. Submenu* submenu;
  37. ByteInput* byte_input;
  38. TextInput* text_input;
  39. Popup* popup;
  40. Widget* widget;
  41. DialogEx* dialog_ex;
  42. void* rpc_ctx;
  43. };
  44. typedef enum {
  45. iButtonViewSubmenu,
  46. iButtonViewByteInput,
  47. iButtonViewTextInput,
  48. iButtonViewPopup,
  49. iButtonViewWidget,
  50. iButtonViewDialogEx,
  51. } iButtonView;
  52. typedef enum {
  53. iButtonNotificationMessageError,
  54. iButtonNotificationMessageSuccess,
  55. iButtonNotificationMessageReadStart,
  56. iButtonNotificationMessageEmulateStart,
  57. iButtonNotificationMessageYellowBlink,
  58. iButtonNotificationMessageEmulateBlink,
  59. iButtonNotificationMessageRedOn,
  60. iButtonNotificationMessageRedOff,
  61. iButtonNotificationMessageGreenOn,
  62. iButtonNotificationMessageGreenOff,
  63. iButtonNotificationMessageBlinkStop,
  64. } iButtonNotificationMessage;
  65. bool ibutton_file_select(iButton* ibutton);
  66. bool ibutton_load_key_data(iButton* ibutton, FuriString* key_path, bool show_dialog);
  67. bool ibutton_save_key(iButton* ibutton, const char* key_name);
  68. bool ibutton_delete_key(iButton* ibutton);
  69. void ibutton_text_store_set(iButton* ibutton, const char* text, ...);
  70. void ibutton_text_store_clear(iButton* ibutton);
  71. void ibutton_notification_message(iButton* ibutton, uint32_t message);