#pragma once #include "DRI/Dri_Ble.h" #include "DRI/Dri_Consumer.h" #include "DRI/Dri_NkroRaw.h" #include "DRI/Dri_Vendor.h" #include "LOGIC/Lgc_Func_Button.h" #include #include #include enum Lgc_Core_Enum_SendTransport : quint8 { Lgc_Core_Enum_SendTransport_None = 0, Lgc_Core_Enum_SendTransport_Usb, Lgc_Core_Enum_SendTransport_Ble }; struct Lgc_Core_Struct_State { Dri_Ble_Struct_Port DriBlePort; Dri_NkroRaw_Struct_Port DriNkroPort; Dri_Consumer_Struct_Port DriConsumerPort; Dri_Vendor_Struct_Port DriVendorPort; Mid_Struct_DeviceConfig DeviceConfig; QString TextConnection; QString TextLog; QString TextFunctionStatus; bool IsVisibleKeyStateValid = false; QVector VisibleUsageList; bool IsPhysicalKeyStateValid = false; QVector PhysicalUsageList; QVector LastPhysicalUsageList; bool IsSystemNumLockOn = false; QByteArray FunctionMaskBitmap; QByteArray KeyboardMaskBitmap; Lgc_FunctionButton_Config FunctionButtonConfig; bool IsAltThemeEnabled = false; void* WindowHandle = nullptr; bool IsConnected = false; bool IsStarted = false; Lgc_Core_Enum_SendTransport ActiveSendTransport = Lgc_Core_Enum_SendTransport_None; bool IsFunctionSequenceRecording = false; }; void Lgc_Core_Init(Lgc_Core_Struct_State* p_State); void Lgc_Core_SetWindowHandle(Lgc_Core_Struct_State* p_State, void* WindowHandle); void Lgc_Core_HandleNativeMessage(Lgc_Core_Struct_State* p_State, void* p_Message); void Lgc_Core_Start(Lgc_Core_Struct_State* p_State); void Lgc_Core_Close(Lgc_Core_Struct_State* p_State); void Lgc_Core_RefreshDevice(Lgc_Core_Struct_State* p_State); void Lgc_Core_ClearLog(Lgc_Core_Struct_State* p_State); bool Lgc_Core_Poll(Lgc_Core_Struct_State* p_State); bool Lgc_Core_ApplyFunctionConfig(Lgc_Core_Struct_State* p_State); bool Lgc_Core_SendTimeSync(Lgc_Core_Struct_State* p_State); bool Lgc_Core_SendThemeSwitch(Lgc_Core_Struct_State* p_State);