applications.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #pragma once
  2. #include <furi.h>
  3. #include <gui/icon.h>
  4. typedef enum {
  5. FlipperApplicationFlagDefault = 0,
  6. FlipperApplicationFlagInsomniaSafe = (1 << 0),
  7. } FlipperApplicationFlag;
  8. typedef struct {
  9. const FuriThreadCallback app;
  10. const char* name;
  11. const size_t stack_size;
  12. const Icon* icon;
  13. const FlipperApplicationFlag flags;
  14. } FlipperApplication;
  15. typedef void (*FlipperOnStartHook)(void);
  16. /* Services list
  17. * Spawned on startup
  18. */
  19. extern const FlipperApplication FLIPPER_SERVICES[];
  20. extern const size_t FLIPPER_SERVICES_COUNT;
  21. /* Apps list
  22. * Spawned by loader
  23. */
  24. extern const FlipperApplication FLIPPER_APPS[];
  25. extern const size_t FLIPPER_APPS_COUNT;
  26. /* On system start hooks
  27. * Called by loader, after OS initialization complete
  28. */
  29. extern const FlipperOnStartHook FLIPPER_ON_SYSTEM_START[];
  30. extern const size_t FLIPPER_ON_SYSTEM_START_COUNT;
  31. /* Plugins list
  32. * Spawned by loader
  33. */
  34. extern const FlipperApplication FLIPPER_PLUGINS[];
  35. extern const size_t FLIPPER_PLUGINS_COUNT;
  36. /* Debug menu apps
  37. * Spawned by loader
  38. */
  39. extern const FlipperApplication FLIPPER_DEBUG_APPS[];
  40. extern const size_t FLIPPER_DEBUG_APPS_COUNT;
  41. /* System apps
  42. * Can only be spawned by loader by name
  43. */
  44. extern const FlipperApplication FLIPPER_SYSTEM_APPS[];
  45. extern const size_t FLIPPER_SYSTEM_APPS_COUNT;
  46. /* Seperate scene app holder
  47. * Spawned by loader
  48. */
  49. extern const FlipperApplication FLIPPER_SCENE;
  50. extern const FlipperApplication FLIPPER_SCENE_APPS[];
  51. extern const size_t FLIPPER_SCENE_APPS_COUNT;
  52. extern const FlipperApplication FLIPPER_ARCHIVE;
  53. /* Settings list
  54. * Spawned by loader
  55. */
  56. extern const FlipperApplication FLIPPER_SETTINGS_APPS[];
  57. extern const size_t FLIPPER_SETTINGS_APPS_COUNT;