Loading...
Searching...
No Matches
loader_i.h
1#pragma once
2#include <furi.h>
3#include <toolbox/api_lock.h>
5#include "loader.h"
6#include "loader_menu.h"
7#include "loader_applications.h"
8
9typedef struct {
10 char* args;
11 FuriThread* thread;
12 bool insomniac;
15
16struct Loader {
17 FuriPubSub* pubsub;
18 FuriMessageQueue* queue;
19 LoaderMenu* loader_menu;
20 LoaderApplications* loader_applications;
21 LoaderAppData app;
22};
23
24typedef enum {
25 LoaderMessageTypeStartByName,
26 LoaderMessageTypeAppClosed,
27 LoaderMessageTypeShowMenu,
28 LoaderMessageTypeMenuClosed,
29 LoaderMessageTypeApplicationsClosed,
30 LoaderMessageTypeLock,
31 LoaderMessageTypeUnlock,
32 LoaderMessageTypeIsLocked,
33 LoaderMessageTypeStartByNameDetachedWithGuiError,
34 LoaderMessageTypeSignal,
35 LoaderMessageTypeGetApplicationName,
36} LoaderMessageType;
37
38typedef struct {
39 const char* name;
40 const char* args;
41 FuriString* error_message;
43
44typedef struct {
45 uint32_t signal;
46 void* arg;
48
49typedef enum {
50 LoaderStatusErrorUnknown,
51 LoaderStatusErrorInvalidFile,
52 LoaderStatusErrorInvalidManifest,
53 LoaderStatusErrorMissingImports,
54 LoaderStatusErrorHWMismatch,
55 LoaderStatusErrorOutdatedApp,
56 LoaderStatusErrorOutOfMemory,
57 LoaderStatusErrorOutdatedFirmware,
58} LoaderStatusError;
59
60typedef struct {
61 LoaderStatus value;
62 LoaderStatusError error;
64
65typedef struct {
66 bool value;
68
69typedef struct {
70 FuriApiLock api_lock;
71 LoaderMessageType type;
72
73 union {
76 FuriString* application_name;
77 };
78
79 union {
81 LoaderMessageBoolResult* bool_value;
82 };
Flipper application.
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:33
Definition loader_i.h:9
Definition loader_applications.c:16
Definition loader_i.h:16
Definition loader_menu.c:13
Definition loader_i.h:65
Definition loader_i.h:69
Definition loader_i.h:60
Definition loader_i.h:44
Definition loader_i.h:38