#pragma once#include"cfbd_define.h"typedefstruct__CFBDInputEventContextCFBDInputEventContext;typedefstruct__CFBDInputDeviceBaseCFBDInputDeviceBase;typedefstruct__CFBDInputEventCFBDInputEvent;typedefstruct__CFBD_DeviceIDGeneratorCFBD_DeviceIDGenerator;typedefuint32_tCFBDInputDeviceID_t;typedefstruct__CFBDInputDeviceBaseOps{CFBD_Bool(*bind_context)(CFBDInputDeviceBase*device,CFBDInputEventContext*new_context);CFBD_Bool(*unbind_context)(CFBDInputDeviceBase*device);CFBD_Bool(*report_once)(CFBDInputDeviceBase*device,CFBDInputEvent*event);}CFBDInputDeviceBaseOperation;typedefstruct__CFBDInputDeviceBase{CFBDInputDeviceID_tdevice_id;CFBDInputEventContext*context;CFBDInputDeviceBaseOperation*ops;void*device_internals;// private datas}CFBDInputDeviceBase;// Each devices should register this as base classvoidsetDeviceIDGenerator(CFBD_DeviceIDGenerator*id);// use if wanna specifiedvoidCFBD_CreateInputDeviceBase(CFBDInputDeviceBase*base,CFBDInputEventContext*context,void*assigned_privates);