跳转至

lib/input/input.h

Classes

Name
struct __CFBDInputEventContextOperations
struct __CFBDInputEventContext

Types

Name
typedef CFBD_Bool(*)(CFBDInputEvent *event) CFBDEventInputHandler
typedef struct __CFBDInputEventContext CFBDInputEventContext
typedef struct __CFBDInputEventContextOperations CFBDInputEventContextOperations

Functions

Name
void CFBD_CreateInputContext(CFBDInputEventContext * context_init)
void CFBD_SetGlobalInputEventContext(CFBDInputEventContext * context)
const CFBDInputEventContext * CFBD_GetGlobalInputEventContext()
void CFBD_CreateGlobalContext(CFBDInputEventContext * context_init)

Types Documentation

typedef CFBDEventInputHandler

typedef CFBD_Bool(* CFBDEventInputHandler) (CFBDInputEvent *event);

typedef CFBDInputEventContext

typedef struct __CFBDInputEventContext CFBDInputEventContext;

typedef CFBDInputEventContextOperations

typedef struct __CFBDInputEventContextOperations CFBDInputEventContextOperations;

Functions Documentation

function CFBD_CreateInputContext

void CFBD_CreateInputContext(
    CFBDInputEventContext * context_init
)

function CFBD_SetGlobalInputEventContext

void CFBD_SetGlobalInputEventContext(
    CFBDInputEventContext * context
)

function CFBD_GetGlobalInputEventContext

const CFBDInputEventContext * CFBD_GetGlobalInputEventContext()

function CFBD_CreateGlobalContext

static inline void CFBD_CreateGlobalContext(
    CFBDInputEventContext * context_init
)

Source code

#pragma once
#include <stdint.h>

#include "cfbd_define.h"
#include "input_config.h"
#include "input_device_base.h"
#include "input_event.h"

typedef CFBD_Bool (*CFBDEventInputHandler)(CFBDInputEvent* event);
typedef struct __CFBDInputEventContext CFBDInputEventContext;
typedef struct __CFBDInputEventContextOperations
{
    CFBD_Bool (*enqueue_event)(CFBDInputEventContext* context, CFBDInputEvent* event);
    CFBD_Bool (*sync_poll)(CFBDInputEventContext* context);
    CFBD_Bool (*register_handle)(CFBDInputEventContext* context, CFBDEventInputHandler handler);
    void (*unregister_handler)(CFBDInputEventContext* context, CFBDEventInputHandler handler);
} CFBDInputEventContextOperations;

typedef struct __CFBDInputEventContext
{
    CFBDInputEventContextOperations* ops;
    CFBDEventInputHandler handlers[INPUT_MAX_HANDLER_CNT];
    uint8_t handler_count;
    CFBDInputEvent queue[INPUT_EVENT_QUEUE_SIZE];
    volatile uint8_t head;
    volatile uint8_t tail;

    CFBD_Bool stop_propergate_if_failed;
} CFBDInputEventContext;

void CFBD_CreateInputContext(CFBDInputEventContext* context_init);
void CFBD_SetGlobalInputEventContext(CFBDInputEventContext* context);
const CFBDInputEventContext* CFBD_GetGlobalInputEventContext();

static inline void CFBD_CreateGlobalContext(CFBDInputEventContext* context_init)
{
    CFBD_CreateInputContext(context_init);
    CFBD_SetGlobalInputEventContext(context_init);
}

Updated on 2026-02-03 at 13:21:55 +0000