quac.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #pragma once
  2. #include <gui/gui.h>
  3. #include <gui/scene_manager.h>
  4. #include <gui/view_dispatcher.h>
  5. #include <gui/scene_manager.h>
  6. #include <gui/modules/variable_item_list.h>
  7. #include <gui/modules/submenu.h>
  8. #include <gui/modules/text_input.h>
  9. #include <gui/modules/popup.h>
  10. #include <dialogs/dialogs.h>
  11. #include <storage/storage.h>
  12. #include <notification/notification_messages.h>
  13. #include "views/action_menu.h"
  14. #include "item.h"
  15. #define QUAC_NAME "Quac!"
  16. #define QUAC_VERSION "v0.6"
  17. #define QUAC_ABOUT \
  18. "Quick Action remote control\n" QUAC_VERSION "\n" \
  19. "github.com/rdefeo/quac"
  20. #define TAG "Quac" // log statement id
  21. // Location of our actions and folders
  22. #define QUAC_SETTINGS_FILENAME ".quac.conf"
  23. #define QUAC_SETTINGS_PATH APP_DATA_PATH(QUAC_SETTINGS_FILENAME)
  24. typedef enum { QUAC_APP_PORTRAIT, QUAC_APP_LANDSCAPE } QuacAppLayout;
  25. typedef struct App {
  26. SceneManager* scene_manager;
  27. ViewDispatcher* view_dispatcher;
  28. ActionMenu* action_menu;
  29. VariableItemList* vil_settings;
  30. DialogsApp* dialog;
  31. Submenu* sub_menu;
  32. TextInput* text_input;
  33. Popup* popup;
  34. Storage* storage;
  35. NotificationApp* notifications;
  36. ItemsView* items_view;
  37. int depth;
  38. int selected_item;
  39. FuriString* temp_str; // used for renames/etc
  40. char temp_cstr[MAX_NAME_LEN]; // used for renames/etc
  41. struct {
  42. QuacAppLayout layout; // Defaults to Portrait
  43. bool show_icons; // Defaults to True
  44. bool show_headers; // Defaults to True
  45. uint32_t rfid_duration; // Defaults to 2500 ms
  46. uint32_t nfc_duration; // Defaults to 1000 ms
  47. uint32_t subghz_repeat; // Defaults to 10, just like the CLI
  48. bool subghz_use_ext_antenna; // Defaults to False
  49. bool show_hidden; // Defaults to False
  50. } settings;
  51. } App;
  52. App* app_alloc();
  53. void app_free(App* app);