desktop_i.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #pragma once
  2. #include "desktop.h"
  3. #include "animations/animation_manager.h"
  4. #include "views/desktop_view_pin_timeout.h"
  5. #include "views/desktop_view_pin_input.h"
  6. #include "views/desktop_view_locked.h"
  7. #include "views/desktop_view_main.h"
  8. #include "views/desktop_view_first_start.h"
  9. #include "views/desktop_view_lock_menu.h"
  10. #include "views/desktop_view_debug.h"
  11. #include "desktop/desktop_settings/desktop_settings.h"
  12. #include <furi.h>
  13. #include <gui/gui.h>
  14. #include <gui/view_stack.h>
  15. #include <gui/view_dispatcher.h>
  16. #include <gui/modules/popup.h>
  17. #include <gui/scene_manager.h>
  18. #define STATUS_BAR_Y_SHIFT 13
  19. typedef enum {
  20. DesktopViewIdMain,
  21. DesktopViewIdLockMenu,
  22. DesktopViewIdLocked,
  23. DesktopViewIdDebug,
  24. DesktopViewIdFirstStart,
  25. DesktopViewIdHwMismatch,
  26. DesktopViewIdPinInput,
  27. DesktopViewIdPinTimeout,
  28. DesktopViewIdTotal,
  29. } DesktopViewId;
  30. struct Desktop {
  31. // Scene
  32. FuriThread* scene_thread;
  33. // GUI
  34. Gui* gui;
  35. ViewDispatcher* view_dispatcher;
  36. SceneManager* scene_manager;
  37. DesktopFirstStartView* first_start_view;
  38. Popup* hw_mismatch_popup;
  39. DesktopLockMenuView* lock_menu;
  40. DesktopDebugView* debug_view;
  41. DesktopViewLocked* locked_view;
  42. DesktopMainView* main_view;
  43. DesktopViewPinTimeout* pin_timeout_view;
  44. ViewStack* main_view_stack;
  45. ViewStack* locked_view_stack;
  46. DesktopSettings settings;
  47. DesktopViewPinInput* pin_input_view;
  48. ViewPort* lock_viewport;
  49. AnimationManager* animation_manager;
  50. osSemaphoreId_t unload_animation_semaphore;
  51. FuriPubSubSubscription* app_start_stop_subscription;
  52. };
  53. Desktop* desktop_alloc();
  54. void desktop_free(Desktop* desktop);