4#include "event_loop_link_i.h"
5#include "event_loop_timer_i.h"
6#include "event_loop_tick_i.h"
20 FuriEventLoopObject* object;
25 void* callback_context;
34#define FURI_EVENT_LOOP_TREE_RANK (4)
38 FURI_EVENT_LOOP_TREE_RANK,
44#define M_OPL_FuriEventLoopTree_t() BPTREE_OPLIST(FuriEventLoopTree, M_POD_OPLIST)
46#define FURI_EVENT_LOOP_FLAG_NOTIFY_INDEX (2)
49 FuriEventLoopFlagEvent = (1 << 0),
50 FuriEventLoopFlagStop = (1 << 1),
51 FuriEventLoopFlagTimer = (1 << 2),
52 FuriEventLoopFlagPending = (1 << 3),
55#define FuriEventLoopFlagAll \
56 (FuriEventLoopFlagEvent | FuriEventLoopFlagStop | FuriEventLoopFlagTimer | \
57 FuriEventLoopFlagPending)
60 FuriEventLoopProcessStatusComplete,
61 FuriEventLoopProcessStatusIncomplete,
62 FuriEventLoopProcessStatusAgain,
63 FuriEventLoopProcessStatusFreeLater,
64} FuriEventLoopProcessStatus;
67 FuriEventLoopStateStopped,
68 FuriEventLoopStateIdle,
69 FuriEventLoopStateProcessing,
84 volatile FuriEventLoopState state;
87 FuriEventLoopTree_t tree;
88 WaitingList_t waiting_list;
91 TimerList_t timer_list;
93 TimerQueue_t timer_queue;
95 PendingQueue_t pending_queue;
void(* FuriEventLoopPendingCallback)(void *context)
Timer callback type for functions to be called in a deferred manner.
Definition event_loop.h:174
FuriEventLoopEvent
Enumeration of event types, flags and masks.
Definition event_loop.h:32
bool(* FuriEventLoopEventCallback)(FuriEventLoopObject *object, void *context)
Callback type for event loop events.
Definition event_loop.h:203
Definition event_loop_link_i.h:27
Definition event_loop_i.h:79
Definition event_loop_i.h:14
Definition event_loop_i.h:72
Definition event_loop_tick_i.h:5
void * FuriThreadId
Unique thread identifier type (used by the OS kernel).
Definition thread.h:55