applications.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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 char* appid;
  12. const size_t stack_size;
  13. const Icon* icon;
  14. const FlipperApplicationFlag flags;
  15. } FlipperApplication;
  16. typedef void (*FlipperOnStartHook)(void);
  17. extern const char* FLIPPER_AUTORUN_APP_NAME;
  18. /* Services list
  19. * Spawned on startup
  20. */
  21. extern const FlipperApplication FLIPPER_SERVICES[];
  22. extern const size_t FLIPPER_SERVICES_COUNT;
  23. /* Apps list
  24. * Spawned by loader
  25. */
  26. extern const FlipperApplication FLIPPER_APPS[];
  27. extern const size_t FLIPPER_APPS_COUNT;
  28. /* On system start hooks
  29. * Called by loader, after OS initialization complete
  30. */
  31. extern const FlipperOnStartHook FLIPPER_ON_SYSTEM_START[];
  32. extern const size_t FLIPPER_ON_SYSTEM_START_COUNT;
  33. /* System apps
  34. * Can only be spawned by loader by name
  35. */
  36. extern const FlipperApplication FLIPPER_SYSTEM_APPS[];
  37. extern const size_t FLIPPER_SYSTEM_APPS_COUNT;
  38. /* Separate scene app holder
  39. * Spawned by loader
  40. */
  41. extern const FlipperApplication FLIPPER_SCENE;
  42. extern const FlipperApplication FLIPPER_SCENE_APPS[];
  43. extern const size_t FLIPPER_SCENE_APPS_COUNT;
  44. extern const FlipperApplication FLIPPER_ARCHIVE;
  45. /* Settings list
  46. * Spawned by loader
  47. */
  48. extern const FlipperApplication FLIPPER_SETTINGS_APPS[];
  49. extern const size_t FLIPPER_SETTINGS_APPS_COUNT;