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 561f59e..9dcfcc1 100644 Binary files a/ffi/lib/SimConnect.lib and b/ffi/lib/SimConnect.lib differ diff --git a/ffi/version.txt b/ffi/version.txt new file mode 100644 index 0000000..02e5117 --- /dev/null +++ b/ffi/version.txt @@ -0,0 +1 @@ +0.19.3.0