#pragma once #include <furi.h> #include <gui/icon.h> typedef enum { FlipperApplicationFlagDefault = 0, FlipperApplicationFlagInsomniaSafe = (1 << 0), } FlipperApplicationFlag; typedef struct { const FuriThreadCallback app; const char* name; const size_t stack_size; const Icon* icon; const FlipperApplicationFlag flags; } FlipperApplication; typedef void (*FlipperOnStartHook)(void); /* Services list * Spawned on startup */ extern const FlipperApplication FLIPPER_SERVICES[]; extern const size_t FLIPPER_SERVICES_COUNT; /* Apps list * Spawned by loader */ extern const FlipperApplication FLIPPER_APPS[]; extern const size_t FLIPPER_APPS_COUNT; /* On system start hooks * Called by loader, after OS initialization complete */ extern const FlipperOnStartHook FLIPPER_ON_SYSTEM_START[]; extern const size_t FLIPPER_ON_SYSTEM_START_COUNT; /* Plugins list * Spawned by loader */ extern const FlipperApplication FLIPPER_PLUGINS[]; extern const size_t FLIPPER_PLUGINS_COUNT; /* Debug menu apps * Spawned by loader */ extern const FlipperApplication FLIPPER_DEBUG_APPS[]; extern const size_t FLIPPER_DEBUG_APPS_COUNT; /* System apps * Can only be spawned by loader by name */ extern const FlipperApplication FLIPPER_SYSTEM_APPS[]; extern const size_t FLIPPER_SYSTEM_APPS_COUNT; /* Seperate scene app holder * Spawned by loader */ extern const FlipperApplication FLIPPER_SCENE; extern const FlipperApplication FLIPPER_SCENE_APPS[]; extern const size_t FLIPPER_SCENE_APPS_COUNT; extern const FlipperApplication FLIPPER_ARCHIVE; /* Settings list * Spawned by loader */ extern const FlipperApplication FLIPPER_SETTINGS_APPS[]; extern const size_t FLIPPER_SETTINGS_APPS_COUNT;