LDK_EVENT_QUEUE_SIZE
#define LDK_EVENT_QUEUE_SIZE 255
Event queue and dispatch system
Provides event buffering, handler registration, and propagation control.
#define LDK_EVENT_QUEUE_SIZE 255
#define LDK_EVENT_HANDLERS_MAX 32
Callback handling an engine event.
typedef bool(*LDKEventHandler)(const LDKEvent *event, void *optional);
eventoptionalTrue if the operation succeeds; false otherwise.
typedef struct{
LDKEventHandler callbacks[LDK_EVENT_HANDLERS_MAX];
LDKEventType mask[LDK_EVENT_HANDLERS_MAX];
void *data[LDK_EVENT_QUEUE_SIZE];
LDKEvent events[LDK_EVENT_QUEUE_SIZE];
u32 numEvents;
u32 numHandlers;
}LDKEventQueue;
Initialize the event queue.
LDK_API bool ldk_event_queue_initialize(LDKEventQueue *queue);
LDKEventQueue *queueTrue if the operation succeeds; false otherwise.
Shut down the event queue.
LDK_API void ldk_event_queue_terminate(LDKEventQueue *queue);
LDKEventQueue *queuePush the event onto its stack or queue.
LDK_API void ldk_event_push(
LDKEventQueue *queue,
LDKEvent *event
);
LDKEventQueue *queueLDKEvent *eventRegister a callback for engine events.
LDK_API void ldk_event_handler_add(
LDKEventQueue *queue,
LDKEventHandler handler,
LDKEventType mask,
void *optional
);
LDKEventQueue *queueLDKEventHandler handlerLDKEventType maskvoid *optionalRemove an engine event callback.
LDK_API void ldk_event_handler_remove(
LDKEventQueue *queue,
LDKEventHandler handler
);
LDKEventQueue *queueLDKEventHandler handlerRead the event mask associated with a handler.
LDK_API LDKEventType ldk_event_handler_mask_get(
LDKEventQueue *queue,
LDKEventHandler handler
);
LDKEventQueue *queueLDKEventHandler handlerThe requested value.
Change the event mask associated with a handler.
LDK_API void ldk_event_handler_mask_set(
LDKEventQueue *queue,
LDKEventHandler handler,
LDKEventType mask
);
LDKEventQueue *queueLDKEventHandler handlerLDKEventType maskClear the state of the event queue.
LDK_API void ldk_event_queue_clear(LDKEventQueue *queue);
LDKEventQueue *queueBroadcast an event to subscribers of its type.
LDK_API void ldk_event_queue_broadcast(LDKEventQueue *queue);
LDKEventQueue *queue