From 41ebdbd03d59d9821bd9aadbd8113e8f177d6a1f Mon Sep 17 00:00:00 2001 From: Mihai Dinculescu Date: Fri, 7 Oct 2022 17:41:43 +0100 Subject: [PATCH] Update the ffi lib --- Cargo.lock | 16 +++--- ffi/include/SimConnect.h | 105 +++++++++++++++++++++++++++++++-------- ffi/lib/SimConnect.lib | Bin 21892 -> 23700 bytes ffi/version.txt | 1 + 4 files changed, 93 insertions(+), 29 deletions(-) create mode 100644 ffi/version.txt diff --git a/Cargo.lock b/Cargo.lock index c63b766..1acc99c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -348,9 +348,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" -version = "1.0.101" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e90cde112c4b9690b8cbe810cba9ddd8bc1d7472e2cae317b69e9438c1cba7d2" +checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" dependencies = [ "proc-macro2", "quote", @@ -403,9 +403,9 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.36" +version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if", "pin-project-lite", @@ -415,9 +415,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" dependencies = [ "once_cell", ] diff --git a/ffi/include/SimConnect.h b/ffi/include/SimConnect.h index 186d1b8..68056db 100644 --- a/ffi/include/SimConnect.h +++ b/ffi/include/SimConnect.h @@ -11,11 +11,19 @@ #pragma once -#ifdef _MSFS_WASM -#ifndef SIMCONNECT_WASM_MODULE -#define SIMCONNECT_WASM_MODULE "env" -#endif -#endif +// = 140040130 +#if defined(_M_IX86) || defined(_M_X64) +//#pragma comment(linker,"/manifestdependency:\"type='win32' " \ +// "name='" "Microsoft..SimConnect" "' " \ +// "version='" "" "' " \ +// "processorArchitecture='amd64' " \ +// "publicKeyToken='" "" "'\"") +#endif // #if defined(_M_IX86) || defined(_M_X64) +#endif // #if _MSC_FULL_VER >= 140040130 +#endif // #ifndef SIMCONNECT_H_NOMANIFEST +// ASOBO-MOD/> #ifndef DWORD_MAX #define DWORD_MAX 0xFFFFFFFF @@ -117,6 +125,9 @@ SIMCONNECT_ENUM SIMCONNECT_RECV_ID{ #ifdef ENABLE_SIMCONNECT_EXPERIMENTAL SIMCONNECT_RECV_ID_PICK, #endif // ENABLE_SIMCONNECT_EXPERIMENTAL + SIMCONNECT_RECV_ID_EVENT_EX1, + SIMCONNECT_RECV_ID_FACILITY_DATA, + SIMCONNECT_RECV_ID_FACILITY_DATA_END, }; // Data data types @@ -278,6 +289,32 @@ SIMCONNECT_ENUM SIMCONNECT_FACILITY_LIST_TYPE{ SIMCONNECT_FACILITY_LIST_TYPE_COUNT // invalid }; +SIMCONNECT_ENUM SIMCONNECT_FACILITY_DATA_TYPE{ + SIMCONNECT_FACILITY_DATA_AIRPORT, + SIMCONNECT_FACILITY_DATA_RUNWAY, + SIMCONNECT_FACILITY_DATA_START, + SIMCONNECT_FACILITY_DATA_FREQUENCY, + SIMCONNECT_FACILITY_DATA_HELIPAD, + SIMCONNECT_FACILITY_DATA_APPROACH, + SIMCONNECT_FACILITY_DATA_APPROACH_TRANSITION, + SIMCONNECT_FACILITY_DATA_APPROACH_LEG, + SIMCONNECT_FACILITY_DATA_FINAL_APPROACH_LEG, + SIMCONNECT_FACILITY_DATA_MISSED_APPROACH_LEG, + SIMCONNECT_FACILITY_DATA_DEPARTURE, + SIMCONNECT_FACILITY_DATA_ARRIVAL, + SIMCONNECT_FACILITY_DATA_RUNWAY_TRANSITION, + SIMCONNECT_FACILITY_DATA_ENROUTE_TRANSITION, + SIMCONNECT_FACILITY_DATA_TAXI_POINT, + SIMCONNECT_FACILITY_DATA_TAXI_PARKING, + SIMCONNECT_FACILITY_DATA_TAXI_PATH, + SIMCONNECT_FACILITY_DATA_TAXI_NAME, + SIMCONNECT_FACILITY_DATA_JETWAY, + SIMCONNECT_FACILITY_DATA_VOR, + SIMCONNECT_FACILITY_DATA_NDB, + SIMCONNECT_FACILITY_DATA_WAYPOINT, + SIMCONNECT_FACILITY_DATA_ROUTE, +}; + SIMCONNECT_ENUM_FLAGS SIMCONNECT_VOR_FLAGS; // flags for SIMCONNECT_RECV_ID_VOR_LIST static const DWORD SIMCONNECT_RECV_ID_VOR_LIST_HAS_NAV_SIGNAL = 0x00000001; // Has Nav signal static const DWORD SIMCONNECT_RECV_ID_VOR_LIST_HAS_LOCALIZER = 0x00000002; // Has localizer @@ -440,6 +477,20 @@ SIMCONNECT_REFSTRUCT SIMCONNECT_RECV_EVENT_MULTIPLAYER_SESSION_ENDED : public SI // No event specific data, for now }; +SIMCONNECT_REFSTRUCT SIMCONNECT_RECV_EVENT_EX1 : public SIMCONNECT_RECV // when dwID == SIMCONNECT_RECV_ID_EVENT_EX1 +{ + static const DWORD UNKNOWN_GROUP = DWORD_MAX; + DWORD uGroupID; + DWORD uEventID; + + // Doesn t support array so, let s list + DWORD dwData0; + DWORD dwData1; + DWORD dwData2; + DWORD dwData3; + DWORD dwData4; +}; + // SIMCONNECT_DATA_RACE_RESULT SIMCONNECT_STRUCT SIMCONNECT_DATA_RACE_RESULT { @@ -596,6 +647,23 @@ SIMCONNECT_REFSTRUCT SIMCONNECT_RECV_VOR_LIST : public SIMCONNECT_RECV_FACILITIE SIMCONNECT_FIXEDTYPE_DATAV(SIMCONNECT_DATA_FACILITY_VOR, rgData, dwArraySize, U1 /*member of UnmanagedType enum*/, SIMCONNECT_DATA_FACILITY_VOR /*cli type*/); }; +SIMCONNECT_REFSTRUCT SIMCONNECT_RECV_FACILITY_DATA : public SIMCONNECT_RECV +{ + DWORD UserRequestId; + DWORD UniqueRequestId; + DWORD ParentUniqueRequestId; + DWORD Type; + DWORD IsListItem; + DWORD ItemIndex; + DWORD ListSize; + SIMCONNECT_DATAV(Data, Type, ); +}; + +SIMCONNECT_REFSTRUCT SIMCONNECT_RECV_FACILITY_DATA_END : public SIMCONNECT_RECV +{ + DWORD RequestId; +}; + #ifdef ENABLE_SIMCONNECT_EXPERIMENTAL SIMCONNECT_REFSTRUCT SIMCONNECT_RECV_PICK : public SIMCONNECT_RECV // when dwID == SIMCONNECT_RECV_ID_RESERVED_KEY @@ -664,26 +732,15 @@ SIMCONNECT_STRUCT SIMCONNECT_DATA_XYZ #pragma pack(pop) -//---------------------------------------------------------------------------- -// End of Struct definitions -//---------------------------------------------------------------------------- - -typedef void(CALLBACK *DispatchProc)(SIMCONNECT_RECV *pData, DWORD cbData, void *pContext); + //---------------------------------------------------------------------------- + // End of Struct definitions + //---------------------------------------------------------------------------- #if !defined(SIMCONNECTAPI) -#ifdef _MSFS_WASM -#ifdef __INTELLISENSE__ -#define MODULE_EXPORT -#define SIMCONNECTAPI extern "C" HRESULT -#else -#define MODULE_EXPORT __attribute__((visibility("default"))) -#define SIMCONNECTAPI extern "C" __attribute__((import_module(SIMCONNECT_WASM_MODULE))) HRESULT -#endif -#else -#define MODULE_EXPORT #define SIMCONNECTAPI extern "C" HRESULT __stdcall #endif -#endif + +typedef void(CALLBACK *DispatchProc)(SIMCONNECT_RECV *pData, DWORD cbData, void *pContext); SIMCONNECTAPI SimConnect_MapClientEventToSimEvent(HANDLE hSimConnect, SIMCONNECT_CLIENT_EVENT_ID EventID, const char *EventName = ""); SIMCONNECTAPI SimConnect_TransmitClientEvent(HANDLE hSimConnect, SIMCONNECT_OBJECT_ID ObjectID, SIMCONNECT_CLIENT_EVENT_ID EventID, DWORD dwData, SIMCONNECT_NOTIFICATION_GROUP_ID GroupID, SIMCONNECT_EVENT_FLAG Flags); @@ -757,5 +814,11 @@ SIMCONNECTAPI SimConnect_Text(HANDLE hSimConnect, SIMCONNECT_TEXT_TYPE type, flo SIMCONNECTAPI SimConnect_SubscribeToFacilities(HANDLE hSimConnect, SIMCONNECT_FACILITY_LIST_TYPE type, SIMCONNECT_DATA_REQUEST_ID RequestID); SIMCONNECTAPI SimConnect_UnsubscribeToFacilities(HANDLE hSimConnect, SIMCONNECT_FACILITY_LIST_TYPE type); SIMCONNECTAPI SimConnect_RequestFacilitiesList(HANDLE hSimConnect, SIMCONNECT_FACILITY_LIST_TYPE type, SIMCONNECT_DATA_REQUEST_ID RequestID); +SIMCONNECTAPI SimConnect_TransmitClientEvent_EX1(HANDLE hSimConnect, SIMCONNECT_OBJECT_ID ObjectID, SIMCONNECT_CLIENT_EVENT_ID EventID, SIMCONNECT_NOTIFICATION_GROUP_ID GroupID, SIMCONNECT_EVENT_FLAG Flags, DWORD dwData0, DWORD dwData1 = 0, DWORD dwData2 = 0, DWORD dwData3 = 0, DWORD dwData4 = 0); +SIMCONNECTAPI SimConnect_AddToFacilityDefinition(HANDLE hSimConnect, SIMCONNECT_DATA_DEFINITION_ID DefineID, const char *FieldName); +SIMCONNECTAPI SimConnect_RequestFacilityData(HANDLE hSimConnect, SIMCONNECT_DATA_DEFINITION_ID DefineID, SIMCONNECT_DATA_REQUEST_ID RequestID, const char *ICAO, const char *Region = ""); +SIMCONNECTAPI SimConnect_SubscribeToFacilities_EX1(HANDLE hSimConnect, SIMCONNECT_FACILITY_LIST_TYPE type, SIMCONNECT_DATA_REQUEST_ID newElemInRangeRequestID, SIMCONNECT_DATA_REQUEST_ID oldElemOutRangeRequestID); +SIMCONNECTAPI SimConnect_UnsubscribeToFacilities_EX1(HANDLE hSimConnect, SIMCONNECT_FACILITY_LIST_TYPE type, bool bUnsubscribeNewInRange, bool bUnsubscribeOldOutRange); +SIMCONNECTAPI SimConnect_RequestFacilitiesList_EX1(HANDLE hSimConnect, SIMCONNECT_FACILITY_LIST_TYPE type, SIMCONNECT_DATA_REQUEST_ID RequestID); #endif // _SIMCONNECT_H_ diff --git a/ffi/lib/SimConnect.lib b/ffi/lib/SimConnect.lib index 561f59ee99ec4e741b78ad8f5f6c66b8fa7934ec..9dcfcc1978371af38f650631f39773193665863e 100644 GIT binary patch delta 3194 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 nkx