ibutton_i.h 2.2 KB

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