All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
loader_i.h
1#pragma once
2#include <furi.h>
3#include <toolbox/api_lock.h>
5
6#include <gui/gui.h>
7#include <gui/view_holder.h>
8#include <gui/modules/loading.h>
9
10#include <m-array.h>
11
12#include "loader.h"
13#include "loader_menu.h"
14#include "loader_applications.h"
15#include "loader_queue.h"
16
17typedef struct {
18 FuriString* launch_path;
19 char* args;
20 FuriThread* thread;
21 bool insomniac;
24
25struct Loader {
26 FuriPubSub* pubsub;
27 FuriMessageQueue* queue;
28 LoaderMenu* loader_menu;
29 LoaderApplications* loader_applications;
30 LoaderAppData app;
31
32 LoaderLaunchQueue launch_queue;
33
34 Gui* gui;
35 ViewHolder* view_holder;
36 Loading* loading;
37};
38
39typedef enum {
40 LoaderMessageTypeStartByName,
41 LoaderMessageTypeAppClosed,
42 LoaderMessageTypeShowMenu,
43 LoaderMessageTypeMenuClosed,
44 LoaderMessageTypeApplicationsClosed,
45 LoaderMessageTypeLock,
46 LoaderMessageTypeUnlock,
47 LoaderMessageTypeIsLocked,
48 LoaderMessageTypeStartByNameDetachedWithGuiError,
49 LoaderMessageTypeSignal,
50 LoaderMessageTypeGetApplicationName,
51 LoaderMessageTypeGetApplicationLaunchPath,
52 LoaderMessageTypeEnqueueLaunch,
53 LoaderMessageTypeClearLaunchQueue,
54} LoaderMessageType;
55
56typedef struct {
57 const char* name;
58 const char* args;
59 FuriString* error_message;
61
62typedef struct {
63 uint32_t signal;
64 void* arg;
66
67typedef enum {
68 LoaderStatusErrorUnknown,
69 LoaderStatusErrorInvalidFile,
70 LoaderStatusErrorInvalidManifest,
71 LoaderStatusErrorMissingImports,
72 LoaderStatusErrorHWMismatch,
73 LoaderStatusErrorOutdatedApp,
74 LoaderStatusErrorOutOfMemory,
75 LoaderStatusErrorOutdatedFirmware,
76} LoaderStatusError;
77
78typedef struct {
79 LoaderStatus value;
80 LoaderStatusError error;
82
83typedef struct {
84 bool value;
86
87typedef struct {
88 FuriApiLock api_lock;
89 LoaderMessageType type;
90
91 union {
95 FuriString* application_name;
96 };
97
98 union {
100 LoaderMessageBoolResult* bool_value;
101 };
Flipper application.
GUI: main API.
Definition flipper_application.c:11
Definition event_flag.c:14
Definition message_queue.c:16
Definition pubsub.c:14
Definition string.c:4
Definition thread.c:41
Gui structure.
Definition gui_i.h:47
Definition loader_i.h:17
Definition loader_applications.c:16
Definition loader_queue.h:9
Definition loader_i.h:25
Definition loader_queue.h:15
Definition loader_menu.c:14
Definition loader_i.h:83
Definition loader_i.h:87
Definition loader_i.h:78
Definition loader_i.h:62
Definition loader_i.h:56
Definition services/gui/modules/loading.c:13
Definition view_holder.c:6
GUI: ViewHolder API.