app_state.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef LWC_STATE_HEADERS
  2. #define LWC_STATE_HEADERS
  3. #include "flipper.h"
  4. #include "logic_dcf77.h"
  5. #include "logic_msf.h"
  6. #include "protocols.h"
  7. #include "scenes.h"
  8. #include "gpio.h"
  9. typedef struct ProtoConfig {
  10. LWCRunMode run_mode;
  11. LWCDataMode data_mode;
  12. LWCDataPin data_pin;
  13. } ProtoConfig;
  14. typedef enum {
  15. EventReceiveSync,
  16. EventReceiveZero,
  17. EventReceiveOne,
  18. EventReceiveUnknown
  19. } LWCEventType;
  20. typedef struct AppState {
  21. LWCType lwc_type;
  22. ProtoConfig* proto_configs[__lwc_number_of_protocols];
  23. GPIOContext* gpio;
  24. FuriTimer* seconds_timer;
  25. MinuteData* simulation_data;
  26. Storage* storage;
  27. bool display_on;
  28. } AppState;
  29. typedef struct App {
  30. SceneManager* scene_manager;
  31. ViewDispatcher* view_dispatcher;
  32. Submenu* main_menu;
  33. NotificationApp* notifications;
  34. VariableItemList* sub_menu;
  35. TextBox* about;
  36. TextBox* info_text;
  37. View* dcf77_view;
  38. View* msf_view;
  39. AppState* state;
  40. } App;
  41. App* app_alloc();
  42. AppState* app_state_alloc();
  43. void app_quit(App* app);
  44. void app_free(App* app);
  45. void app_init_lwc(App* app, LWCType rtype);
  46. LWCScene lwc_get_start_scene_for_protocol(AppState* app_state);
  47. void store_proto_config(AppState* app_state);
  48. ProtoConfig* lwc_get_protocol_config(AppState* app_state);
  49. #endif