diff --git a/src/.editorconfig b/src/.editorconfig index cc2a89e..4dbbb81 100644 --- a/src/.editorconfig +++ b/src/.editorconfig @@ -3,3 +3,4 @@ indent_style=tab indent_size = 2 insert_final_newline=true +cpp_include_cleanup_excluded_files = MSFS_EventsEnum.h diff --git a/src/WASimClient/WASimClient.cpp b/src/WASimClient/WASimClient.cpp index a399e5b..fbbd79b 100644 --- a/src/WASimClient/WASimClient.cpp +++ b/src/WASimClient/WASimClient.cpp @@ -24,12 +24,9 @@ prior written authorization from the authors. #include #include -#include #include -#include #include -#include -#include +#include #include #include #include @@ -38,6 +35,7 @@ prior written authorization from the authors. #include #include #include +#include #define WIN32_LEAN_AND_MEAN #include @@ -46,11 +44,13 @@ prior written authorization from the authors. #define LOGFAULT_THREAD_NAME WSMCMND_CLIENT_NAME #include "client/WASimClient.h" -//#include "private/wasimclient_p.h" #include "utilities.h" #include "SimConnectHelper.h" #include "inipp.h" +#include "MSFS_EventsEnum.h" // from MSFS2024_SDK, for key_events.h +#include "key_events.h" + namespace WASimCommander::Client { @@ -2004,6 +2004,16 @@ HRESULT WASimClient::list(LookupItemType itemsType) HRESULT WASimClient::lookup(LookupItemType itemType, const std::string &itemName, int32_t *piResult) { + // Short-circuit Key Event ID lookups from local source + if (itemType == LookupItemType::KeyEventId) { + const int32_t keyId = Utilities::getKeyEventId(itemName); + if (keyId < 0) + LOG_DBG << "Key Event named " << quoted(itemName) << " was not found in local lookup table."; + else if (!!piResult) + *piResult = keyId; + return keyId < 0 ? E_FAIL : S_OK; + } + if (itemName.length() >= STRSZ_CMD) { LOG_ERR << "Item name length " << itemName.length() << " is greater then maximum size of " << STRSZ_CMD-1 << " bytes."; return E_INVALIDARG; diff --git a/src/WASimClient/WASimClient.vcxproj b/src/WASimClient/WASimClient.vcxproj index d003779..d75d039 100644 --- a/src/WASimClient/WASimClient.vcxproj +++ b/src/WASimClient/WASimClient.vcxproj @@ -79,7 +79,7 @@ true - $(ProjectDir);$(SolutionDir)\shared;$(MSFS_SDK)\SimConnect SDK\include;$(IncludePath) + $(ProjectDir);$(SolutionDir)\shared;$(MSFS_SDK)SimConnect SDK\include;$(MSFS2024_SDK)WASM\include\MSFS\Types;$(IncludePath) $(MSFS_SDK)\SimConnect SDK\lib\static;$(LibraryPath) true true @@ -87,21 +87,21 @@ false - $(ProjectDir);$(SolutionDir)\shared;$(MSFS_SDK)\SimConnect SDK\include;$(IncludePath) + $(ProjectDir);$(SolutionDir)\shared;$(MSFS_SDK)SimConnect SDK\include;$(MSFS2024_SDK)WASM\include\MSFS\Types;$(IncludePath) $(MSFS_SDK)\SimConnect SDK\lib\static;$(LibraryPath) true true false - $(ProjectDir);$(SolutionDir)\shared;$(MSFS_SDK)\SimConnect SDK\include;$(IncludePath) + $(ProjectDir);$(SolutionDir)\shared;$(MSFS_SDK)SimConnect SDK\include;$(MSFS2024_SDK)WASM\include\MSFS\Types;$(IncludePath) $(MSFS_SDK)\SimConnect SDK\lib\static;$(LibraryPath) true true false - $(ProjectDir);$(SolutionDir)\shared;$(MSFS_SDK)\SimConnect SDK\include;$(IncludePath) + $(ProjectDir);$(SolutionDir)\shared;$(MSFS_SDK)SimConnect SDK\include;$(MSFS2024_SDK)WASM\include\MSFS\Types;$(IncludePath) $(MSFS_SDK)\SimConnect SDK\lib\static;$(LibraryPath) true true @@ -252,10 +252,10 @@ + -