From dba780a86ebc3e9208388003da982d03e00142e3 Mon Sep 17 00:00:00 2001 From: TwinFan Date: Thu, 16 Jan 2025 23:16:55 +0100 Subject: [PATCH 1/7] Update to latest SDK, GitHub Actions --- .github/actions/build-lin/action.yml | 19 +- .github/actions/build-mac/action.yml | 19 +- .github/actions/build-win/action.yml | 4 +- .github/actions/sign-notarize/README.md | 6 +- .github/actions/sign-notarize/action.yml | 12 +- .github/actions/sign-notarize/sign-notarize | 55 +- .github/workflows/build.yml | 23 +- Example/CMakeLists.txt | 40 +- Example/LTAPI.xcodeproj/project.pbxproj | 23 +- Example/LTAPIExample.cpp | 19 +- .../SDK/CHeaders/Widgets/XPStandardWidgets.h | 238 +-- .../Lib/SDK/CHeaders/Widgets/XPUIGraphics.h | 213 ++- .../Lib/SDK/CHeaders/Widgets/XPWidgetDefs.h | 416 ++--- .../Lib/SDK/CHeaders/Widgets/XPWidgetUtils.h | 93 +- Example/Lib/SDK/CHeaders/Widgets/XPWidgets.h | 227 +-- Example/Lib/SDK/CHeaders/XPLM/XPLMCamera.h | 46 +- .../Lib/SDK/CHeaders/XPLM/XPLMDataAccess.h | 446 +++--- Example/Lib/SDK/CHeaders/XPLM/XPLMDefs.h | 107 +- Example/Lib/SDK/CHeaders/XPLM/XPLMDisplay.h | 1374 +++++++++++++---- Example/Lib/SDK/CHeaders/XPLM/XPLMGraphics.h | 192 +-- Example/Lib/SDK/CHeaders/XPLM/XPLMInstance.h | 50 +- Example/Lib/SDK/CHeaders/XPLM/XPLMMap.h | 275 ++-- Example/Lib/SDK/CHeaders/XPLM/XPLMMenus.h | 110 +- .../Lib/SDK/CHeaders/XPLM/XPLMNavigation.h | 374 ++++- Example/Lib/SDK/CHeaders/XPLM/XPLMPlanes.h | 122 +- Example/Lib/SDK/CHeaders/XPLM/XPLMPlugin.h | 128 +- .../Lib/SDK/CHeaders/XPLM/XPLMProcessing.h | 99 +- Example/Lib/SDK/CHeaders/XPLM/XPLMScenery.h | 172 +-- Example/Lib/SDK/CHeaders/XPLM/XPLMSound.h | 284 ++++ Example/Lib/SDK/CHeaders/XPLM/XPLMUtilities.h | 230 +-- Example/Lib/SDK/CHeaders/XPLM/XPLMWeather.h | 146 ++ Example/Lib/SDK/Libraries/Lin/XPLM_64.so | Bin 0 -> 3145744 bytes Example/Lib/SDK/Libraries/Lin/XPWidgets_64.so | Bin 0 -> 529136 bytes .../Libraries/Mac/XPLM.framework/Resources | 1 + .../Versions/C/Resources/Info.plist | 42 + .../Mac/XPLM.framework/Versions/C/XPLM | Bin 0 -> 692320 bytes .../Versions/C/_CodeSignature/CodeResources | 128 ++ .../Mac/XPLM.framework/Versions/Current | 1 + .../Mac/XPWidgets.framework/Resources | 1 + .../Versions/C/Resources/Info.plist | 42 + .../XPWidgets.framework/Versions/C/XPWidgets | Bin 0 -> 267536 bytes .../Versions/C/_CodeSignature/CodeResources | 128 ++ .../Mac/XPWidgets.framework/Versions/Current | 1 + Example/Lib/SDK/Libraries/Win/XPLM_64.lib | Bin 49542 -> 66256 bytes .../Lib/SDK/Libraries/Win/XPWidgets_64.lib | Bin 10830 -> 10830 bytes Example/Lib/SDK/README.txt | 98 +- LTAPI.h | 5 +- 47 files changed, 4013 insertions(+), 1996 deletions(-) mode change 100755 => 100644 Example/Lib/SDK/CHeaders/Widgets/XPStandardWidgets.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/Widgets/XPUIGraphics.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/Widgets/XPWidgetDefs.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/Widgets/XPWidgetUtils.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/Widgets/XPWidgets.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/XPLM/XPLMCamera.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/XPLM/XPLMDataAccess.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/XPLM/XPLMDefs.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/XPLM/XPLMDisplay.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/XPLM/XPLMGraphics.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/XPLM/XPLMMenus.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/XPLM/XPLMNavigation.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/XPLM/XPLMPlanes.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/XPLM/XPLMPlugin.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/XPLM/XPLMProcessing.h create mode 100644 Example/Lib/SDK/CHeaders/XPLM/XPLMSound.h mode change 100755 => 100644 Example/Lib/SDK/CHeaders/XPLM/XPLMUtilities.h create mode 100644 Example/Lib/SDK/CHeaders/XPLM/XPLMWeather.h create mode 100755 Example/Lib/SDK/Libraries/Lin/XPLM_64.so create mode 100755 Example/Lib/SDK/Libraries/Lin/XPWidgets_64.so create mode 120000 Example/Lib/SDK/Libraries/Mac/XPLM.framework/Resources create mode 100644 Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/C/Resources/Info.plist create mode 100755 Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/C/XPLM create mode 100644 Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/C/_CodeSignature/CodeResources create mode 120000 Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/Current create mode 120000 Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Resources create mode 100644 Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/C/Resources/Info.plist create mode 100755 Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/C/XPWidgets create mode 100644 Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/C/_CodeSignature/CodeResources create mode 120000 Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/Current diff --git a/.github/actions/build-lin/action.yml b/.github/actions/build-lin/action.yml index 2e29b61..877f7a5 100644 --- a/.github/actions/build-lin/action.yml +++ b/.github/actions/build-lin/action.yml @@ -19,6 +19,9 @@ outputs: xpl-file-name: description: Path to the resulting xpl file value: ${{ steps.return.outputs.xpl-file-name }} + pdb-file-name: + description: Path to the resulting .debug.zip file (debug symbol info) + value: ${{ steps.return.outputs.pdb-file-name }} runs: using: "composite" @@ -53,9 +56,23 @@ runs: echo Expected target build not found: "$TARGET_XPL" exit 1 fi + - name: Extract symbol info + shell: bash + env: + TARGET_XPL: ${{ inputs.baseDir }}build-lin/${{ inputs.archFolder }}/${{ inputs.pluginName }}.xpl + TARGET_DBG: ${{ inputs.baseDir }}build-lin/${{ inputs.archFolder }}/${{ inputs.pluginName }}.xpl.debug + TARGET_PDB: ${{ inputs.baseDir }}build-lin/${{ inputs.archFolder }}/${{ inputs.pluginName }}.xpl.debug.zip + run: | + objcopy --only-keep-debug "$TARGET_XPL" "$TARGET_DBG" + strip --strip-debug --strip-unneeded "$TARGET_XPL" + objcopy --add-gnu-debuglink="$TARGET_DBG" "$TARGET_XPL" + zip -9 "$TARGET_PDB" "$TARGET_DBG" - name: Return Value id: return shell: bash env: TARGET_XPL: ${{ inputs.baseDir }}build-lin/${{ inputs.archFolder }}/${{ inputs.pluginName }}.xpl - run: echo "::set-output name=xpl-file-name::$(echo $TARGET_XPL)" + TARGET_PDB: ${{ inputs.baseDir }}build-lin/${{ inputs.archFolder }}/${{ inputs.pluginName }}.xpl.debug.zip + run: | + echo "xpl-file-name=$(echo $TARGET_XPL)" >> $GITHUB_OUTPUT + echo "pdb-file-name=$(echo $TARGET_PDB)" >> $GITHUB_OUTPUT diff --git a/.github/actions/build-mac/action.yml b/.github/actions/build-mac/action.yml index 7931264..743bf2b 100644 --- a/.github/actions/build-mac/action.yml +++ b/.github/actions/build-mac/action.yml @@ -19,6 +19,9 @@ outputs: xpl-file-name: description: Path to the resulting xpl file value: ${{ steps.return.outputs.xpl-file-name }} + pdb-file-name: + description: Path to the resulting .dSYM.zip file (debug symbol info) + value: ${{ steps.return.outputs.pdb-file-name }} runs: using: "composite" @@ -52,9 +55,23 @@ runs: echo Expected target build not found: "$TARGET_XPL" exit 1 fi + - name: Extract symbol info + shell: bash + env: + TARGET_XPL: ${{ inputs.baseDir }}build-mac/${{ inputs.archFolder }}/${{ inputs.pluginName }}.xpl + TARGET_DSYM: ${{ inputs.baseDir }}build-mac/${{ inputs.archFolder }}/${{ inputs.pluginName }}.xpl.dSYM + TARGET_PDB: ${{ inputs.baseDir }}build-mac/${{ inputs.archFolder }}/${{ inputs.pluginName }}.xpl.dSYM.zip + run: | + dsymutil "$TARGET_XPL" + zip -9r "$TARGET_PDB" "$TARGET_DSYM" + rm -rf "$TARGET_DSYM" + strip -S "$TARGET_XPL" - name: Return Value id: return shell: bash env: TARGET_XPL: ${{ inputs.baseDir }}build-mac/${{ inputs.archFolder }}/${{ inputs.pluginName }}.xpl - run: echo "::set-output name=xpl-file-name::$(echo $TARGET_XPL)" + TARGET_PDB: ${{ inputs.baseDir }}build-mac/${{ inputs.archFolder }}/${{ inputs.pluginName }}.xpl.dSYM.zip + run: | + echo "xpl-file-name=$(echo $TARGET_XPL)" >> $GITHUB_OUTPUT + echo "pdb-file-name=$(echo $TARGET_PDB)" >> $GITHUB_OUTPUT diff --git a/.github/actions/build-win/action.yml b/.github/actions/build-win/action.yml index 1692ae6..9b273c5 100644 --- a/.github/actions/build-win/action.yml +++ b/.github/actions/build-win/action.yml @@ -45,5 +45,5 @@ runs: TARGET_XPL: ${{ inputs.baseDir }}build-win/${{ inputs.pluginName }}.xpl TARGET_PDB: ${{ inputs.baseDir }}build-win/${{ inputs.pluginName }}.pdb run: | - echo "::set-output name=xpl-file-name::$(echo $TARGET_XPL)" - echo "::set-output name=pdb-file-name::$(echo $TARGET_PDB)" + echo "xpl-file-name=$(echo $TARGET_XPL)" >> $GITHUB_OUTPUT + echo "pdb-file-name=$(echo $TARGET_PDB)" >> $GITHUB_OUTPUT diff --git a/.github/actions/sign-notarize/README.md b/.github/actions/sign-notarize/README.md index c35605d..0bf799f 100644 --- a/.github/actions/sign-notarize/README.md +++ b/.github/actions/sign-notarize/README.md @@ -7,12 +7,12 @@ It waits for Apple's answer to notarization, which can take a couple of minutes! Parameter|Requied|Default|Description ---------|-------|-------|------------ -`bundleId`|yes||Plugin's bundle id, something like 'Author.plugin.NameOfPlugin `xplFileName`|yes||Path to just built xpl plugin `certificate`|yes||Base64 encoded .p12 certificate file `certPwd`|yes||Password of the .p12 certificate file -`notarizeUser`|yes||Username/EMail for notarization -`notarizeAppPwd`|yes||App-specific password for notarization +`notarizeUser`|yes||Apple ID for notarization service (parameter `--apple-id` to `notarytool`) +`notarizeTeam`|yes||Team ID for notarization service (parameter `--team-id` to `notarytool`) +`notarizeAppPwd`|yes||[App-specific password](https://support.apple.com/en-gb/HT204397) for notarization service (parameter `--password` to `notarytool`) ## What it does diff --git a/.github/actions/sign-notarize/action.yml b/.github/actions/sign-notarize/action.yml index cced8da..e7fd4e6 100644 --- a/.github/actions/sign-notarize/action.yml +++ b/.github/actions/sign-notarize/action.yml @@ -2,10 +2,7 @@ name: Sign/Notarize MacOS plugin description: Signs, then notarizes the plugin author: TwinFan -inputs: - bundleId: - description: "Plugin's bundle id, something like 'Author.plugin.NameOfPlugin" - required: true +inputs: xplFileName: description: "Path to just built xpl plugin" required: true @@ -16,7 +13,10 @@ inputs: description: "Password of the .p12 certificate file" required: true notarizeUser: - description: "Username/EMail for notarization" + description: "Apple-ID for notarization" + required: true + notarizeTeam: + description: "Team-ID for notarization" required: true notarizeAppPwd: description: "App-specific password for notarization" @@ -30,4 +30,4 @@ runs: run: | echo ${{ inputs.certificate }} | base64 --decode > certificate.p12 chmod a+x ${{ github.action_path }}/sign-notarize - ${{ github.action_path }}/sign-notarize "${{ inputs.xplFileName }}" "${{ inputs.bundleId }}" certificate.p12 "${{ inputs.certPwd }}" "${{ inputs.notarizeUser }}" "${{ inputs.notarizeAppPwd }}" + ${{ github.action_path }}/sign-notarize "${{ inputs.xplFileName }}" certificate.p12 "${{ inputs.certPwd }}" "${{ inputs.notarizeUser }}" "${{ inputs.notarizeTeam }}" "${{ inputs.notarizeAppPwd }}" diff --git a/.github/actions/sign-notarize/sign-notarize b/.github/actions/sign-notarize/sign-notarize index 6b148ac..5979369 100755 --- a/.github/actions/sign-notarize/sign-notarize +++ b/.github/actions/sign-notarize/sign-notarize @@ -3,11 +3,11 @@ # # Parameters # 1. Path to file to sign, then notarize -# 2. Bundle id to use during notarization -# 3. Signing ID file like 'certificate.p12' -# 4. Password for above p12 file -# 5. Username for notarization -# 6. App-specific password for notarization +# 2. Signing ID file like 'certificate.p12' +# 3. Password for above p12 file +# 4. Apple ID for notarization (parameter --apple-id to notarytool) +# 5. Team ID for notarization (parmeter --team-id to notarytool) +# 6. App-specific password for notarization (parameter --password to notarytool) set -eu @@ -18,33 +18,6 @@ function cleanup { security delete-keychain build.keychain } -# --- Function to check for notarization results - -check_notarization() { - local REQUID=$1 - local USERNAME=$2 - local USERPWD=$3 - local STATUS="in progress" - while [ "$STATUS" == "in progress" ] - do - echo "Wait 30s for results..." - sleep 30 - STATUS=`xcrun altool --notarization-info "$REQUID" -u "$USERNAME" -p "$USERPWD" | egrep -o '(in progress|success|invalid)'` - done - - case $STATUS in - success) echo ">>> SUCCESS <<<" - return 0 - ;; - invalid) echo "%%% INVALID %%%" - return 1 - ;; - *) echo "Unknown status $STATUS" - return 1 - ;; - esac -} - # ================================================================== # Read parameters @@ -55,10 +28,10 @@ then fi PATH_TO_FILE=$1 -BUNDLE_ID=$2 -SIGN_ID_FILE=$3 -SIGN_ID_PWD=$4 -NOTAR_USER=$5 +SIGN_ID_FILE=$2 +SIGN_ID_PWD=$3 +NOTAR_USER=$4 +NOTAR_TEAM=$5 NOTAR_PWD=$6 # --- Sign @@ -91,17 +64,9 @@ echo . # Can only send zip archives to notarization zip -v "$PATH_TO_FILE.zip" "$PATH_TO_FILE" -REQUID=`xcrun altool --notarize-app --primary-bundle-id "$BUNDLE_ID" --username "$NOTAR_USER" --password "$NOTAR_PWD" --file "$PATH_TO_FILE.zip" | egrep -o '([a-z0-9]+-){4}[a-z0-9]+'` +xcrun notarytool submit --wait --apple-id "$NOTAR_USER" --password "$NOTAR_PWD" --team-id "$NOTAR_TEAM" "$PATH_TO_FILE.zip" rm "$PATH_TO_FILE.zip" -# --- Check notarization results --- - -echo . -echo "--- Check notarization results ---" -echo . - -check_notarization "$REQUID" "$NOTAR_USER" "$NOTAR_PWD" - # Note: No stapling possible to .xpl files echo . diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4185ec5..4f927cd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,16 +10,17 @@ on: env: PRJ_BASE: Example/ # The base directory from which we build everything PRJ_NAME: LTAPIExample # The plugin's name, expected to be the .xpl file's name and used as the plugin folder name - PRJ_BUNDLEID: TwinFan.plugin.LTAPIExample jobs: ##################################### # Linux with GCC build-lin: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 + env: + platform: lin steps: - name: Checkout Code - uses: actions/checkout@v2 # must checkout before we can use our own actions + uses: actions/checkout@v4 # must checkout before we can use our own actions - name: Build uses: ./.github/actions/build-lin id: build @@ -32,14 +33,17 @@ jobs: pluginName: ${{ env.PRJ_NAME }} archFolder: lin_x64 xplFileName: "${{ steps.build.outputs.xpl-file-name }}" + pdbFileName: "${{ steps.build.outputs.pdb-file-name }}" ##################################### # MacOS with CMake/clang and sign/notarize in self-written script build-mac: - runs-on: macos-latest + runs-on: macos-14 + env: + platform: mac steps: - name: Checkout Code - uses: actions/checkout@v2 # must checkout before we can use our own actions + uses: actions/checkout@v4 # must checkout before we can use our own actions - name: Build uses: ./.github/actions/build-mac id: build @@ -53,19 +57,19 @@ jobs: shell: bash run: | if [ "$MACOS_CERTIFICATE" == "" ]; then - echo ::set-output name=secretspresent:: + echo "secretspresent=" >> $GITHUB_OUTPUT else - echo ::set-output name=secretspresent::true + echo "secretspresent=true" >> $GITHUB_OUTPUT fi - name: Codesign and Notarization if: ${{ steps.checksecrets.outputs.secretspresent }} uses: ./.github/actions/sign-notarize with: - bundleId: ${{ env.PRJ_BUNDLEID }} xplFileName: ${{ steps.build.outputs.xpl-file-name }} certificate: ${{ secrets.MACOS_CERTIFICATE }} certPwd: ${{ secrets.MACOS_CERT_PWD }} notarizeUser: ${{ secrets.NOTARIZATION_USERNAME }} + notarizeTeam: ${{ secrets.NOTARIZATION_TEAM }} notarizeAppPwd: ${{ secrets.NOTARIZATION_PASSWORD }} - name: Upload uses: ./.github/actions/upload-plugin @@ -73,6 +77,7 @@ jobs: pluginName: ${{ env.PRJ_NAME }} archFolder: mac_x64 xplFileName: ${{ steps.build.outputs.xpl-file-name }} + pdbFileName: "${{ steps.build.outputs.pdb-file-name }}" ##################################### # Windows with MS Visual Studio @@ -80,7 +85,7 @@ jobs: runs-on: windows-2022 steps: - name: Checkout Code - uses: actions/checkout@v2 # must checkout before we can use our own actions + uses: actions/checkout@v4 # must checkout before we can use our own actions - name: Build uses: ./.github/actions/build-win id: build diff --git a/Example/CMakeLists.txt b/Example/CMakeLists.txt index 16da097..bd7fc26 100644 --- a/Example/CMakeLists.txt +++ b/Example/CMakeLists.txt @@ -1,15 +1,33 @@ # LT_API build script. # -cmake_minimum_required(VERSION 3.9) -project(LT_API VERSION 1.0.0 DESCRIPTION "LiveTraffic API Example Plugin") +cmake_minimum_required(VERSION 3.16) + +# Mac: Need to tell early on that we want a cross platform build +if(DEFINED ENV{platform}) + message ("-- Platform is $ENV{platform}") + if($ENV{platform} STREQUAL "mac-x86") + message (" Building cross-platform for mac/x86_64") + set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "Archs to build") + elseif($ENV{platform} STREQUAL "mac-arm") + message (" Building cross-platform for mac/arm64") + set(CMAKE_OSX_ARCHITECTURES "arm64" CACHE STRING "Archs to build") + elseif($ENV{platform} STREQUAL "mac") + message (" Building cross-platform for both mac/x86_64 and mac/arm64") + set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE STRING "Archs to build") + endif() +else() + # No 'platform' defined could mean running from command line, assume we build universal image in one go via XCode + set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE STRING "Archs to build") +endif() -# By default, use optimized release configuration. -if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "") - set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE) -endif () +set(CMAKE_BUILD_TYPE RelWithDebInfo) -set(CMAKE_CXX_STANDARD 11) +project(LT_API VERSION 1.3.0 DESCRIPTION "LiveTraffic API Example Plugin") + +set(CMAKE_CXX_STANDARD 17) +set_property(GLOBAL PROPERTY CXX_STANDARD_REQUIRED 17) +set_property(GLOBAL PROPERTY CXX_STANDARD 17) # Set include directories used by our code and dependencies. include_directories("${CMAKE_CURRENT_SOURCE_DIR}/..") @@ -68,13 +86,9 @@ else() if(MSVC) # Use highest optimization level in Release builds add_compile_options(/GL) - elseif(APPLE) - add_compile_options(-O3 -fPIC) - elseif (UNIX OR MINGW) - # Use position-independent code and highest optimization level (FPS!). + else() + # Use position-independent code and highest optimization level add_compile_options(-O3 -fPIC) - # Strip symbols during linking - add_link_options(-s) endif() endif() diff --git a/Example/LTAPI.xcodeproj/project.pbxproj b/Example/LTAPI.xcodeproj/project.pbxproj index e1f7942..ca1530b 100755 --- a/Example/LTAPI.xcodeproj/project.pbxproj +++ b/Example/LTAPI.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -102,7 +102,8 @@ D607B16109A5563100699BC3 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1340; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1620; }; buildConfigurationList = D607B16209A5563100699BC3 /* Build configuration list for PBXProject "LTAPI" */; compatibilityVersion = "Xcode 3.2"; @@ -152,18 +153,21 @@ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DSTROOT = "$(XPLANE11_ROOT)/Resources/plugins/$(TARGETNAME)"; DYLIB_COMPATIBILITY_VERSION = ""; DYLIB_CURRENT_VERSION = ""; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; EXECUTABLE_EXTENSION = xpl; FRAMEWORK_SEARCH_PATHS = "$(XPSDK_ROOT)/Libraries/Mac"; GCC_C_LANGUAGE_STANDARD = c11; @@ -194,7 +198,7 @@ "$(HEADER_SEARCH_PATHS)", ); MACH_O_TYPE = mh_bundle; - MACOSX_DEPLOYMENT_TARGET = 10.10; + MACOSX_DEPLOYMENT_TARGET = 10.15; ONLY_ACTIVE_ARCH = YES; OTHER_LDFLAGS = ( "$(OTHER_LDFLAGS)", @@ -212,7 +216,7 @@ PRODUCT_NAME = "${TARGET_NAME}"; SDKROOT = macosx; SYMROOT = "build-mac"; - XPLANE11_ROOT = "$(USER_APPS_DIR)/X-Plane/Release"; + XPLANE11_ROOT = "$(USER_APPS_DIR)/X-Plane/12"; XPSDK_ROOT = Lib/SDK; }; name = Debug; @@ -234,15 +238,18 @@ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEAD_CODE_STRIPPING = YES; DSTROOT = "$(XPLANE11_ROOT)/Resources/plugins/$(TARGETNAME)"; DYLIB_COMPATIBILITY_VERSION = ""; DYLIB_CURRENT_VERSION = ""; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; EXECUTABLE_EXTENSION = xpl; FRAMEWORK_SEARCH_PATHS = "$(XPSDK_ROOT)/Libraries/Mac"; GCC_C_LANGUAGE_STANDARD = c11; @@ -273,7 +280,7 @@ "$(HEADER_SEARCH_PATHS)", ); MACH_O_TYPE = mh_bundle; - MACOSX_DEPLOYMENT_TARGET = 10.10; + MACOSX_DEPLOYMENT_TARGET = 10.15; OTHER_LDFLAGS = ( "$(OTHER_LDFLAGS)", "-Wl,-exported_symbol", @@ -290,7 +297,7 @@ PRODUCT_NAME = "${TARGET_NAME}"; SDKROOT = macosx; SYMROOT = "build-mac"; - XPLANE11_ROOT = "$(USER_APPS_DIR)/X-Plane/Release"; + XPLANE11_ROOT = "$(USER_APPS_DIR)/X-Plane/12"; XPSDK_ROOT = Lib/SDK; }; name = Release; @@ -300,13 +307,13 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ENABLE_OBJC_WEAK = YES; + DEAD_CODE_STRIPPING = YES; DEPLOYMENT_LOCATION = YES; INSTALL_PATH = mac_x64; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Lib/SDK/Libraries/Mac/XPLM.framework", ); - VALID_ARCHS = x86_64; }; name = Debug; }; @@ -315,13 +322,13 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ENABLE_OBJC_WEAK = YES; + DEAD_CODE_STRIPPING = YES; DEPLOYMENT_LOCATION = YES; INSTALL_PATH = mac_x64; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Lib/SDK/Libraries/Mac/XPLM.framework", ); - VALID_ARCHS = x86_64; }; name = Release; }; diff --git a/Example/LTAPIExample.cpp b/Example/LTAPIExample.cpp index e81e403..6755194 100755 --- a/Example/LTAPIExample.cpp +++ b/Example/LTAPIExample.cpp @@ -594,13 +594,24 @@ void draw_list_enhanced(XPLMWindowID in_window_id, void * /*in_refcon*/) // Makes a nice title to the enhanced window void SetEnhWndTitle(EnhAircraft* pAcOnCam) { + char szVersion[10]; char szTitle[150]; + + // Proper semantic versioning was introduced with LT v3.0.0 only + const int ver = LTAPIConnect::getLTVerNr(); + if (ver > 10000) + snprintf(szVersion, sizeof(szVersion), "%d.%d.%d", + ver / 10000, (ver % 10000) / 100, ver % 100); + else + snprintf(szVersion, sizeof(szVersion), "%.2f", + float(LTAPIConnect::getLTVerNr()) / 100.0f); + if (!pAcOnCam) { - snprintf(szTitle, sizeof(szTitle), "LTAPI Example: Enhanced List - LiveTraffic v%.2f %d", - float(LTAPIConnect::getLTVerNr()) / 100.0f, LTAPIConnect::getLTVerDate()); + snprintf(szTitle, sizeof(szTitle), "LTAPI Example: Enhanced List - LiveTraffic v%s %d", + szVersion, LTAPIConnect::getLTVerDate()); } else { - snprintf(szTitle, sizeof(szTitle), "LTAPI Example: Enhanced List - LiveTraffic v%.2f %d viewing %s", - float(LTAPIConnect::getLTVerNr()) / 100.0f, LTAPIConnect::getLTVerDate(), + snprintf(szTitle, sizeof(szTitle), "LTAPI Example: Enhanced List - LiveTraffic v%s %d viewing %s", + szVersion, LTAPIConnect::getLTVerDate(), pAcOnCam->getDescription().c_str()); } XPLMSetWindowTitle(g_winEnhanced, szTitle); diff --git a/Example/Lib/SDK/CHeaders/Widgets/XPStandardWidgets.h b/Example/Lib/SDK/CHeaders/Widgets/XPStandardWidgets.h old mode 100755 new mode 100644 index 42d4987..1903e87 --- a/Example/Lib/SDK/CHeaders/Widgets/XPStandardWidgets.h +++ b/Example/Lib/SDK/CHeaders/Widgets/XPStandardWidgets.h @@ -2,8 +2,8 @@ #define _XPStandardWidgets_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -18,13 +18,13 @@ * them by calling XPCreateWidget and then listening for special messages, * etc. * - * The standard widgets often send mesages to themselves when the user + * The standard widgets often send messages to themselves when the user * performs an event; these messages are sent up the widget hierarchy until * they are handled. So you can add a widget proc directly to a push button * (for example) to intercept the message when it is clicked, or you can put * one widget proc on a window for all of the push buttons in the window. Most * of these messages contain the original widget ID as a parameter so you can - * know which widget is messaging no matter who it is sent to. + * know which widget is messaging no matter who it is sent to. * */ @@ -39,8 +39,8 @@ extern "C" { ***************************************************************************/ /* * The main window widget class provides a "window" as the user knows it. - * These windows are dragable and can be selected. Use them to create floating - * windows and non-modal dialogs. + * These windows are draggable and can be selected. Use them to create + * floating windows and non-modal dialogs. * */ @@ -50,41 +50,41 @@ extern "C" { /* * Main Window Type Values * - * These type values are used to control the appearance of a main window. + * These type values are used to control the appearance of a main window. * */ enum { - /* The standard main window; pin stripes on XP7, metal frame on XP 6. */ + /* The standard main window; pin stripes on XP7, metal frame on XP 6. */ xpMainWindowStyle_MainWindow = 0, - /* A translucent dark gray window, like the one ATC messages appear in. */ + /* A translucent dark gray window. */ xpMainWindowStyle_Translucent = 1, }; /* - * Main Window Properties + * Main Window Properties * */ enum { - /* This property specifies the type of window. Set to one of the main window * - * types above. */ + /* This property specifies the type of window. Set to one of the main window * + * types above. */ xpProperty_MainWindowType = 1100, - /* This property specifies whether the main window has close boxes in its * - * corners. */ + /* This property specifies whether the main window has close boxes in its * + * corners. */ xpProperty_MainWindowHasCloseBoxes = 1200, }; /* - * MainWindow Messages + * MainWindow Messages * */ enum { - /* This message is sent when the close buttons are pressed for your window. */ + /* This message is sent when the close buttons for your window are pressed. */ xpMessage_CloseButtonPushed = 1200, @@ -96,7 +96,7 @@ enum { /* * X-Plane dialogs are divided into separate areas; the sub window widgets * allow you to make these areas. Create one main window and place several - * subwindows inside it. Then place your controls inside the subwindows. + * subwindows inside it. Then place your controls inside the subwindows. * */ @@ -106,29 +106,29 @@ enum { /* * SubWindow Type Values * - * These values control the appearance of the subwindow. + * These values control the appearance of the subwindow. * */ enum { - /* A panel that sits inside a main window. */ + /* A panel that sits inside a main window. */ xpSubWindowStyle_SubWindow = 0, - /* A screen that sits inside a panel for showing text information. */ + /* A screen that sits inside a panel for showing text information. */ xpSubWindowStyle_Screen = 2, - /* A list view for scrolling lists. */ + /* A list view for scrolling lists. */ xpSubWindowStyle_ListView = 3, }; /* - * SubWindow Properties + * SubWindow Properties * */ enum { - /* This property specifies the type of window. Set to one of the subwindow * - * types above. */ + /* This property specifies the type of window. Set to one of the subwindow * + * types above. */ xpProperty_SubWindowType = 1200, @@ -141,19 +141,19 @@ enum { * The button class provides a number of different button styles and * behaviors, including push buttons, radio buttons, check boxes, etc. The * button label appears on or next to the button depending on the button's - * appearance, or type. + * appearance or type. * - * The button's behavior is a separate property that dictates who it hilights - * and what kinds of messages it sends. Since behavior and type are different, - * you can do strange things like make check boxes that act as push buttons or - * push buttons with radio button behavior. + * The button's behavior is a separate property that dictates who it + * highlights and what kinds of messages it sends. Since behavior and type are + * different, you can do strange things like make check boxes that act as push + * buttons or push buttons with radio button behavior. * * In X-Plane 6 there were no check box graphics. The result is the following * behavior: in X-Plane * 6 all check box and radio buttons are round (radio-button style) buttons; * in X-Plane 7 they are all square (check-box style) buttons. In a future * version of X-Plane, the xpButtonBehavior enums will provide the correct - * graphic (check box or radio button) giving the expected result. + * graphic (check box or radio button) giving the expected result. * */ @@ -164,25 +164,25 @@ enum { * Button Types * * These define the visual appearance of buttons but not how they respond to - * the mouse. + * the mouse. * */ enum { - /* This is a standard push button, like an 'OK' or 'Cancel' button in a dialog* - * box. */ + /* This is a standard push button, like an 'OK' or 'Cancel' button in a dialog* + * box. */ xpPushButton = 0, - /* A check box or radio button. Use this and the button behaviors below to * - * get the desired behavior. */ + /* A check box or radio button. Use this and the button behaviors below to * + * get the desired behavior. */ xpRadioButton = 1, - /* A window close box. */ + /* A window close box. */ xpWindowCloseBox = 3, - /* A small down arrow. */ + /* A small down arrow. */ xpLittleDownArrow = 5, - /* A small up arrow. */ + /* A small up arrow. */ xpLittleUpArrow = 6, @@ -191,43 +191,43 @@ enum { /* * Button Behavior Values * - * These define how the button responds to mouse clicks. + * These define how the button responds to mouse clicks. * */ enum { - /* Standard push button behavior. The button hilites while the mouse is * - * clicked over it and unhilites when the mouse is moved outside of it or * - * released. If the mouse is released over the button, the * - * xpMsg_PushButtonPressed message is sent. */ + /* Standard push button behavior. The button highlights while the mouse is * + * clicked over it and unhighlights when the mouse is moved outside of it or * + * released. If the mouse is released over the button, the * + * xpMsg_PushButtonPressed message is sent. */ xpButtonBehaviorPushButton = 0, - /* Check box behavior. The button immediately toggles its value when the mouse* - * is clicked and sends out a xpMsg_ButtonStateChanged message. */ + /* Check box behavior. The button immediately toggles its value when the mouse* + * is clicked and sends out a xpMsg_ButtonStateChanged message. */ xpButtonBehaviorCheckBox = 1, - /* Radio button behavior. The button immediately sets its state to one and * - * sends out a xpMsg_ButtonStateChanged message if it was not already set to * - * one. You must turn off other radio buttons in a group in your code. */ + /* Radio button behavior. The button immediately sets its state to one and * + * sends out a xpMsg_ButtonStateChanged message if it was not already set to * + * one. You must turn off other radio buttons in a group in your code. */ xpButtonBehaviorRadioButton = 2, }; /* - * Button Properties + * Button Properties * */ enum { - /* This property sets the visual type of button. Use one of the button types * - * above. */ + /* This property sets the visual type of button. Use one of the button types * + * above. */ xpProperty_ButtonType = 1300, - /* This property sets the button's behavior. Use one of the button behaviors * - * above. */ + /* This property sets the button's behavior. Use one of the button behaviors * + * above. */ xpProperty_ButtonBehavior = 1301, - /* This property tells whether a check box or radio button is "checked" or * - * not. Not used for push buttons. */ + /* This property tells whether a check box or radio button is "checked" or * + * not. Not used for push buttons. */ xpProperty_ButtonState = 1302, @@ -239,21 +239,21 @@ enum { * These messages are sent by the button to itself and then up the widget * chain when the button is clicked. (You may intercept them by providing a * widget handler for the button itself or by providing a handler in a parent - * widget.) + * widget.) * */ enum { - /* This message is sent when the user completes a click and release in a * - * button with push button behavior. Parameter one of the message is the * - * widget ID of the button. This message is dispatched up the widget * - * hierarchy. */ + /* This message is sent when the user completes a click and release in a * + * button with push button behavior. Parameter one of the message is the * + * widget ID of the button. This message is dispatched up the widget * + * hierarchy. */ xpMsg_PushButtonPressed = 1300, - /* This message is sent when a button is clicked that has radio button or * - * check box behavior and its value changes. (Note that if the value changes * - * by setting a property you do not receive this message!) Parameter one is * - * the widget ID of the button, parameter 2 is the new state value, either * - * zero or one. This message is dispatched up the widget hierarchy. */ + /* This message is sent when a button is clicked that has radio button or * + * check box behavior and its value changes. (Note that if the value changes * + * by setting a property you do not receive this message!) Parameter one is * + * the widget ID of the button, parameter 2 is the new state value, either * + * zero or one. This message is dispatched up the widget hierarchy. */ xpMsg_ButtonStateChanged = 1301, @@ -267,7 +267,7 @@ enum { * selection and keyboard navigation. The contents of the text field are its * descriptor. (The descriptor changes as the user types.) * - * The text field can have a number of types, that effect the visual layout of + * The text field can have a number of types, that affect the visual layout of * the text field. The text field sends messages to itself so you may control * its behavior. * @@ -277,7 +277,7 @@ enum { * * WARNING: in X-Plane before 7.10 (including 6.70) null characters could * crash X-Plane. To prevent this, wrap this object with a filter function - * (more instructions can be found on the SDK website). + * (more instructions can be found on the SDK website). * */ @@ -287,72 +287,72 @@ enum { /* * Text Field Type Values * - * These control the look of the text field. + * These control the look of the text field. * */ enum { - /* A field for text entry. */ + /* A field for text entry. */ xpTextEntryField = 0, - /* A transparent text field. The user can type and the text is drawn, but no * - * background is drawn. You can draw your own background by adding a widget * - * handler and prehandling the draw message. */ + /* A transparent text field. The user can type and the text is drawn, but no * + * background is drawn. You can draw your own background by adding a widget * + * handler and prehandling the draw message. */ xpTextTransparent = 3, - /* A translucent edit field, dark gray. */ + /* A translucent edit field, dark gray. */ xpTextTranslucent = 4, }; /* - * Text Field Properties + * Text Field Properties * */ enum { - /* This is the character position the selection starts at, zero based. If it * - * is the same as the end insertion point, the insertion point is not a * - * selection. */ + /* This is the character position the selection starts at, zero based. If it * + * is the same as the end insertion point, the insertion point is not a * + * selection. */ xpProperty_EditFieldSelStart = 1400, - /* This is the character position of the end of the selection. */ + /* This is the character position of the end of the selection. */ xpProperty_EditFieldSelEnd = 1401, - /* This is the character position a drag was started at if the user is * - * dragging to select text, or -1 if a drag is not in progress. */ + /* This is the character position a drag was started at if the user is * + * dragging to select text, or -1 if a drag is not in progress. */ xpProperty_EditFieldSelDragStart = 1402, - /* This is the type of text field to display, from the above list. */ + /* This is the type of text field to display, from the above list. */ xpProperty_TextFieldType = 1403, - /* Set this property to 1 to password protect the field. Characters will be * - * drawn as *s even though the descriptor will contain plain-text. */ + /* Set this property to 1 to password protect the field. Characters will be * + * drawn as *s even though the descriptor will contain plain-text. */ xpProperty_PasswordMode = 1404, - /* The max number of characters you can enter, if limited. Zero means * - * unlimited. */ + /* The max number of characters you can enter, if limited. Zero means * + * unlimited. */ xpProperty_MaxCharacters = 1405, - /* The first visible character on the left. This effectively scrolls the text* - * field. */ + /* The first visible character on the left. This effectively scrolls the text* + * field. */ xpProperty_ScrollPosition = 1406, - /* The font to draw the field's text with. (An XPLMFontID.) */ + /* The font to draw the field's text with. (An XPLMFontID.) */ xpProperty_Font = 1407, - /* This is the active side of the insert selection. (Internal) */ + /* This is the active side of the insert selection. (Internal) */ xpProperty_ActiveEditSide = 1408, }; /* - * Text Field Messages + * Text Field Messages * */ enum { - /* The text field sends this message to itself when its text changes. It sends* - * the message up the call chain; param1 is the text field's widget ID. */ + /* The text field sends this message to itself when its text changes. It sends* + * the message up the call chain; param1 is the text field's widget ID. */ xpMsg_TextFieldChanged = 1400, @@ -364,7 +364,7 @@ enum { /* * A standard scroll bar or slider control. The scroll bar has a minimum, * maximum and current value that is updated when the user drags it. The - * scroll bar sends continuous messages as it is dragged. + * scroll bar sends continuous messages as it is dragged. * */ @@ -374,53 +374,53 @@ enum { /* * Scroll Bar Type Values * - * This defines how the scroll bar looks. + * This defines how the scroll bar looks. * */ enum { - /* A standard X-Plane scroll bar (with arrows on the ends). */ + /* A standard X-Plane scroll bar (with arrows on the ends). */ xpScrollBarTypeScrollBar = 0, - /* A slider, no arrows. */ + /* A slider, no arrows. */ xpScrollBarTypeSlider = 1, }; /* - * Scroll Bar Properties + * Scroll Bar Properties * */ enum { - /* The current position of the thumb (in between the min and max, inclusive) */ + /* The current position of the thumb (in between the min and max, inclusive) */ xpProperty_ScrollBarSliderPosition = 1500, - /* The value the scroll bar has when the thumb is in the lowest position. */ + /* The value the scroll bar has when the thumb is in the lowest position. */ xpProperty_ScrollBarMin = 1501, - /* The value the scroll bar has when the thumb is in the highest position. */ + /* The value the scroll bar has when the thumb is in the highest position. */ xpProperty_ScrollBarMax = 1502, - /* How many units to move the scroll bar when clicking next to the thumb. The * - * scroll bar always moves one unit when the arrows are clicked. */ + /* How many units to move the scroll bar when clicking next to the thumb. The * + * scroll bar always moves one unit when the arrows are clicked. */ xpProperty_ScrollBarPageAmount = 1503, - /* The type of scrollbar from the enums above. */ + /* The type of scrollbar from the enums above. */ xpProperty_ScrollBarType = 1504, - /* Used internally. */ + /* Used internally. */ xpProperty_ScrollBarSlop = 1505, }; /* - * Scroll Bar Messages + * Scroll Bar Messages * */ enum { - /* The scroll bar sends this message when the slider position changes. It * - * sends the message up the call chain; param1 is the Scroll Bar widget ID. */ + /* The scroll bar sends this message when the slider position changes. It * + * sends the message up the call chain; param1 is the scroll bar widget ID. */ xpMsg_ScrollBarSliderPositionChanged = 1500, @@ -432,7 +432,7 @@ enum { /* * A caption is a simple widget that shows its descriptor as a string, useful * for labeling parts of a window. It always shows its descriptor as its - * string and is otherwise transparent. + * string and is otherwise transparent. * */ @@ -440,12 +440,12 @@ enum { #define xpWidgetClass_Caption 6 /* - * Caption Properties + * Caption Properties * */ enum { - /* This property specifies whether the caption is lit; use lit captions * - * against screens. */ + /* This property specifies whether the caption is lit; use lit captions * + * against screens. */ xpProperty_CaptionLit = 1600, @@ -456,7 +456,7 @@ enum { ***************************************************************************/ /* * The general graphics widget can show one of many icons available from - * X-Plane. + * X-Plane. * */ @@ -466,7 +466,7 @@ enum { /* * General Graphics Types Values * - * These define the icon for the general graphics. + * These define the icon for the general graphics. * */ enum { @@ -512,11 +512,11 @@ enum { }; /* - * General Graphics Properties + * General Graphics Properties * */ enum { - /* This property controls the type of icon that is drawn. */ + /* This property controls the type of icon that is drawn. */ xpProperty_GeneralGraphicsType = 1700, @@ -533,17 +533,17 @@ enum { #define xpWidgetClass_Progress 8 /* - * Progress Indicator Properties + * Progress Indicator Properties * */ enum { - /* This is the current value of the progress indicator. */ + /* This is the current value of the progress indicator. */ xpProperty_ProgressPosition = 1800, - /* This is the minimum value, equivalent to 0% filled. */ + /* This is the minimum value, equivalent to 0% filled. */ xpProperty_ProgressMin = 1801, - /* This is the maximum value, equivalent to 100% filled. */ + /* This is the maximum value, equivalent to 100% filled. */ xpProperty_ProgressMax = 1802, diff --git a/Example/Lib/SDK/CHeaders/Widgets/XPUIGraphics.h b/Example/Lib/SDK/CHeaders/Widgets/XPUIGraphics.h old mode 100755 new mode 100644 index b70e0f6..83ed302 --- a/Example/Lib/SDK/CHeaders/Widgets/XPUIGraphics.h +++ b/Example/Lib/SDK/CHeaders/Widgets/XPUIGraphics.h @@ -2,8 +2,8 @@ #define _XPUIGraphics_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -27,9 +27,9 @@ extern "C" { * There are a few built-in window styles in X-Plane that you can use. * * Note that X-Plane 6 does not offer real shadow-compositing; you must make - * sure to put a window on top of another window of the right style to the - * shadows work, etc. This applies to elements with insets and shadows. The - * rules are: + * sure to put a window on top of another window of the right style to make + * the shadows work, etc. This applies to elements with insets and shadows. + * The rules are: * * Sub windows must go on top of main windows, and screens and list views on * top of subwindows. Only help and main windows can be over the main screen. @@ -39,23 +39,23 @@ extern "C" { * Some windows are scaled by stretching, some by repeating. The drawing * routines know which scaling method to use. The list view cannot be rescaled * in X-Plane 6 because it has both a repeating pattern and a gradient in one - * element. All other elements can be rescaled. + * element. All other elements can be rescaled. * */ enum { - /* An LCD screen that shows help. */ + /* An LCD screen that shows help. */ xpWindow_Help = 0, - /* A dialog box window. */ + /* A dialog box window. */ xpWindow_MainWindow = 1, - /* A panel or frame within a dialog box window. */ + /* A panel or frame within a dialog box window. */ xpWindow_SubWindow = 2, - /* An LCD screen within a panel to hold text displays. */ + /* An LCD screen within a panel to hold text displays. */ xpWindow_Screen = 4, - /* A list view within a panel for scrolling file names, etc. */ + /* A list view within a panel for scrolling file names, etc. */ xpWindow_ListView = 5, @@ -68,27 +68,27 @@ typedef int XPWindowStyle; * This routine draws a window of the given dimensions at the given offset on * the virtual screen in a given style. The window is automatically scaled as * appropriate using a bitmap scaling technique (scaling or repeating) as - * appropriate to the style. + * appropriate to the style. * */ WIDGET_API void XPDrawWindow( - int inX1, - int inY1, - int inX2, - int inY2, - XPWindowStyle inStyle); + int inX1, + int inY1, + int inX2, + int inY2, + XPWindowStyle inStyle); /* * XPGetWindowDefaultDimensions * * This routine returns the default dimensions for a window. Output is either - * a minimum or fixed value depending on whether the window is scalable. + * a minimum or fixed value depending on whether the window is scalable. * */ WIDGET_API void XPGetWindowDefaultDimensions( - XPWindowStyle inStyle, - int * outWidth, /* Can be NULL */ - int * outHeight); /* Can be NULL */ + XPWindowStyle inStyle, + int * outWidth, /* Can be NULL */ + int * outHeight); /* Can be NULL */ /* * XPElementStyle @@ -101,116 +101,116 @@ WIDGET_API void XPGetWindowDefaultDimensions( * In X-Plane 6 some elements must be drawn over metal. Some are scalable and * some are not. Any element can be drawn anywhere in X-Plane 7. * - * Scalable Axis Required Background + * Scalable Axis Required Background * */ enum { - /* x metal */ + /* x metal */ xpElement_TextField = 6, - /* none metal */ + /* none metal */ xpElement_CheckBox = 9, - /* none metal */ + /* none metal */ xpElement_CheckBoxLit = 10, - /* none window header */ + /* none window header */ xpElement_WindowCloseBox = 14, - /* none window header */ + /* none window header */ xpElement_WindowCloseBoxPressed = 15, - /* x metal */ + /* x metal */ xpElement_PushButton = 16, - /* x metal */ + /* x metal */ xpElement_PushButtonLit = 17, - /* none any */ + /* none any */ xpElement_OilPlatform = 24, - /* none any */ + /* none any */ xpElement_OilPlatformSmall = 25, - /* none any */ + /* none any */ xpElement_Ship = 26, - /* none any */ + /* none any */ xpElement_ILSGlideScope = 27, - /* none any */ + /* none any */ xpElement_MarkerLeft = 28, - /* none any */ + /* none any */ xpElement_Airport = 29, - /* none any */ + /* none any */ xpElement_Waypoint = 30, - /* none any */ + /* none any */ xpElement_NDB = 31, - /* none any */ + /* none any */ xpElement_VOR = 32, - /* none any */ + /* none any */ xpElement_RadioTower = 33, - /* none any */ + /* none any */ xpElement_AircraftCarrier = 34, - /* none any */ + /* none any */ xpElement_Fire = 35, - /* none any */ + /* none any */ xpElement_MarkerRight = 36, - /* none any */ + /* none any */ xpElement_CustomObject = 37, - /* none any */ + /* none any */ xpElement_CoolingTower = 38, - /* none any */ + /* none any */ xpElement_SmokeStack = 39, - /* none any */ + /* none any */ xpElement_Building = 40, - /* none any */ + /* none any */ xpElement_PowerLine = 41, - /* none metal */ + /* none metal */ xpElement_CopyButtons = 45, - /* none metal */ + /* none metal */ xpElement_CopyButtonsWithEditingGrid = 46, - /* x, y metal */ + /* x, y metal */ xpElement_EditingGrid = 47, - /* THIS CAN PROBABLY BE REMOVED */ + /* THIS CAN PROBABLY BE REMOVED */ xpElement_ScrollBar = 48, - /* none any */ + /* none any */ xpElement_VORWithCompassRose = 49, - /* none metal */ + /* none metal */ xpElement_Zoomer = 51, - /* x, y metal */ + /* x, y metal */ xpElement_TextFieldMiddle = 52, - /* none metal */ + /* none metal */ xpElement_LittleDownArrow = 53, - /* none metal */ + /* none metal */ xpElement_LittleUpArrow = 54, - /* none metal */ + /* none metal */ xpElement_WindowDragBar = 61, - /* none metal */ + /* none metal */ xpElement_WindowDragBarSmooth = 62, @@ -221,34 +221,33 @@ typedef int XPElementStyle; * XPDrawElement * * XPDrawElement draws a given element at an offset on the virtual screen in - * set dimensions. - * *Even* if the element is not scalable, it will be scaled if the width and - * height do not match the preferred dimensions; it'll just look ugly. Pass - * inLit to see the lit version of the element; if the element cannot be lit - * this is ignored. + * set dimensions. Even if the element is not scalable, it will be scaled if + * the width and height do not match the preferred dimensions; it'll just look + * ugly. Pass inLit to see the lit version of the element; if the element + * cannot be lit this is ignored. * */ WIDGET_API void XPDrawElement( - int inX1, - int inY1, - int inX2, - int inY2, - XPElementStyle inStyle, - int inLit); + int inX1, + int inY1, + int inX2, + int inY2, + XPElementStyle inStyle, + int inLit); /* * XPGetElementDefaultDimensions * * This routine returns the recommended or minimum dimensions of a given UI * element. outCanBeLit tells whether the element has both a lit and unlit - * state. Pass `NULL` to not receive any of these parameters. + * state. Pass NULL to not receive any of these parameters. * */ WIDGET_API void XPGetElementDefaultDimensions( - XPElementStyle inStyle, - int * outWidth, /* Can be NULL */ - int * outHeight, /* Can be NULL */ - int * outCanBeLit); /* Can be NULL */ + XPElementStyle inStyle, + int * outWidth, /* Can be NULL */ + int * outHeight, /* Can be NULL */ + int * outCanBeLit); /* Can be NULL */ /* * XPTrackStyle @@ -263,17 +262,17 @@ WIDGET_API void XPGetElementDefaultDimensions( * - ScrollBar: this is a standard scroll bar with arrows and a thumb to drag. * - Slider: this is a simple track with a ball in the middle that can be * slid. - * - Progress: this is a progress indicator showing how a long task is going. + * - Progress: this is a progress indicator showing how a long task is going. * */ enum { - /* not over metal can be lit can be rotated */ + /* not over metal can be lit can be rotated */ xpTrack_ScrollBar = 0, - /* over metal can be lit can be rotated */ + /* over metal can be lit can be rotated */ xpTrack_Slider = 1, - /* over metal cannot be lit cannot be rotated */ + /* over metal cannot be lit cannot be rotated */ xpTrack_Progress = 2, @@ -287,32 +286,32 @@ typedef int XPTrackStyle; * track picks the optimal orientation for these dimensions. Pass in the * track's minimum current and maximum values; the indicator will be * positioned appropriately. You can also specify whether the track is lit or - * not. + * not. * */ WIDGET_API void XPDrawTrack( - int inX1, - int inY1, - int inX2, - int inY2, - int inMin, - int inMax, - int inValue, - XPTrackStyle inTrackStyle, - int inLit); + int inX1, + int inY1, + int inX2, + int inY2, + int inMin, + int inMax, + int inValue, + XPTrackStyle inTrackStyle, + int inLit); /* * XPGetTrackDefaultDimensions * * This routine returns a track's default smaller dimension; all tracks are * scalable in the larger dimension. It also returns whether a track can be - * lit. + * lit. * */ WIDGET_API void XPGetTrackDefaultDimensions( - XPTrackStyle inStyle, - int * outWidth, - int * outCanBeLit); + XPTrackStyle inStyle, + int * outWidth, + int * outCanBeLit); /* * XPGetTrackMetrics @@ -328,24 +327,24 @@ WIDGET_API void XPGetTrackDefaultDimensions( * Besides orientation, you get five dimensions for the five parts of a * scrollbar, which are the down button, down area (area before the thumb), * the thumb, and the up area and button. For horizontal scrollers, the left - * button decreases; for vertical scrollers, the top button decreases. + * button decreases; for vertical scrollers, the top button decreases. * */ WIDGET_API void XPGetTrackMetrics( - int inX1, - int inY1, - int inX2, - int inY2, - int inMin, - int inMax, - int inValue, - XPTrackStyle inTrackStyle, - int * outIsVertical, - int * outDownBtnSize, - int * outDownPageSize, - int * outThumbSize, - int * outUpPageSize, - int * outUpBtnSize); + int inX1, + int inY1, + int inX2, + int inY2, + int inMin, + int inMax, + int inValue, + XPTrackStyle inTrackStyle, + int * outIsVertical, + int * outDownBtnSize, + int * outDownPageSize, + int * outThumbSize, + int * outUpPageSize, + int * outUpBtnSize); #ifdef __cplusplus } diff --git a/Example/Lib/SDK/CHeaders/Widgets/XPWidgetDefs.h b/Example/Lib/SDK/CHeaders/Widgets/XPWidgetDefs.h old mode 100755 new mode 100644 index c1b2341..a4fc1ba --- a/Example/Lib/SDK/CHeaders/Widgets/XPWidgetDefs.h +++ b/Example/Lib/SDK/CHeaders/Widgets/XPWidgetDefs.h @@ -2,8 +2,8 @@ #define _XPWidgetDefs_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -57,7 +57,7 @@ extern "C" { * text entry field, etc. * * Use the widget API to create widgets of various classes. You can nest them - * into trees of widgets to create complex user interfaces. + * into trees of widgets to create complex user interfaces. * */ @@ -68,7 +68,7 @@ extern "C" { * A Widget ID is an opaque unique non-zero handle identifying your widget. * Use 0 to specify "no widget". This type is defined as wide enough to hold a * pointer. You receive a widget ID when you create a new widget and then use - * that widget ID to further refer to the widget. + * that widget ID to further refer to the widget. * */ typedef void * XPWidgetID; @@ -84,41 +84,41 @@ typedef void * XPWidgetID; * widget; it then stays there for the life of the widget. * * Some property IDs are predefined by the widget package; you can make up - * your own property IDs as well. + * your own property IDs as well. * */ enum { - /* A window's refcon is an opaque value used by client code to find other data* - * based on it. */ + /* A window's refcon is an opaque value used by client code to find other data* + * based on it. */ xpProperty_Refcon = 0, - /* These properties are used by the utlities to implement dragging. */ + /* These properties are used by the utilities to implement dragging. */ xpProperty_Dragging = 1, xpProperty_DragXOff = 2, xpProperty_DragYOff = 3, - /* Is the widget hilited? (For widgets that support this kind of thing.) */ + /* Is the widget highlighted? (For widgets that support this kind of thing.) */ xpProperty_Hilited = 4, - /* Is there a C++ object attached to this widget? */ + /* Is there a C++ object attached to this widget? */ xpProperty_Object = 5, - /* If this property is 1, the widget package will use OpenGL to restrict * - * drawing to the Wiget's exposed rectangle. */ + /* If this property is 1, the widget package will use OpenGL to restrict * + * drawing to the Widget's exposed rectangle. */ xpProperty_Clip = 6, - /* Is this widget enabled (for those that have a disabled state too)? */ + /* Is this widget enabled (for those that have a disabled state too)? */ xpProperty_Enabled = 7, - /* NOTE: Property IDs 1 - 999 are reserved for the widgets library. * - * * - * NOTE: Property IDs 1000 - 9999 are allocated to the standard widget classes* - * provided with the library. * - * * - * Properties 1000 - 1099 are for widget class 0, 1100 - 1199 for widget class* - * 1, etc. */ + /* NOTE: Property IDs 1 - 999 are reserved for the widgets library. * + * * + * NOTE: Property IDs 1000 - 9999 are allocated to the standard widget classes* + * provided with the library. * + * * + * Properties 1000 - 1099 are for widget class 0, 1100 - 1199 for widget class* + * 1, etc. */ xpProperty_UserStart = 10000, @@ -129,16 +129,16 @@ typedef int XPWidgetPropertyID; * XPMouseState_t * * When the mouse is clicked or dragged, a pointer to this structure is passed - * to your widget function. + * to your widget function. * */ typedef struct { int x; int y; - /* Mouse Button number, left = 0 (right button not yet supported. */ + /* Mouse button number, left = 0 (right button not yet supported. */ int button; #if defined(XPLM200) - /* Scroll wheel delta (button in this case would be the wheel axis number). */ + /* Scroll wheel delta (button in this case would be the wheel axis number). */ int delta; #endif /* XPLM200 */ } XPMouseState_t; @@ -147,16 +147,16 @@ typedef struct { * XPKeyState_t * * When a key is pressed, a pointer to this struct is passed to your widget - * function. + * function. * */ typedef struct { - /* The ASCII key that was pressed. WARNING: this may be 0 for some non-ASCII * - * key sequences. */ + /* The ASCII key that was pressed. WARNING: this may be 0 for some non-ASCII * + * key sequences. */ char key; - /* The flags. Make sure to check this if you only want key-downs! */ + /* The flags. Make sure to check this if you only want key-downs! */ XPLMKeyFlags flags; - /* The virtual key code for the key */ + /* The virtual key code for the key */ char vkey; } XPKeyState_t; @@ -164,12 +164,12 @@ typedef struct { * XPWidgetGeometryChange_t * * This structure contains the deltas for your widget's geometry when it - * changes. + * changes. * */ typedef struct { int dx; - /* +Y = the widget moved up */ + /* +Y = the widget moved up */ int dy; int dwidth; int dheight; @@ -179,28 +179,28 @@ typedef struct { * XPDispatchMode * * The dispatching modes describe how the widgets library sends out messages. - * Currently there are three modes: + * Currently there are three modes: * */ enum { - /* The message will only be sent to the target widget. */ + /* The message will only be sent to the target widget. */ xpMode_Direct = 0, - /* The message is sent to the target widget, then up the chain of parents * - * until the message is handled or a parentless widget is reached. */ + /* The message is sent to the target widget, then up the chain of parents * + * until the message is handled or a parentless widget is reached. */ xpMode_UpChain = 1, - /* The message is sent to the target widget and then all of its children * - * recursively depth-first. */ + /* The message is sent to the target widget and then all of its children * + * recursively depth-first. */ xpMode_Recursive = 2, - /* The message is snet just to the target, but goes to every callback, even if* - * it is handled. */ + /* The message is sent just to the target, but goes to every callback, even if* + * it is handled. */ xpMode_DirectAllCallbacks = 3, - /* The message is only sent to the very first handler even if it is not * - * accepted. (This is really only useful for some internal widget library * - * functions.) */ + /* The message is only sent to the very first handler even if it is not * + * accepted. (This is really only useful for some internal widget library * + * functions.) */ xpMode_Once = 4, @@ -212,7 +212,7 @@ typedef int XPDispatchMode; * * Widget classes define predefined widget types. A widget class basically * specifies from a library the widget function to be used for the widget. - * Most widgets can be made right from classes. + * Most widgets can be made right from classes. * */ typedef int XPWidgetClass; @@ -229,215 +229,215 @@ typedef int XPWidgetClass; * XPWidgetMessage * * Widgets receive 32-bit messages indicating what action is to be taken or - * notifications of events. The list of messages may be expanded. + * notifications of events. The list of messages may be expanded. * */ enum { - /* No message, should not be sent. */ + /* No message, should not be sent. */ xpMsg_None = 0, - /* The create message is sent once per widget that is created with your widget* - * function and once for any widget that has your widget function attached. * - * * - * Dispatching: Direct * - * * - * Param 1: 1 if you are being added as a subclass, 0 if the widget is first * - * being created. */ + /* The create message is sent once per widget that is created with your widget* + * function and once for any widget that has your widget function attached. * + * * + * Dispatching: Direct * + * * + * Param 1: 1 if you are being added as a subclass, 0 if the widget is first * + * being created. */ xpMsg_Create = 1, - /* The destroy message is sent once for each message that is destroyed that * - * has your widget function. * - * * - * Dispatching: Direct for all * - * * - * Param 1: 1 if being deleted by a recursive delete to the parent, 0 for * - * explicit deletion. */ + /* The destroy message is sent once for each message that is destroyed that * + * has your widget function. * + * * + * Dispatching: Direct for all * + * * + * Param 1: 1 if being deleted by a recursive delete to the parent, 0 for * + * explicit deletion. */ xpMsg_Destroy = 2, - /* The paint message is sent to your widget to draw itself. The paint message * - * is the bare-bones message; in response you must draw yourself, draw your * - * children, set up clipping and culling, check for visibility, etc. If you * - * don't want to do all of this, ignore the paint message and a draw message * - * (see below) will be sent to you. * - * * - * Dispatching: Direct */ + /* The paint message is sent to your widget to draw itself. The paint message * + * is the bare-bones message; in response you must draw yourself, draw your * + * children, set up clipping and culling, check for visibility, etc. If you * + * don't want to do all of this, ignore the paint message and a draw message * + * (see below) will be sent to you. * + * * + * Dispatching: Direct */ xpMsg_Paint = 3, - /* The draw message is sent to your widget when it is time to draw yourself. * - * OpenGL will be set up to draw in 2-d global screen coordinates, but you * - * should use the XPLM to set up OpenGL state. * - * * - * Dispatching: Direct */ + /* The draw message is sent to your widget when it is time to draw yourself. * + * OpenGL will be set up to draw in 2-d global screen coordinates, but you * + * should use the XPLM to set up OpenGL state. * + * * + * Dispatching: Direct */ xpMsg_Draw = 4, - /* The key press message is sent once per key that is pressed. The first * - * parameter is the type of key code (integer or char) and the second is the * - * code itself. By handling this event, you consume the key stroke. * - * * - * Handling this message 'consumes' the keystroke; not handling it passes it * - * to your parent widget. * - * * - * Dispatching: Up Chain * - * * - * Param 1: A pointer to an XPKeyState_t structure with the keystroke. */ + /* The key press message is sent once per key that is pressed. The first * + * parameter is the type of key code (integer or char) and the second is the * + * code itself. By handling this event, you consume the key stroke. * + * * + * Handling this message 'consumes' the keystroke; not handling it passes it * + * to your parent widget. * + * * + * Dispatching: Up Chain * + * * + * Param 1: A pointer to an XPKeyState_t structure with the keystroke. */ xpMsg_KeyPress = 5, - /* Keyboard focus is being given to you. By handling this message you accept * - * keyboard focus. The first parameter will be one if a child of yours gave up* - * focus to you, 0 if someone set focus on you explicitly. * - * * - * Handling this message accepts focus; not handling refuses focus. * - * * - * Dispatching: direct * - * * - * Param 1: 1 if you are gaining focus because your child is giving it up, 0 * - * if someone is explicitly giving you focus. */ + /* Keyboard focus is being given to you. By handling this message you accept * + * keyboard focus. The first parameter will be one if a child of yours gave up* + * focus to you, 0 if someone set focus on you explicitly. * + * * + * Handling this message accepts focus; not handling refuses focus. * + * * + * Dispatching: direct * + * * + * Param 1: 1 if you are gaining focus because your child is giving it up, 0 * + * if someone is explicitly giving you focus. */ xpMsg_KeyTakeFocus = 6, - /* Keyboard focus is being taken away from you. The first parameter will be * - * one if you are losing focus because another widget is taking it, or 0 if * - * someone called the API to make you lose focus explicitly. * - * * - * Dispatching: Direct * - * * - * Param 1: 1 if focus is being taken by another widget, 0 if code requested * - * to remove focus. */ + /* Keyboard focus is being taken away from you. The first parameter will be 1 * + * if you are losing focus because another widget is taking it, or 0 if * + * someone called the API to make you lose focus explicitly. * + * * + * Dispatching: Direct * + * * + * Param 1: 1 if focus is being taken by another widget, 0 if code requested * + * to remove focus. */ xpMsg_KeyLoseFocus = 7, - /* You receive one mousedown event per click with a mouse-state structure * - * pointed to by parameter 1, by accepting this you eat the click, otherwise * - * your parent gets it. You will not receive drag and mouse up messages if you* - * do not accept the down message. * - * * - * Handling this message consumes the mouse click, not handling it passes it * - * to the next widget. You can act 'transparent' as a window by never handling* - * moues clicks to certain areas. * - * * - * Dispatching: Up chain NOTE: Technically this is direct dispatched, but the * - * widgets library will shop it to each widget until one consumes the click, * - * making it effectively "up chain". * - * * - * Param 1: A pointer to an XPMouseState_t containing the mouse status. */ + /* You receive one mousedown event per click with a mouse-state structure * + * pointed to by parameter 1. By accepting this you eat the click, otherwise * + * your parent gets it. You will not receive drag and mouse up messages if you* + * do not accept the down message. * + * * + * Handling this message consumes the mouse click, not handling it passes it * + * to the next widget. You can act 'transparent' as a window by never handling* + * moues clicks to certain areas. * + * * + * Dispatching: Up chain NOTE: Technically this is direct dispatched, but the * + * widgets library will ship it to each widget until one consumes the click, * + * making it effectively "up chain". * + * * + * Param 1: A pointer to an XPMouseState_t containing the mouse status. */ xpMsg_MouseDown = 8, - /* You receive a series of mouse drag messages (typically one per frame in the* - * sim) as the mouse is moved once you have accepted a mouse down message. * - * Parameter one points to a mouse-state structure describing the mouse * - * location. You will continue to receive these until the mouse button is * - * released. You may receive multiple mouse state messages with the same mouse* - * position. You will receive mouse drag events even if the mouse is dragged * - * out of your current or original bounds at the time of the mouse down. * - * * - * Dispatching: Direct * - * * - * Param 1: A pointer to an XPMouseState_t containing the mouse status. */ + /* You receive a series of mouse drag messages (typically one per frame in the* + * sim) as the mouse is moved once you have accepted a mouse down message. * + * Parameter one points to a mouse-state structure describing the mouse * + * location. You will continue to receive these until the mouse button is * + * released. You may receive multiple mouse state messages with the same mouse* + * position. You will receive mouse drag events even if the mouse is dragged * + * out of your current or original bounds at the time of the mouse down. * + * * + * Dispatching: Direct * + * * + * Param 1: A pointer to an XPMouseState_t containing the mouse status. */ xpMsg_MouseDrag = 9, - /* The mouseup event is sent once when the mouse button is released after a * - * drag or click. You only receive this message if you accept the mouseDown * - * message. Parameter one points to a mouse state structure. * - * * - * Dispatching: Direct * - * * - * Param 1: A pointer to an XPMouseState_t containing the mouse status. */ + /* The mouseup event is sent once when the mouse button is released after a * + * drag or click. You only receive this message if you accept the mouseDown * + * message. Parameter one points to a mouse state structure. * + * * + * Dispatching: Direct * + * * + * Param 1: A pointer to an XPMouseState_t containing the mouse status. */ xpMsg_MouseUp = 10, - /* Your geometry or a child's geometry is being changed. * - * * - * Dispatching: Up chain * - * * - * Param 1: The widget ID of the original reshaped target. * - * * - * Param 2: A pointer to a XPWidgetGeometryChange_t struct describing the * - * change. */ + /* Your geometry or a child's geometry is being changed. * + * * + * Dispatching: Up chain * + * * + * Param 1: The widget ID of the original reshaped target. * + * * + * Param 2: A pointer to a XPWidgetGeometryChange_t struct describing the * + * change. */ xpMsg_Reshape = 11, - /* Your exposed area has changed. * - * * - * Dispatching: Direct */ + /* Your exposed area has changed. * + * * + * Dispatching: Direct */ xpMsg_ExposedChanged = 12, - /* A child has been added to you. The child's ID is passed in parameter one. * - * * - * Dispatching: Direct * - * * - * Param 1: The Widget ID of the child being added. */ + /* A child has been added to you. The child's ID is passed in parameter one. * + * * + * Dispatching: Direct * + * * + * Param 1: The Widget ID of the child being added. */ xpMsg_AcceptChild = 13, - /* A child has been removed from to you. The child's ID is passed in parameter* - * one. * - * * - * Dispatching: Direct * - * * - * Param 1: The Widget ID of the child being removed. */ + /* A child has been removed from you. The child's ID is passed in parameter * + * one. * + * * + * Dispatching: Direct * + * * + * Param 1: The Widget ID of the child being removed. */ xpMsg_LoseChild = 14, - /* You now have a new parent, or have no parent. The parent's ID is passed in,* - * or 0 for no parent. * - * * - * Dispatching: Direct * - * * - * Param 1: The Widget ID of your parent */ + /* You now have a new parent, or have no parent. The parent's ID is passed in,* + * or 0 for no parent. * + * * + * Dispatching: Direct * + * * + * Param 1: The Widget ID of your parent */ xpMsg_AcceptParent = 15, - /* You or a child has been shown. Note that this does not include you being * - * shown because your parent was shown, you were put in a new parent, your * - * root was shown, etc. * - * * - * Dispatching: Up chain * - * * - * Param 1: The widget ID of the shown widget. */ + /* You or a child has been shown. Note that this does not include you being * + * shown because your parent was shown, you were put in a new parent, your * + * root was shown, etc. * + * * + * Dispatching: Up chain * + * * + * Param 1: The widget ID of the shown widget. */ xpMsg_Shown = 16, - /* You have been hidden. See limitations above. * - * * - * Dispatching: Up chain * - * * - * Param 1: The widget ID of the hidden widget. */ + /* You have been hidden. See limitations above. * + * * + * Dispatching: Up chain * + * * + * Param 1: The widget ID of the hidden widget. */ xpMsg_Hidden = 17, - /* Your descriptor has changed. * - * * - * Dispatching: Direct */ + /* Your descriptor has changed. * + * * + * Dispatching: Direct */ xpMsg_DescriptorChanged = 18, - /* A property has changed. Param 1 contains the property ID. * - * * - * Dispatching: Direct * - * * - * Param 1: The Property ID being changed. * - * * - * Param 2: The new property value */ + /* A property has changed. Param 1 contains the property ID. * + * * + * Dispatching: Direct * + * * + * Param 1: The Property ID being changed. * + * * + * Param 2: The new property value */ xpMsg_PropertyChanged = 19, #if defined(XPLM200) - /* The mouse wheel has moved. * - * * - * Return 1 to consume the mouse wheel move, or 0 to pass the message to a * - * parent. Dispatching: Up chain * - * * - * Param 1: A pointer to an XPMouseState_t containing the mouse status. */ + /* The mouse wheel has moved. * + * * + * Return 1 to consume the mouse wheel move, or 0 to pass the message to a * + * parent. Dispatching: Up chain * + * * + * Param 1: A pointer to an XPMouseState_t containing the mouse status. */ xpMsg_MouseWheel = 20, #endif /* XPLM200 */ #if defined(XPLM200) - /* The cursor is over your widget. If you consume this message, change the * - * XPLMCursorStatus value to indicate the desired result, with the same rules * - * as in XPLMDisplay.h. * - * * - * Return 1 to consume this message, 0 to pass it on. * - * * - * Dispatching: Up chain Param 1: A pointer to an XPMouseState_t struct * - * containing the mouse status. * - * * - * Param 2: A pointer to a XPLMCursorStatus - set this to the cursor result * - * you desire. */ + /* The cursor is over your widget. If you consume this message, change the * + * XPLMCursorStatus value to indicate the desired result, with the same rules * + * as in XPLMDisplay.h. * + * * + * Return 1 to consume this message, 0 to pass it on. * + * * + * Dispatching: Up chain Param 1: A pointer to an XPMouseState_t struct * + * containing the mouse status. * + * * + * Param 2: A pointer to a XPLMCursorStatus - set this to the cursor result * + * you desire. */ xpMsg_CursorAdjust = 21, #endif /* XPLM200 */ - /* NOTE: Message IDs 1000 - 9999 are allocated to the standard widget classes * - * provided with the library with 1000 - 1099 for widget class 0, 1100 - 1199 * - * for widget class 1, etc. Message IDs 10,000 and beyond are for plugin use. */ + /* NOTE: Message IDs 1000 - 9999 are allocated to the standard widget classes * + * provided with the library with 1000 - 1099 for widget class 0, 1100 - 1199 * + * for widget class 1, etc. Message IDs 10,000 and beyond are for plugin use. */ xpMsg_UserStart = 10000, @@ -453,17 +453,17 @@ typedef int XPWidgetMessage; * * This function defines your custom widget's behavior. It will be called by * the widgets library to send messages to your widget. The message and widget - * ID are passed in, as well as two ptr-width signed parameters whose meaning - * varies with the message. Return 1 to indicate that you have processed the - * message, 0 to indicate that you have not. For any message that is not - * understood, return 0. + * ID are passed in, as well as two pointer-width signed parameters whose + * meaning varies with the message. Return 1 to indicate that you have + * processed the message, 0 to indicate that you have not. For any message + * that is not understood, return 0. * */ typedef int (* XPWidgetFunc_t)( - XPWidgetMessage inMessage, - XPWidgetID inWidget, - intptr_t inParam1, - intptr_t inParam2); + XPWidgetMessage inMessage, + XPWidgetID inWidget, + intptr_t inParam1, + intptr_t inParam2); #ifdef __cplusplus } diff --git a/Example/Lib/SDK/CHeaders/Widgets/XPWidgetUtils.h b/Example/Lib/SDK/CHeaders/Widgets/XPWidgetUtils.h old mode 100755 new mode 100644 index ff757f7..60e4b95 --- a/Example/Lib/SDK/CHeaders/Widgets/XPWidgetUtils.h +++ b/Example/Lib/SDK/CHeaders/Widgets/XPWidgetUtils.h @@ -2,8 +2,8 @@ #define _XPWidgetUtils_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -25,12 +25,13 @@ * behavior. Remember that the last function you add has highest priority. * You can use this to change or augment the behavior of an existing * finished widget. + * * 2. You can call a widget function from inside your own widget function. * This allows you to include useful behaviors in custom-built widgets. A * number of the standard widgets get their behavior from this library. To * do this, call the behavior function from your function first. If it * returns 1, that means it handled the event and you don't need to; simply - * return 1. + * return 1. * */ @@ -72,7 +73,7 @@ extern "C" { /* * XPWidgetCreate_t * - * This structure contains all of the parameters needed to create a wiget. It + * This structure contains all of the parameters needed to create a widget. It * is used with XPUCreateWidgets to create widgets in bulk from an array. All * parameters correspond to those of XPCreateWidget except for the container * index. @@ -84,7 +85,7 @@ extern "C" { * * If the container index is NO_PARENT, the parent widget is specified as * NULL. If the container index is PARAM_PARENT, the widget passed into - * XPUCreateWidgets is used. + * XPUCreateWidgets is used. * */ typedef struct { @@ -94,9 +95,9 @@ typedef struct { int bottom; int visible; const char * descriptor; - /* Whether ethis widget is a root wiget */ + /* Whether this widget is a root widget */ int isRoot; - /* The index of the widget to contain within, or a constant */ + /* The index of the widget to be contained within, or a constant */ int containerIndex; XPWidgetClass widgetClass; } XPWidgetCreate_t; @@ -121,26 +122,26 @@ typedef struct { * * You can also pass in a widget ID that will be used when the widget's parent * is listed as PARAM_PARENT; this allows you to embed widgets created with - * XPUCreateWidgets in a widget created previously. + * XPUCreateWidgets in a widget created previously. * */ WIDGET_API void XPUCreateWidgets( - const XPWidgetCreate_t * inWidgetDefs, - int inCount, - XPWidgetID inParamParent, - XPWidgetID * ioWidgets); + const XPWidgetCreate_t * inWidgetDefs, + int inCount, + XPWidgetID inParamParent, + XPWidgetID * ioWidgets); /* * XPUMoveWidgetBy * - * Simply moves a widget by an amount, +x = right, +y=up, without resizing the - * widget. + * Simply moves a widget by an amount, +x = right, +y = up, without resizing + * the widget. * */ WIDGET_API void XPUMoveWidgetBy( - XPWidgetID inWidget, - int inDeltaX, - int inDeltaY); + XPWidgetID inWidget, + int inDeltaX, + int inDeltaY); /*************************************************************************** * LAYOUT MANAGERS @@ -148,7 +149,7 @@ WIDGET_API void XPUMoveWidgetBy( /* * The layout managers are widget behavior functions for handling where * widgets move. Layout managers can be called from a widget function or - * attached to a widget later. + * attached to a widget later. * */ @@ -158,14 +159,14 @@ WIDGET_API void XPUMoveWidgetBy( * * This function causes the widget to maintain its children in fixed position * relative to itself as it is resized. Use this on the top level 'window' - * widget for your window. + * widget for your window. * */ WIDGET_API int XPUFixedLayout( - XPWidgetMessage inMessage, - XPWidgetID inWidget, - intptr_t inParam1, - intptr_t inParam2); + XPWidgetMessage inMessage, + XPWidgetID inWidget, + intptr_t inParam1, + intptr_t inParam2); /*************************************************************************** * WIDGET PROC BEHAVIORS @@ -173,7 +174,7 @@ WIDGET_API int XPUFixedLayout( /* * These widget behavior functions add other useful behaviors to widgets. * These functions cannot be attached to a widget; they must be called from - * your widget function. + * your widget function. * */ @@ -183,47 +184,47 @@ WIDGET_API int XPUFixedLayout( * * This causes the widget to bring its window to the foreground if it is not * already. inEatClick specifies whether clicks in the background should be - * consumed by bringin the window to the foreground. + * consumed by bringing the window to the foreground. * */ WIDGET_API int XPUSelectIfNeeded( - XPWidgetMessage inMessage, - XPWidgetID inWidget, - intptr_t inParam1, - intptr_t inParam2, - int inEatClick); + XPWidgetMessage inMessage, + XPWidgetID inWidget, + intptr_t inParam1, + intptr_t inParam2, + int inEatClick); /* * XPUDefocusKeyboard * - * This causes a click in the widget to send keyboard focus back to X-Plane. - * This stops editing of any text fields, etc. + * This causes the widget to send keyboard focus back to X-Plane. This stops + * editing of any text fields, etc. * */ WIDGET_API int XPUDefocusKeyboard( - XPWidgetMessage inMessage, - XPWidgetID inWidget, - intptr_t inParam1, - intptr_t inParam2, - int inEatClick); + XPWidgetMessage inMessage, + XPWidgetID inWidget, + intptr_t inParam1, + intptr_t inParam2, + int inEatClick); /* * XPUDragWidget * * XPUDragWidget drags the widget in response to mouse clicks. Pass in not * only the event, but the global coordinates of the drag region, which might - * be a sub-region of your widget (for example, a title bar). + * be a sub-region of your widget (for example, a title bar). * */ WIDGET_API int XPUDragWidget( - XPWidgetMessage inMessage, - XPWidgetID inWidget, - intptr_t inParam1, - intptr_t inParam2, - int inLeft, - int inTop, - int inRight, - int inBottom); + XPWidgetMessage inMessage, + XPWidgetID inWidget, + intptr_t inParam1, + intptr_t inParam2, + int inLeft, + int inTop, + int inRight, + int inBottom); #ifdef __cplusplus } diff --git a/Example/Lib/SDK/CHeaders/Widgets/XPWidgets.h b/Example/Lib/SDK/CHeaders/Widgets/XPWidgets.h old mode 100755 new mode 100644 index f4423e2..f09885a --- a/Example/Lib/SDK/CHeaders/Widgets/XPWidgets.h +++ b/Example/Lib/SDK/CHeaders/Widgets/XPWidgets.h @@ -2,8 +2,8 @@ #define _XPWidgets_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -30,7 +30,8 @@ * - A text string descriptor, whose meaning varies from widget to widget. * - An arbitrary set of 32 bit integral properties defined by 32-bit integral * keys. This is how specific widgets store specific data. - * - A list of widget callbacks proc that implements the widgets behaviors. + * - A list of widget callback procedures that implements the widgets + * behaviors. * * The Widgets library sends messages to widgets to request specific behaviors * or notify the widget of things. @@ -61,7 +62,7 @@ * widget needs it or not. * - Any widget may be a 'root' widget, causing it to be drawn; there is no * relationship between widget class and rootness. Root widgets are - * imlemented as XPLMDisply windows. + * implemented as XPLMDisplay windows. * */ @@ -94,10 +95,10 @@ extern "C" { * descriptor. * - inIsRoot is 1 if this is going to be a root widget, 0 if it will not be. * - inContainer is the ID of this widget's container. It must be 0 for a root - * widget. for a non-root widget, pass the widget ID of the widget to place + * widget. For a non-root widget, pass the widget ID of the widget to place * this widget within. If this widget is not going to start inside another - * widget, pass 0; this new widget will then just be floating off in space - * (and will not be drawn until it is placed in a widget. + * widget, pass 0; this new widget will be created but will not be drawn + * until it is placed inside another widget. * - inClass is the class of the widget to draw. Use one of the predefined * class-IDs to create a standard widget. * @@ -105,19 +106,19 @@ extern "C" { * etc.) if it is placed within a widget that will be called. Root widgets are * always called. So it is possible to have whole chains of widgets that are * simply not called. You can preconstruct widget trees and then place them - * into root widgets later to activate them if you wish. + * into root widgets later to activate them if you wish. * */ WIDGET_API XPWidgetID XPCreateWidget( - int inLeft, - int inTop, - int inRight, - int inBottom, - int inVisible, - const char * inDescriptor, - int inIsRoot, - XPWidgetID inContainer, - XPWidgetClass inClass); + int inLeft, + int inTop, + int inRight, + int inBottom, + int inVisible, + const char * inDescriptor, + int inIsRoot, + XPWidgetID inContainer, + XPWidgetClass inClass); /* * XPCreateCustomWidget @@ -126,19 +127,19 @@ WIDGET_API XPWidgetID XPCreateWidget( * a class ID, you pass your widget callback function pointer defining the * widget. Use this function to define a custom widget. All parameters are the * same as XPCreateWidget, except that the widget class has been replaced with - * the widget function. + * the widget function. * */ WIDGET_API XPWidgetID XPCreateCustomWidget( - int inLeft, - int inTop, - int inRight, - int inBottom, - int inVisible, - const char * inDescriptor, - int inIsRoot, - XPWidgetID inContainer, - XPWidgetFunc_t inCallback); + int inLeft, + int inTop, + int inRight, + int inBottom, + int inVisible, + const char * inDescriptor, + int inIsRoot, + XPWidgetID inContainer, + XPWidgetFunc_t inCallback); /* * XPDestroyWidget @@ -148,12 +149,12 @@ WIDGET_API XPWidgetID XPCreateCustomWidget( * then this widget will be destroyed. (Furthermore, the widget's children * will be destroyed with the inDestroyChildren flag set to 1, so the * destruction will recurse down the widget tree.) If you pass 0 for this - * flag, the child widgets will simply end up with their parent set to 0. + * flag, direct child widgets will simply end up with their parent set to 0. * */ WIDGET_API void XPDestroyWidget( - XPWidgetID inWidget, - int inDestroyChildren); + XPWidgetID inWidget, + int inDestroyChildren); /* * XPSendMessageToWidget @@ -169,15 +170,15 @@ WIDGET_API void XPDestroyWidget( * * For each widget that receives the message (see the dispatching modes), each * widget function from the most recently installed to the oldest one receives - * the message in order until it is handled. + * the message in order until it is handled. * */ WIDGET_API int XPSendMessageToWidget( - XPWidgetID inWidget, - XPWidgetMessage inMessage, - XPDispatchMode inMode, - intptr_t inParam1, - intptr_t inParam2); + XPWidgetID inWidget, + XPWidgetMessage inMessage, + XPDispatchMode inMode, + intptr_t inParam1, + intptr_t inParam2); /*************************************************************************** * WIDGET POSITIONING AND VISIBILITY @@ -198,136 +199,136 @@ WIDGET_API int XPSendMessageToWidget( * NOTE: this routine does not reposition the sub widget in global * coordinates. If the container has layout management code, it will * reposition the subwidget for you, otherwise you must do it with - * SetWidgetGeometry. + * SetWidgetGeometry. * */ WIDGET_API void XPPlaceWidgetWithin( - XPWidgetID inSubWidget, - XPWidgetID inContainer); + XPWidgetID inSubWidget, + XPWidgetID inContainer); /* * XPCountChildWidgets * - * This routine returns the number of widgets another widget contains. + * This routine returns the number of widgets another widget contains. * */ WIDGET_API int XPCountChildWidgets( - XPWidgetID inWidget); + XPWidgetID inWidget); /* * XPGetNthChildWidget * * This routine returns the widget ID of a child widget by index. Indexes are - * 0 based, from 0 to one minus the number of widgets in the parent, - * inclusive. If the index is invalid, 0 is returned. + * 0 based, from 0 to the number of widgets in the parentone minus one, + * inclusive. If the index is invalid, 0 is returned. * */ WIDGET_API XPWidgetID XPGetNthChildWidget( - XPWidgetID inWidget, - int inIndex); + XPWidgetID inWidget, + int inIndex); /* * XPGetParentWidget * * Returns the parent of a widget, or 0 if the widget has no parent. Root - * widgets never have parents and therefore always return 0. + * widgets never have parents and therefore always return 0. * */ WIDGET_API XPWidgetID XPGetParentWidget( - XPWidgetID inWidget); + XPWidgetID inWidget); /* * XPShowWidget * * This routine makes a widget visible if it is not already. Note that if a * widget is not in a rooted widget hierarchy or one of its parents is not - * visible, it will still not be visible to the user. + * visible, it will still not be visible to the user. * */ WIDGET_API void XPShowWidget( - XPWidgetID inWidget); + XPWidgetID inWidget); /* * XPHideWidget * * Makes a widget invisible. See XPShowWidget for considerations of when a - * widget might not be visible despite its own visibility state. + * widget might not be visible despite its own visibility state. * */ WIDGET_API void XPHideWidget( - XPWidgetID inWidget); + XPWidgetID inWidget); /* * XPIsWidgetVisible * * This returns 1 if a widget is visible, 0 if it is not. Note that this * routine takes into consideration whether a parent is invisible. Use this - * routine to tell if the user can see the widget. + * routine to tell if the user can see the widget. * */ WIDGET_API int XPIsWidgetVisible( - XPWidgetID inWidget); + XPWidgetID inWidget); /* * XPFindRootWidget * * Returns the Widget ID of the root widget that contains the passed in widget - * or NULL if the passed in widget is not in a rooted hierarchy. + * or NULL if the passed in widget is not in a rooted hierarchy. * */ WIDGET_API XPWidgetID XPFindRootWidget( - XPWidgetID inWidget); + XPWidgetID inWidget); /* * XPBringRootWidgetToFront * - * This routine makes the specified widget be in the front most widget + * This routine makes the specified widget be in the frontmost widget * hierarchy. If this widget is a root widget, its widget hierarchy comes to * front, otherwise the widget's root is brought to the front. If this widget * is not in an active widget hiearchy (e.g. there is no root widget at the - * top of the tree), this routine does nothing. + * top of the tree), this routine does nothing. * */ WIDGET_API void XPBringRootWidgetToFront( - XPWidgetID inWidget); + XPWidgetID inWidget); /* * XPIsWidgetInFront * - * This routine returns true if this widget's hierarchy is the front most + * This routine returns true if this widget's hierarchy is the frontmost * hierarchy. It returns false if the widget's hierarchy is not in front, or - * if the widget is not in a rooted hierarchy. + * if the widget is not in a rooted hierarchy. * */ WIDGET_API int XPIsWidgetInFront( - XPWidgetID inWidget); + XPWidgetID inWidget); /* * XPGetWidgetGeometry * * This routine returns the bounding box of a widget in global coordinates. - * Pass NULL for any parameter you are not interested in. + * Pass NULL for any parameter you are not interested in. * */ WIDGET_API void XPGetWidgetGeometry( - XPWidgetID inWidget, - int * outLeft, /* Can be NULL */ - int * outTop, /* Can be NULL */ - int * outRight, /* Can be NULL */ - int * outBottom); /* Can be NULL */ + XPWidgetID inWidget, + int * outLeft, /* Can be NULL */ + int * outTop, /* Can be NULL */ + int * outRight, /* Can be NULL */ + int * outBottom); /* Can be NULL */ /* * XPSetWidgetGeometry * - * This function changes the bounding box of a widget. + * This function changes the bounding box of a widget. * */ WIDGET_API void XPSetWidgetGeometry( - XPWidgetID inWidget, - int inLeft, - int inTop, - int inRight, - int inBottom); + XPWidgetID inWidget, + int inLeft, + int inTop, + int inRight, + int inBottom); /* * XPGetWidgetForLocation @@ -344,34 +345,34 @@ WIDGET_API void XPSetWidgetGeometry( * NOTE: if a widget's geometry extends outside its parents geometry, it will * not be returned by this call for mouse locations outside the parent * geometry. The parent geometry limits the child's eligibility for mouse - * location. + * location. * */ WIDGET_API XPWidgetID XPGetWidgetForLocation( - XPWidgetID inContainer, - int inXOffset, - int inYOffset, - int inRecursive, - int inVisibleOnly); + XPWidgetID inContainer, + int inXOffset, + int inYOffset, + int inRecursive, + int inVisibleOnly); /* * XPGetWidgetExposedGeometry * * This routine returns the bounds of the area of a widget that is completely * within its parent widgets. Since a widget's bounding box can be outside its - * parent, part of its area will not be elligible for mouse clicks and should + * parent, part of its area will not be eligible for mouse clicks and should * not draw. Use XPGetWidgetGeometry to find out what area defines your * widget's shape, but use this routine to find out what area to actually draw * into. Note that the widget library does not use OpenGL clipping to keep - * frame rates up, although you could use it internally. + * frame rates up, although you could use it internally. * */ WIDGET_API void XPGetWidgetExposedGeometry( - XPWidgetID inWidgetID, - int * outLeft, /* Can be NULL */ - int * outTop, /* Can be NULL */ - int * outRight, /* Can be NULL */ - int * outBottom); /* Can be NULL */ + XPWidgetID inWidgetID, + int * outLeft, /* Can be NULL */ + int * outTop, /* Can be NULL */ + int * outRight, /* Can be NULL */ + int * outBottom); /* Can be NULL */ /*************************************************************************** * ACCESSING WIDGET DATA @@ -386,12 +387,12 @@ WIDGET_API void XPGetWidgetExposedGeometry( * descriptor is the text being edited. In other words, the usage for the text * varies from widget to widget, but this API provides a universal and * convenient way to get at it. While not all UI widgets need their - * descriptor, many do. + * descriptor, many do. * */ WIDGET_API void XPSetWidgetDescriptor( - XPWidgetID inWidget, - const char * inDescriptor); + XPWidgetID inWidget, + const char * inDescriptor); /* * XPGetWidgetDescriptor @@ -402,13 +403,13 @@ WIDGET_API void XPSetWidgetDescriptor( * descriptor; if you pass NULL for outDescriptor, you can get the * descriptor's length without getting its text. If the length of the * descriptor exceeds your buffer length, the buffer will not be null - * terminated (this routine has 'strncpy' semantics). + * terminated (this routine has 'strncpy' semantics). * */ WIDGET_API int XPGetWidgetDescriptor( - XPWidgetID inWidget, - char * outDescriptor, - int inMaxDescLength); + XPWidgetID inWidget, + char * outDescriptor, + int inMaxDescLength); /* * XPGetWidgetUnderlyingWindow @@ -418,23 +419,23 @@ WIDGET_API int XPGetWidgetDescriptor( * XPLMEnableFeature("XPLM_USE_NATIVE_WIDGET_WINDOWS", 1), you can use the * returned window ID for display APIs like XPLMSetWindowPositioningMode(), * allowing you to pop the widget window out into a real OS window, or move it - * into VR. + * into VR. * */ WIDGET_API XPLMWindowID XPGetWidgetUnderlyingWindow( - XPWidgetID inWidget); + XPWidgetID inWidget); /* * XPSetWidgetProperty * * This function sets a widget's property. Properties are arbitrary values - * associated by a widget by ID. + * associated by a widget by ID. * */ WIDGET_API void XPSetWidgetProperty( - XPWidgetID inWidget, - XPWidgetPropertyID inProperty, - intptr_t inValue); + XPWidgetID inWidget, + XPWidgetPropertyID inProperty, + intptr_t inValue); /* * XPGetWidgetProperty @@ -443,13 +444,13 @@ WIDGET_API void XPSetWidgetProperty( * is not defined. If you need to know whether the property is defined, pass a * pointer to an int for inExists; the existence of that property will be * returned in the int. Pass NULL for inExists if you do not need this - * information. + * information. * */ WIDGET_API intptr_t XPGetWidgetProperty( - XPWidgetID inWidget, - XPWidgetPropertyID inProperty, - int * inExists); /* Can be NULL */ + XPWidgetID inWidget, + XPWidgetPropertyID inProperty, + int * inExists); /* Can be NULL */ /*************************************************************************** * KEYBOARD MANAGEMENT @@ -469,29 +470,29 @@ WIDGET_API intptr_t XPGetWidgetProperty( * for X-Plane. * * Keyboard focus is not changed if the new widget will not accept it. For - * setting to X-Plane, keyboard focus is always accepted. + * setting to X-Plane, keyboard focus is always accepted. * */ WIDGET_API XPWidgetID XPSetKeyboardFocus( - XPWidgetID inWidget); + XPWidgetID inWidget); /* * XPLoseKeyboardFocus * * This causes the specified widget to lose focus; focus is passed to its * parent, or the next parent that will accept it. This routine does nothing - * if this widget does not have focus. + * if this widget does not have focus. * */ WIDGET_API void XPLoseKeyboardFocus( - XPWidgetID inWidget); + XPWidgetID inWidget); /* * XPGetWidgetWithFocus * * This routine returns the widget that has keyboard focus, or 0 if X-Plane * has keyboard focus or some other plugin window that does not have widgets - * has focus. + * has focus. * */ WIDGET_API XPWidgetID XPGetWidgetWithFocus(void); @@ -514,22 +515,22 @@ WIDGET_API XPWidgetID XPGetWidgetWithFocus(void); * * This provides a way to 'subclass' an existing widget. By providing a second * hook that only handles certain widget messages, you can customize or extend - * widget behavior. + * widget behavior. * */ WIDGET_API void XPAddWidgetCallback( - XPWidgetID inWidget, - XPWidgetFunc_t inNewCallback); + XPWidgetID inWidget, + XPWidgetFunc_t inNewCallback); /* * XPGetWidgetClassFunc * * Given a widget class, this function returns the callbacks that power that - * widget class. + * widget class. * */ WIDGET_API XPWidgetFunc_t XPGetWidgetClassFunc( - XPWidgetClass inWidgetClass); + XPWidgetClass inWidgetClass); #ifdef __cplusplus } diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMCamera.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMCamera.h old mode 100755 new mode 100644 index db930ef..8b88d28 --- a/Example/Lib/SDK/CHeaders/XPLM/XPLMCamera.h +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMCamera.h @@ -2,8 +2,8 @@ #define _XPLMCamera_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -30,7 +30,7 @@ * looking along for roll. * * You control the camera either either until the user selects a new view or - * permanently (the later being similar to how UDP camera control works). You + * permanently (the latter being similar to how UDP camera control works). You * control the camera by registering a callback per frame from which you * calculate the new camera positions. This guarantees smooth camera motion. * @@ -41,7 +41,7 @@ * not needed; simply update the datarefs for the pilot's head position. * * For custom exterior cameras, set the camera's mode to an external view - * first to get correct sound and 2-d panel behavior. + * first to get correct sound and 2-d panel behavior. * */ @@ -59,15 +59,15 @@ extern "C" { * XPLMCameraControlDuration * * This enumeration states how long you want to retain control of the camera. - * You can retain it indefinitely or until the user selects a new view. + * You can retain it indefinitely or until the user selects a new view. * */ enum { - /* Control the camera until the user picks a new view. */ + /* Control the camera until the user picks a new view. */ xplm_ControlCameraUntilViewChanges = 1, - /* Control the camera until your plugin is disabled or another plugin forcably* - * takes control. */ + /* Control the camera until your plugin is disabled or another plugin forcibly* + * takes control. */ xplm_ControlCameraForever = 2, @@ -78,11 +78,11 @@ typedef int XPLMCameraControlDuration; * XPLMCameraPosition_t * * This structure contains a full specification of the camera. X, Y, and Z are - * the camera's position in OpenGL coordiantes; pitch, roll, and yaw are + * the camera's position in OpenGL coordinates; pitch, roll, and yaw are * rotations from a camera facing flat north in degrees. Positive pitch means * nose up, positive roll means roll right, and positive yaw means yaw right, * all in degrees. Zoom is a zoom factor, with 1.0 meaning normal zoom and 2.0 - * magnifying by 2x (objects appear larger). + * magnifying by 2x (objects appear larger). * */ typedef struct { @@ -99,33 +99,33 @@ typedef struct { * XPLMCameraControl_f * * You use an XPLMCameraControl function to provide continuous control over - * the camera. You are passed in a structure in which to put the new camera + * the camera. You are passed a structure in which to put the new camera * position; modify it and return 1 to reposition the camera. Return 0 to * surrender control of the camera; camera control will be handled by X-Plane * on this draw loop. The contents of the structure as you are called are * undefined. * * If X-Plane is taking camera control away from you, this function will be - * called with inIsLosingControl set to 1 and ioCameraPosition NULL. + * called with inIsLosingControl set to 1 and ioCameraPosition NULL. * */ typedef int (* XPLMCameraControl_f)( - XPLMCameraPosition_t * outCameraPosition, /* Can be NULL */ - int inIsLosingControl, - void * inRefcon); + XPLMCameraPosition_t * outCameraPosition, /* Can be NULL */ + int inIsLosingControl, + void * inRefcon); /* * XPLMControlCamera * * This function repositions the camera on the next drawing cycle. You must * pass a non-null control function. Specify in inHowLong how long you'd like - * control (indefinitely or until a new view mode is set by the user). + * control (indefinitely or until a new view mode is set by the user). * */ XPLM_API void XPLMControlCamera( - XPLMCameraControlDuration inHowLong, - XPLMCameraControl_f inControlFunc, - void * inRefcon); + XPLMCameraControlDuration inHowLong, + XPLMCameraControl_f inControlFunc, + void * inRefcon); /* * XPLMDontControlCamera @@ -135,7 +135,7 @@ XPLM_API void XPLMControlCamera( * X-Plane will control the camera on the next cycle. * * For maximum compatibility you should not use this routine unless you are in - * posession of the camera. + * posession of the camera. * */ XPLM_API void XPLMDontControlCamera(void); @@ -145,7 +145,7 @@ XPLM_API void XPLMDontControlCamera(void); * * This routine returns 1 if the camera is being controlled, zero if it is * not. If it is and you pass in a pointer to a camera control duration, the - * current control duration will be returned. + * current control duration will be returned. * */ XPLM_API int XPLMIsCameraBeingControlled( @@ -154,11 +154,11 @@ XPLM_API int XPLMIsCameraBeingControlled( /* * XPLMReadCameraPosition * - * This function reads the current camera position. + * This function reads the current camera position. * */ XPLM_API void XPLMReadCameraPosition( - XPLMCameraPosition_t * outCameraPosition); + XPLMCameraPosition_t * outCameraPosition); #ifdef __cplusplus } diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMDataAccess.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMDataAccess.h old mode 100755 new mode 100644 index d8d1418..22c28ee --- a/Example/Lib/SDK/CHeaders/XPLM/XPLMDataAccess.h +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMDataAccess.h @@ -2,8 +2,8 @@ #define _XPLMDataAccess_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -27,7 +27,7 @@ * -------------- * * Data references are identified by verbose, permanent string names; by - * convention these names use path separates to form a hierarchy of datarefs, + * convention these names use path separators to form a hierarchy of datarefs, * e.g. (sim/cockpit/radios/nav1_freq_hz). The actual opaque numeric value of * the data reference, as returned by the XPLM API, is implementation defined * and changes each time X-Plane is launched; therefore you need to look up @@ -39,22 +39,23 @@ * Reading and writing data references is relatively fast (the cost is * equivalent to two function calls through function pointers). * - * X-Plane publishes over 4000 datarefs; a complete list may be found in the - * reference section of the SDK online documentation (from the SDK home page, - * choose Documentation). + * X-Plane publishes many thousands of datarefs; a complete list may be found + * in the reference section of the SDK online documentation (from the SDK home + * page, choose Documentation) and the Resources/plugins/DataRefs.txt file. * * Dataref Types * ------------- * * A note on typing: you must know the correct data type to read and write. * APIs are provided for reading and writing data in a number of ways. You can - * also double check the data type for a data ref. Automatic type conversion - * is not done for you. + * also double check the data type for a dataref. Automatic type conversion is + * not done for you. * * Dataref types are a set, e.g. a dataref can be more than one type. When * this happens, you can choose which API you want to use to read. For - * example, it is not uncommon for a dataref to be of type float and double. - * This means you can use either XPLMGetDatad or XPLMGetDataf to read it. + * example, it is not uncommon for a dataref to be available both as float and + * double. This means you can use either XPLMGetDatad or XPLMGetDataf to read + * it. * * Creating New Datarefs * --------------------- @@ -69,15 +70,33 @@ * A note for plugins sharing data with other plugins: the load order of * plugins is not guaranteed. To make sure that every plugin publishing data * has published their data references before other plugins try to subscribe, - * publish your data references in your start routine but resolve them the - * first time your 'enable' routine is called, or the first time they are - * needed in code. + * publish your data references in your start routine but resolve others' + * datarefs the first time your 'enable' routine is called, or the first time + * they are needed in code. * * When a plugin that created a dataref is unloaded, it becomes "orphaned". * The dataref handle continues to be usable, but the dataref is not writable, * and reading it will always return 0 (or 0 items for arrays). If the plugin * is reloaded and re-registers the dataref, the handle becomes un-orphaned - * and works again. + * and works again. + * + * Introspection: Finding All Datarefs + * ----------------------------------- + * + * In the XPLM400 API, it is possible for a plugin to iterate the entire set + * of datarefs. This functionality is meant only for "tool" add-ons, like + * dataref browsers; normally all add-ons should find the dataref they want + * by name. + * + * Because datarefs are never destroyed during a run of the simulator (they + * are orphaned when their providing plugin goes away until a new one + * re-registers the dataref), the set of datarefs for a given run of X-Plane + * can be enumerated by index. A plugin that wants to find all new datarefs + * can use XPLMCountDataRefs to find the number of datarefs and iterate only + * the ones with higher index numbers than the last iteration. + * + * Plugins can also receive notifications when datarefs are registered; see + * the XPLMPlugin feature-enable API for more details. * */ @@ -92,7 +111,7 @@ extern "C" { ***************************************************************************/ /* * These routines allow you to access data from within X-Plane and sometimes - * modify it. + * modify it. * */ @@ -100,10 +119,10 @@ extern "C" { /* * XPLMDataRef * - * A data ref is an opaque handle to data provided by the simulator or another + * A dataref is an opaque handle to data provided by the simulator or another * plugin. It uniquely identifies one variable (or array of variables) over * the lifetime of your plugin. You never hard code these values; you always - * get them from XPLMFindDataRef. + * get them from XPLMFindDataRef. * */ typedef void * XPLMDataRef; @@ -118,66 +137,128 @@ typedef void * XPLMDataRef; * * Data types each take a bit field; it is legal to have a single dataref be * more than one type of data. Whe this happens, you can pick any matching - * get/set API. + * get/set API. * */ enum { - /* Data of a type the current XPLM doesn't do. */ + /* Data of a type the current XPLM doesn't do. */ xplmType_Unknown = 0, - /* A single 4-byte integer, native endian. */ + /* A single 4-byte integer, native endian. */ xplmType_Int = 1, - /* A single 4-byte float, native endian. */ + /* A single 4-byte float, native endian. */ xplmType_Float = 2, - /* A single 8-byte double, native endian. */ + /* A single 8-byte double, native endian. */ xplmType_Double = 4, - /* An array of 4-byte floats, native endian. */ + /* An array of 4-byte floats, native endian. */ xplmType_FloatArray = 8, - /* An array of 4-byte integers, native endian. */ + /* An array of 4-byte integers, native endian. */ xplmType_IntArray = 16, - /* A variable block of data. */ + /* A variable block of data. */ xplmType_Data = 32, }; typedef int XPLMDataTypeID; +#if defined(XPLM400) +/* + * XPLMCountDataRefs + * + * Returns the total number of datarefs that have been registered in X-Plane. + * + */ +XPLM_API int XPLMCountDataRefs(void); +#endif /* XPLM400 */ + +#if defined(XPLM400) +/* + * XPLMGetDataRefsByIndex + * + * Given an offset and count, this function will return an array of + * XPLMDataRefs in that range. The offset/count idiom is useful for things + * like pagination. + * + */ +XPLM_API void XPLMGetDataRefsByIndex( + int offset, + int count, + XPLMDataRef * outDataRefs); +#endif /* XPLM400 */ + +#if defined(XPLM400) +/* + * XPLMDataRefInfo_t + * + * The XPLMDataRefInfo_t structure contains all of the information about a + * single data ref. The structure can be expanded in future SDK APIs to + * include more features. Always set the structSize member to the size of + * your struct in bytes! + * + */ +typedef struct { + /* Used to inform XPLMGetDatarefInfo() of the SDK version you compiled * + * against; should always be set to sizeof(XPLMDataRefInfo_t) */ + int structSize; + /* The full name/path of the data ref */ + const char * name; + XPLMDataTypeID type; + /* TRUE if the data ref permits writing to it. FALSE if it's read-only. */ + int writable; + /* The handle to the plugin that registered this dataref. */ + XPLMPluginID owner; +} XPLMDataRefInfo_t; +#endif /* XPLM400 */ + +#if defined(XPLM400) +/* + * XPLMGetDataRefInfo + * + * Give a data ref, this routine returns a populated struct containing the + * available information about the dataref. + * + */ +XPLM_API void XPLMGetDataRefInfo( + XPLMDataRef inDataRef, + XPLMDataRefInfo_t * outInfo); +#endif /* XPLM400 */ + /* * XPLMFindDataRef * - * Given a c-style string that names the data ref, this routine looks up the + * Given a C-style string that names the dataref, this routine looks up the * actual opaque XPLMDataRef that you use to read and write the data. The * string names for datarefs are published on the X-Plane SDK web site. * - * This function returns NULL if the data ref cannot be found. + * This function returns NULL if the dataref cannot be found. * * NOTE: this function is relatively expensive; save the XPLMDataRef this - * function returns for future use. Do not look up your data ref by string - * every time you need to read or write it. + * function returns for future use. Do not look up your dataref by string + * every time you need to read or write it. * */ XPLM_API XPLMDataRef XPLMFindDataRef( - const char * inDataRefName); + const char * inDataRefName); /* * XPLMCanWriteDataRef * - * Given a data ref, this routine returns true if you can successfully set the + * Given a dataref, this routine returns true if you can successfully set the * data, false otherwise. Some datarefs are read-only. * * NOTE: even if a dataref is marked writable, it may not act writable. This * can happen for datarefs that X-Plane writes to on every frame of * simulation. In some cases, the dataref is writable but you have to set a - * separate "override" dataref to 1 to stop X-Plane from writing it. + * separate "override" dataref to 1 to stop X-Plane from writing it. * */ XPLM_API int XPLMCanWriteDataRef( - XPLMDataRef inDataRef); + XPLMDataRef inDataRef); /* * XPLMIsDataRefGood @@ -190,23 +271,23 @@ XPLM_API int XPLMCanWriteDataRef( * complete plugin reload (in which case your plugin is reloaded anyway). * Orphaned datarefs can be safely read and return 0. Therefore you never need * to call XPLMIsDataRefGood to 'check' the safety of a dataref. - * (XPLMIsDatarefGood performs some slow checking of the handle validity, so - * it has a perormance cost.) + * (XPLMIsDataRefGood performs some slow checking of the handle validity, so + * it has a perormance cost.) * */ XPLM_API int XPLMIsDataRefGood( - XPLMDataRef inDataRef); + XPLMDataRef inDataRef); /* * XPLMGetDataRefTypes * - * This routine returns the types of the data ref for accessor use. If a data - * ref is available in multiple data types, the bit-wise OR of these types - * will be returned. + * This routine returns the types of the dataref for accessor use. If a + * dataref is available in multiple data types, the bit-wise OR of these types + * will be returned. * */ XPLM_API XPLMDataTypeID XPLMGetDataRefTypes( - XPLMDataRef inDataRef); + XPLMDataRef inDataRef); /*************************************************************************** * DATA ACCESSORS @@ -215,10 +296,10 @@ XPLM_API XPLMDataTypeID XPLMGetDataRefTypes( * These routines read and write the data references. For each supported data * type there is a reader and a writer. * - * If the data ref is orphaned or the plugin that provides it is disabled or + * If the dataref is orphaned, the plugin that provides it is disabled or * there is a type mismatch, the functions that read data will return 0 as a * default value or not modify the passed in memory. The plugins that write - * data will not write under these circumstances or if the data ref is + * data will not write under these circumstances or if the dataref is * read-only. * * NOTE: to keep the overhead of reading datarefs low, these routines do not @@ -227,7 +308,8 @@ XPLM_API XPLMDataTypeID XPLMGetDataRefTypes( * * For array-style datarefs, you specify the number of items to read/write and * the offset into the array; the actual number of items read or written is - * returned. This may be less to prevent an array-out-of-bounds error. + * returned. This may be less the number requested to prevent an + * array-out-of-bounds error. * */ @@ -235,70 +317,70 @@ XPLM_API XPLMDataTypeID XPLMGetDataRefTypes( /* * XPLMGetDatai * - * Read an integer data ref and return its value. The return value is the - * dataref value or 0 if the dataref is NULL or the plugin is disabled. + * Read an integer dataref and return its value. The return value is the + * dataref value or 0 if the dataref is NULL or the plugin is disabled. * */ XPLM_API int XPLMGetDatai( - XPLMDataRef inDataRef); + XPLMDataRef inDataRef); /* * XPLMSetDatai * - * Write a new value to an integer data ref. This routine is a no-op if the + * Write a new value to an integer dataref. This routine is a no-op if the * plugin publishing the dataref is disabled, the dataref is NULL, or the - * dataref is not writable. + * dataref is not writable. * */ XPLM_API void XPLMSetDatai( - XPLMDataRef inDataRef, - int inValue); + XPLMDataRef inDataRef, + int inValue); /* * XPLMGetDataf * * Read a single precision floating point dataref and return its value. The * return value is the dataref value or 0.0 if the dataref is NULL or the - * plugin is disabled. + * plugin is disabled. * */ XPLM_API float XPLMGetDataf( - XPLMDataRef inDataRef); + XPLMDataRef inDataRef); /* * XPLMSetDataf * - * Write a new value to a single precision floating point data ref. This + * Write a new value to a single precision floating point dataref. This * routine is a no-op if the plugin publishing the dataref is disabled, the - * dataref is NULL, or the dataref is not writable. + * dataref is NULL, or the dataref is not writable. * */ XPLM_API void XPLMSetDataf( - XPLMDataRef inDataRef, - float inValue); + XPLMDataRef inDataRef, + float inValue); /* * XPLMGetDatad * * Read a double precision floating point dataref and return its value. The * return value is the dataref value or 0.0 if the dataref is NULL or the - * plugin is disabled. + * plugin is disabled. * */ XPLM_API double XPLMGetDatad( - XPLMDataRef inDataRef); + XPLMDataRef inDataRef); /* * XPLMSetDatad * - * Write a new value to a double precision floating point data ref. This + * Write a new value to a double precision floating point dataref. This * routine is a no-op if the plugin publishing the dataref is disabled, the - * dataref is NULL, or the dataref is not writable. + * dataref is NULL, or the dataref is not writable. * */ XPLM_API void XPLMSetDatad( - XPLMDataRef inDataRef, - double inValue); + XPLMDataRef inDataRef, + double inValue); /* * XPLMGetDatavi @@ -314,40 +396,40 @@ XPLM_API void XPLMSetDatad( * Note: the semantics of array datarefs are entirely implemented by the * plugin (or X-Plane) that provides the dataref, not the SDK itself; the * above description is how these datarefs are intended to work, but a rogue - * plugin may have different behavior. + * plugin may have different behavior. * */ XPLM_API int XPLMGetDatavi( - XPLMDataRef inDataRef, - int * outValues, /* Can be NULL */ - int inOffset, - int inMax); + XPLMDataRef inDataRef, + int * outValues, /* Can be NULL */ + int inOffset, + int inMax); /* * XPLMSetDatavi * * Write part or all of an integer array dataref. The values passed by * inValues are written into the dataref starting at inOffset. Up to inCount - * values are written; however if the values would write "off the end" of the + * values are written; however if the values would write past the end of the * dataref array, then fewer values are written. * * Note: the semantics of array datarefs are entirely implemented by the * plugin (or X-Plane) that provides the dataref, not the SDK itself; the * above description is how these datarefs are intended to work, but a rogue - * plugin may have different behavior. + * plugin may have different behavior. * */ XPLM_API void XPLMSetDatavi( - XPLMDataRef inDataRef, - int * inValues, - int inoffset, - int inCount); + XPLMDataRef inDataRef, + int * inValues, + int inoffset, + int inCount); /* * XPLMGetDatavf * * Read a part of a single precision floating point array dataref. If you pass - * NULL for outVaules, the routine will return the size of the array, ignoring + * NULL for outValues, the routine will return the size of the array, ignoring * inOffset and inMax. * * If outValues is not NULL, then up to inMax values are copied from the @@ -358,14 +440,14 @@ XPLM_API void XPLMSetDatavi( * Note: the semantics of array datarefs are entirely implemented by the * plugin (or X-Plane) that provides the dataref, not the SDK itself; the * above description is how these datarefs are intended to work, but a rogue - * plugin may have different behavior. + * plugin may have different behavior. * */ XPLM_API int XPLMGetDatavf( - XPLMDataRef inDataRef, - float * outValues, /* Can be NULL */ - int inOffset, - int inMax); + XPLMDataRef inDataRef, + float * outValues, /* Can be NULL */ + int inOffset, + int inMax); /* * XPLMSetDatavf @@ -373,24 +455,24 @@ XPLM_API int XPLMGetDatavf( * Write part or all of a single precision floating point array dataref. The * values passed by inValues are written into the dataref starting at * inOffset. Up to inCount values are written; however if the values would - * write "off the end" of the dataref array, then fewer values are written. + * write past the end of the dataref array, then fewer values are written. * * Note: the semantics of array datarefs are entirely implemented by the * plugin (or X-Plane) that provides the dataref, not the SDK itself; the * above description is how these datarefs are intended to work, but a rogue - * plugin may have different behavior. + * plugin may have different behavior. * */ XPLM_API void XPLMSetDatavf( - XPLMDataRef inDataRef, - float * inValues, - int inoffset, - int inCount); + XPLMDataRef inDataRef, + float * inValues, + int inoffset, + int inCount); /* * XPLMGetDatab * - * Read a part of a byte array dataref. If you pass NULL for outVaules, the + * Read a part of a byte array dataref. If you pass NULL for outValues, the * routine will return the size of the array, ignoring inOffset and inMax. * * If outValues is not NULL, then up to inMax values are copied from the @@ -401,14 +483,14 @@ XPLM_API void XPLMSetDatavf( * Note: the semantics of array datarefs are entirely implemented by the * plugin (or X-Plane) that provides the dataref, not the SDK itself; the * above description is how these datarefs are intended to work, but a rogue - * plugin may have different behavior. + * plugin may have different behavior. * */ XPLM_API int XPLMGetDatab( - XPLMDataRef inDataRef, - void * outValue, /* Can be NULL */ - int inOffset, - int inMaxBytes); + XPLMDataRef inDataRef, + void * outValue, /* Can be NULL */ + int inOffset, + int inMaxBytes); /* * XPLMSetDatab @@ -421,14 +503,14 @@ XPLM_API int XPLMGetDatab( * Note: the semantics of array datarefs are entirely implemented by the * plugin (or X-Plane) that provides the dataref, not the SDK itself; the * above description is how these datarefs are intended to work, but a rogue - * plugin may have different behavior. + * plugin may have different behavior. * */ XPLM_API void XPLMSetDatab( - XPLMDataRef inDataRef, - void * inValue, - int inOffset, - int inLength); + XPLMDataRef inDataRef, + void * inValue, + int inOffset, + int inLength); /*************************************************************************** * PUBLISHING YOUR PLUGIN'S DATA @@ -448,7 +530,7 @@ XPLM_API void XPLMSetDatab( * Important: you must pick a prefix for your datarefs other than "sim/" - * this prefix is reserved for X-Plane. The X-Plane SDK website contains a * registry where authors can select a unique first word for dataref names, to - * prevent dataref collisions between plugins. + * prevent dataref collisions between plugins. * */ @@ -463,113 +545,113 @@ XPLM_API void XPLMSetDatab( * pointer you pass in your register routine; you can use it to locate plugin * variables, etc. * - * The semantics of your callbacks are the same as the dataref accessor above + * The semantics of your callbacks are the same as the dataref accessors above * - basically routines like XPLMGetDatai are just pass-throughs from a caller * to your plugin. Be particularly mindful in implementing array dataref * read-write accessors; you are responsible for avoiding overruns, supporting - * offset read/writes, and handling a read with a NULL buffer. + * offset read/writes, and handling a read with a NULL buffer. * */ typedef int (* XPLMGetDatai_f)( - void * inRefcon); + void * inRefcon); /* - * XPLMSetDatai_f + * XPLMSetDatai_f * */ typedef void (* XPLMSetDatai_f)( - void * inRefcon, - int inValue); + void * inRefcon, + int inValue); /* - * XPLMGetDataf_f + * XPLMGetDataf_f * */ typedef float (* XPLMGetDataf_f)( - void * inRefcon); + void * inRefcon); /* - * XPLMSetDataf_f + * XPLMSetDataf_f * */ typedef void (* XPLMSetDataf_f)( - void * inRefcon, - float inValue); + void * inRefcon, + float inValue); /* - * XPLMGetDatad_f + * XPLMGetDatad_f * */ typedef double (* XPLMGetDatad_f)( - void * inRefcon); + void * inRefcon); /* - * XPLMSetDatad_f + * XPLMSetDatad_f * */ typedef void (* XPLMSetDatad_f)( - void * inRefcon, - double inValue); + void * inRefcon, + double inValue); /* - * XPLMGetDatavi_f + * XPLMGetDatavi_f * */ typedef int (* XPLMGetDatavi_f)( - void * inRefcon, - int * outValues, /* Can be NULL */ - int inOffset, - int inMax); + void * inRefcon, + int * outValues, /* Can be NULL */ + int inOffset, + int inMax); /* - * XPLMSetDatavi_f + * XPLMSetDatavi_f * */ typedef void (* XPLMSetDatavi_f)( - void * inRefcon, - int * inValues, - int inOffset, - int inCount); + void * inRefcon, + int * inValues, + int inOffset, + int inCount); /* - * XPLMGetDatavf_f + * XPLMGetDatavf_f * */ typedef int (* XPLMGetDatavf_f)( - void * inRefcon, - float * outValues, /* Can be NULL */ - int inOffset, - int inMax); + void * inRefcon, + float * outValues, /* Can be NULL */ + int inOffset, + int inMax); /* - * XPLMSetDatavf_f + * XPLMSetDatavf_f * */ typedef void (* XPLMSetDatavf_f)( - void * inRefcon, - float * inValues, - int inOffset, - int inCount); + void * inRefcon, + float * inValues, + int inOffset, + int inCount); /* - * XPLMGetDatab_f + * XPLMGetDatab_f * */ typedef int (* XPLMGetDatab_f)( - void * inRefcon, - void * outValue, /* Can be NULL */ - int inOffset, - int inMaxLength); + void * inRefcon, + void * outValue, /* Can be NULL */ + int inOffset, + int inMaxLength); /* - * XPLMSetDatab_f + * XPLMSetDatab_f * */ typedef void (* XPLMSetDatab_f)( - void * inRefcon, - void * inValue, - int inOffset, - int inLength); + void * inRefcon, + void * inValue, + int inOffset, + int inLength); /* * XPLMRegisterDataAccessor @@ -581,40 +663,40 @@ typedef void (* XPLMSetDatab_f)( * necessary. Pass NULL for data types you do not support or write accessors * if you are read-only. * - * You are returned a data ref for the new item of data created. You can use - * this data ref to unregister your data later or read or write from it. + * You are returned a dataref for the new item of data created. You can use + * this dataref to unregister your data later or read or write from it. * */ XPLM_API XPLMDataRef XPLMRegisterDataAccessor( - const char * inDataName, - XPLMDataTypeID inDataType, - int inIsWritable, - XPLMGetDatai_f inReadInt, - XPLMSetDatai_f inWriteInt, - XPLMGetDataf_f inReadFloat, - XPLMSetDataf_f inWriteFloat, - XPLMGetDatad_f inReadDouble, - XPLMSetDatad_f inWriteDouble, - XPLMGetDatavi_f inReadIntArray, - XPLMSetDatavi_f inWriteIntArray, - XPLMGetDatavf_f inReadFloatArray, - XPLMSetDatavf_f inWriteFloatArray, - XPLMGetDatab_f inReadData, - XPLMSetDatab_f inWriteData, - void * inReadRefcon, - void * inWriteRefcon); + const char * inDataName, + XPLMDataTypeID inDataType, + int inIsWritable, + XPLMGetDatai_f inReadInt, + XPLMSetDatai_f inWriteInt, + XPLMGetDataf_f inReadFloat, + XPLMSetDataf_f inWriteFloat, + XPLMGetDatad_f inReadDouble, + XPLMSetDatad_f inWriteDouble, + XPLMGetDatavi_f inReadIntArray, + XPLMSetDatavi_f inWriteIntArray, + XPLMGetDatavf_f inReadFloatArray, + XPLMSetDatavf_f inWriteFloatArray, + XPLMGetDatab_f inReadData, + XPLMSetDatab_f inWriteData, + void * inReadRefcon, + void * inWriteRefcon); /* * XPLMUnregisterDataAccessor * * Use this routine to unregister any data accessors you may have registered. - * You unregister a data ref by the XPLMDataRef you get back from - * registration. Once you unregister a data ref, your function pointer will - * not be called anymore. + * You unregister a dataref by the XPLMDataRef you get back from registration. + * Once you unregister a dataref, your function pointer will not be called + * anymore. * */ XPLM_API void XPLMUnregisterDataAccessor( - XPLMDataRef inDataRef); + XPLMDataRef inDataRef); /*************************************************************************** * SHARING DATA BETWEEN MULTIPLE PLUGINS @@ -622,8 +704,8 @@ XPLM_API void XPLMUnregisterDataAccessor( /* * The data reference registration APIs from the previous section allow a * plugin to publish data in a one-owner manner; the plugin that publishes the - * data reference owns the real memory that the data ref uses. This is - * satisfactory for most cases, but there are also cases where plugnis need to + * data reference owns the real memory that the dataref uses. This is + * satisfactory for most cases, but there are also cases where plugins need to * share actual data. * * With a shared data reference, no one plugin owns the actual memory for the @@ -651,7 +733,7 @@ XPLM_API void XPLMUnregisterDataAccessor( * Shared data references solve two problems: if you need to have a data * reference used by several plugins but do not know which plugins will be * installed, or if all plugins sharing data need to be notified when that - * data is changed, use shared data references. + * data is changed, use shared data references. * */ @@ -662,17 +744,17 @@ XPLM_API void XPLMUnregisterDataAccessor( * An XPLMDataChanged_f is a callback that the XPLM calls whenever any other * plug-in modifies shared data. A refcon you provide is passed back to help * identify which data is being changed. In response, you may want to call one - * of the XPLMGetDataxxx routines to find the new value of the data. + * of the XPLMGetDataxxx routines to find the new value of the data. * */ typedef void (* XPLMDataChanged_f)( - void * inRefcon); + void * inRefcon); /* * XPLMShareData * * This routine connects a plug-in to shared data, creating the shared data if - * necessary. inDataName is a standard path for the data ref, and inDataType + * necessary. inDataName is a standard path for the dataref, and inDataType * specifies the type. This function will create the data if it does not * exist. If the data already exists but the type does not match, an error is * returned, so it is important that plug-in authors collaborate to establish @@ -685,14 +767,14 @@ typedef void (* XPLMDataChanged_f)( * the plug-in does not use global variables. * * A one is returned for successfully creating or finding the shared data; a - * zero if the data already exists but is of the wrong type. + * zero if the data already exists but is of the wrong type. * */ XPLM_API int XPLMShareData( - const char * inDataName, - XPLMDataTypeID inDataType, - XPLMDataChanged_f inNotificationFunc, - void * inNotificationRefcon); + const char * inDataName, + XPLMDataTypeID inDataType, + XPLMDataChanged_f inNotificationFunc, + void * inNotificationRefcon); /* * XPLMUnshareData @@ -700,14 +782,14 @@ XPLM_API int XPLMShareData( * This routine removes your notification function for shared data. Call it * when done with the data to stop receiving change notifications. Arguments * must match XPLMShareData. The actual memory will not necessarily be freed, - * since other plug-ins could be using it. + * since other plug-ins could be using it. * */ XPLM_API int XPLMUnshareData( - const char * inDataName, - XPLMDataTypeID inDataType, - XPLMDataChanged_f inNotificationFunc, - void * inNotificationRefcon); + const char * inDataName, + XPLMDataTypeID inDataType, + XPLMDataChanged_f inNotificationFunc, + void * inNotificationRefcon); #ifdef __cplusplus } diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMDefs.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMDefs.h old mode 100755 new mode 100644 index bb1fe2f..7ad9b89 --- a/Example/Lib/SDK/CHeaders/XPLM/XPLMDefs.h +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMDefs.h @@ -2,8 +2,8 @@ #define _XPLMDefs_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -14,11 +14,12 @@ * This file is contains the cross-platform and basic definitions for the * X-Plane SDK. * - * The preprocessor macros APL and IBM must be defined to specify the - * compilation target; define APL to 1 and IBM 0 to compile on Macintosh and - * APL to 0 and IBM to 1 for Windows. You must specify these macro definitions - * before including XPLMDefs.h or any other XPLM headers. You can do this - * using the -D command line option or a preprocessor header. + * The preprocessor macros APL, LIN and IBM must be defined to specify the + * compilation target; define APL to 1 to compile on Mac, IBM to 1 to compile + * on Windows and LIN to 1 to compile on Linux. Only one compilation target + * may be used at a time. You must specify these macro definitions before + * including XPLMDefs.h or any other XPLM headers. You can do this using the + * -D command line option or a preprocessor header. * */ @@ -29,9 +30,8 @@ extern "C" { #if IBM #include -#else -#include #endif +#include /*************************************************************************** * DLL Definitions ***************************************************************************/ @@ -42,7 +42,7 @@ extern "C" { * You can prefix your five required callbacks with the PLUGIN_API macro to * declare them as exported C functions. The XPLM_API macro identifies * functions that are provided to you via the plugin SDK. (Link against - * XPLM.lib to use these functions.) + * XPLM.lib to use these functions.) * */ @@ -125,7 +125,7 @@ extern "C" { * GLOBAL DEFINITIONS ***************************************************************************/ /* - * These definitions are used in all parts of the SDK. + * These definitions are used in all parts of the SDK. * */ @@ -141,9 +141,9 @@ extern "C" { * reloading of plugins that are part of the user's aircraft. * * For persistent identification of plug-ins, use XPLMFindPluginBySignature in - * XPLMUtiltiies.h + * XPLMUtiltiies.h . * - * -1 indicates no plug-in. + * -1 indicates no plug-in. * */ typedef int XPLMPluginID; @@ -154,8 +154,8 @@ typedef int XPLMPluginID; /* X-Plane itself */ #define XPLM_PLUGIN_XPLANE (0) -/* The current XPLM revision is 3.03 (303). */ -#define kXPLM_Version (303) +/* The current XPLM revision is 4.1.1 (411). */ +#define kXPLM_Version (411) /* * XPLMKeyFlags @@ -163,31 +163,31 @@ typedef int XPLMPluginID; * These bitfields define modifier keys in a platform independent way. When a * key is pressed, a series of messages are sent to your plugin. The down * flag is set in the first of these messages, and the up flag in the last. - * While the key is held down, messages are sent with neither to indicate that - * the key is being held down as a repeated character. + * While the key is held down, messages are sent with neither flag set to + * indicate that the key is being held down as a repeated character. * * The control flag is mapped to the control flag on Macintosh and PC. * Generally X-Plane uses the control key and not the command key on * Macintosh, providing a consistent interface across platforms that does not * necessarily match the Macintosh user interface guidelines. There is not * yet a way for plugins to access the Macintosh control keys without using - * #ifdefed code. + * #ifdefed code. * */ enum { - /* The shift key is down */ + /* The shift key is down */ xplm_ShiftFlag = 1, - /* The option or alt key is down */ + /* The option or alt key is down */ xplm_OptionAltFlag = 2, - /* The control key is down* */ + /* The control key is down */ xplm_ControlFlag = 4, - /* The key is being pressed down */ + /* The key is being pressed down */ xplm_DownFlag = 8, - /* The key is being released */ + /* The key is being released */ xplm_UpFlag = 16, @@ -207,7 +207,7 @@ typedef int XPLMKeyFlags; * ASCII key codes take into account modifier keys; shift keys will affect * capitals and punctuation; control key combinations may have no vaild ASCII * and produce NULL. To detect control-key combinations, use virtual key - * codes, not ASCII keys. + * codes, not ASCII keys. * */ @@ -276,7 +276,7 @@ typedef int XPLMKeyFlags; * with users' abilities to use the native X-Plane key bindings. * 2. Some keys that do not exist on both Mac and PC keyboards are removed. * 3. Do not assume that the values of these keystrokes are interchangeable - * with MS v-keys. + * with MS v-keys. * */ @@ -507,6 +507,63 @@ typedef int XPLMKeyFlags; #define XPLM_VK_NUMPAD_EQ 0xBD +/* + * XPLMFixedString150_t + * + * A container for a fixed-size string buffer of 150 characters. + * + */ +typedef struct { + /* The size of the struct. */ + char buffer[150]; +} XPLMFixedString150_t; +#if defined(XPLM200) +/* + * XPLMCursorStatus + * + * XPLMCursorStatus describes how you would like X-Plane to manage the cursor. + * See XPLMHandleCursor_f for more info. + * + */ +enum { + /* X-Plane manages the cursor normally, plugin does not affect the cusrsor. */ + xplm_CursorDefault = 0, + + /* X-Plane hides the cursor. */ + xplm_CursorHidden = 1, + + /* X-Plane shows the cursor as the default arrow. */ + xplm_CursorArrow = 2, + + /* X-Plane shows the cursor but lets you select an OS cursor. */ + xplm_CursorCustom = 3, + + +}; +typedef int XPLMCursorStatus; +#endif /* XPLM200 */ +/* + * XPLMMouseStatus + * + * When the mouse is clicked, your mouse click routine is called + * repeatedly. It is first called with the mouse down message. It is + * then called zero or more times with the mouse-drag message, and finally + * it is called once with the mouse up message. All of these messages + * will be directed to the same window; you are guaranteed to not receive + * a drag or mouse-up event without first receiving the corresponding + * mouse-down. + * + */ +enum { + xplm_MouseDown = 1, + + xplm_MouseDrag = 2, + + xplm_MouseUp = 3, + + +}; +typedef int XPLMMouseStatus; #ifdef __cplusplus } #endif diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMDisplay.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMDisplay.h old mode 100755 new mode 100644 index 48c7a70..ba88487 --- a/Example/Lib/SDK/CHeaders/XPLM/XPLMDisplay.h +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMDisplay.h @@ -2,8 +2,8 @@ #define _XPLMDisplay_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -51,10 +51,19 @@ * In contrast to direct drawing, window drawing provides a higher level * functionality. With window drawing, you create a 2-D window that takes up a * portion of the screen. Window drawing is always two dimensional. Window - * drawing is front-to-back controlled; you can specify that you want your - * window to be brought on top, and other plug-ins may put their window on top - * of you. Window drawing also allows you to sign up for key presses and - * receive mouse clicks. + * drawing is depth controlled; you can specify that you want your window to + * be brought on top, and other plug-ins may put their window on top of you. + * Window drawing also allows you to sign up for key presses and receive mouse + * clicks. + * + * Drawing into the screen of an avionics device, like a GPS or a Primary + * Flight Display, is a way to extend or replace X-Plane's avionics. Most + * screens can be displayed both in a 3d cockpit or + * 2d panel, and also in separate popup windows. By installing drawing + * callbacks for a certain avionics device, you can change or extend the + * appearance of that device regardless whether it's installed in a 3d + * cockpit or used in a separate display for home cockpits because you leave + * the window managing to X-Plane. * * There are three ways to get keystrokes: * @@ -75,7 +84,7 @@ * Hot keys can be remapped by other plug-ins. As a plug-in, you don't * have to worry about what your hot key ends up mapped to; other plug-ins * may provide a UI for remapping keystrokes. So hotkeys allow a user to - * resolve conflicts and customize keystrokes. + * resolve conflicts and customize keystrokes. * */ @@ -100,7 +109,7 @@ extern "C" { * Note that all APIs in this section are deprecated, and will likely be * removed during the X-Plane 11 run as part of the transition to * Vulkan/Metal/etc. See the XPLMInstance API for future-proof drawing of 3-D - * objects. + * objects. * */ @@ -128,80 +137,80 @@ extern "C" { * **WARNING**: As X-Plane's scenery evolves, some drawing phases may cease to * exist and new ones may be invented. If you need a particularly specific * use of these codes, consult Austin and/or be prepared to revise your code - * as X-Plane evolves. + * as X-Plane evolves. * */ enum { #if defined(XPLM_DEPRECATED) - /* Deprecated as of XPLM302. This is the earliest point at which you can draw * - * in 3-d. */ + /* Deprecated as of XPLM302. This is the earliest point at which you can draw * + * in 3-d. */ xplm_Phase_FirstScene = 0, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated as of XPLM302. Drawing of land and water. */ + /* Deprecated as of XPLM302. Drawing of land and water. */ xplm_Phase_Terrain = 5, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated as of XPLM302. Drawing runways and other airport detail. */ + /* Deprecated as of XPLM302. Drawing runways and other airport detail. */ xplm_Phase_Airports = 10, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated as of XPLM302. Drawing roads, trails, trains, etc. */ + /* Deprecated as of XPLM302. Drawing roads, trails, trains, etc. */ xplm_Phase_Vectors = 15, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated as of XPLM302. 3-d objects (houses, smokestacks, etc. */ + /* Deprecated as of XPLM302. 3-d objects (houses, smokestacks, etc. */ xplm_Phase_Objects = 20, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated as of XPLM302. External views of airplanes, both yours and the * - * AI aircraft. */ + /* Deprecated as of XPLM302. External views of airplanes, both yours and the * + * AI aircraft. */ xplm_Phase_Airplanes = 25, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated as of XPLM302. This is the last point at which you can draw in * - * 3-d. */ + /* Deprecated as of XPLM302. This is the last point at which you can draw in * + * 3-d. */ xplm_Phase_LastScene = 30, #endif /* XPLM_DEPRECATED */ #if defined(XPLM302) - /* A chance to do modern 3D drawing. */ + /* A chance to do modern 3D drawing. */ xplm_Phase_Modern3D = 31, #endif /* XPLM302 */ - /* This is the first phase where you can draw in 2-d. */ + /* This is the first phase where you can draw in 2-d. */ xplm_Phase_FirstCockpit = 35, - /* The non-moving parts of the aircraft panel. */ + /* The non-moving parts of the aircraft panel. */ xplm_Phase_Panel = 40, - /* The moving parts of the aircraft panel. */ + /* The moving parts of the aircraft panel. */ xplm_Phase_Gauges = 45, - /* Floating windows from plugins. */ + /* Floating windows from plugins. */ xplm_Phase_Window = 50, - /* The last chance to draw in 2d. */ + /* The last chance to draw in 2d. */ xplm_Phase_LastCockpit = 55, #if defined(XPLM200) - /* Removed as of XPLM300; Use the full-blown XPLMMap API instead. */ + /* Removed as of XPLM300; Use the full-blown XPLMMap API instead. */ xplm_Phase_LocalMap3D = 100, #endif /* XPLM200 */ #if defined(XPLM200) - /* Removed as of XPLM300; Use the full-blown XPLMMap API instead. */ + /* Removed as of XPLM300; Use the full-blown XPLMMap API instead. */ xplm_Phase_LocalMap2D = 101, #endif /* XPLM200 */ #if defined(XPLM200) - /* Removed as of XPLM300; Use the full-blown XPLMMap API instead. */ + /* Removed as of XPLM300; Use the full-blown XPLMMap API instead. */ xplm_Phase_LocalMapProfile = 102, #endif /* XPLM200 */ @@ -222,13 +231,13 @@ typedef int XPLMDrawingPhase; * * Upon entry the OpenGL context will be correctly set up for you and OpenGL * will be in 'local' coordinates for 3d drawing and panel coordinates for 2d - * drawing. The OpenGL state (texturing, etc.) will be unknown. + * drawing. The OpenGL state (texturing, etc.) will be unknown. * */ typedef int (* XPLMDrawCallback_f)( - XPLMDrawingPhase inPhase, - int inIsBefore, - void * inRefcon); + XPLMDrawingPhase inPhase, + int inIsBefore, + void * inRefcon); /* * XPLMRegisterDrawCallback @@ -242,14 +251,14 @@ typedef int (* XPLMDrawCallback_f)( * * Note that this function will likely be removed during the X-Plane 11 run as * part of the transition to Vulkan/Metal/etc. See the XPLMInstance API for - * future-proof drawing of 3-D objects. + * future-proof drawing of 3-D objects. * */ XPLM_API int XPLMRegisterDrawCallback( - XPLMDrawCallback_f inCallback, - XPLMDrawingPhase inPhase, - int inWantsBefore, - void * inRefcon); + XPLMDrawCallback_f inCallback, + XPLMDrawingPhase inPhase, + int inWantsBefore, + void * inRefcon); /* * XPLMUnregisterDrawCallback @@ -261,15 +270,760 @@ XPLM_API int XPLMRegisterDrawCallback( * * Note that this function will likely be removed during the X-Plane 11 run as * part of the transition to Vulkan/Metal/etc. See the XPLMInstance API for - * future-proof drawing of 3-D objects. + * future-proof drawing of 3-D objects. * */ XPLM_API int XPLMUnregisterDrawCallback( - XPLMDrawCallback_f inCallback, - XPLMDrawingPhase inPhase, - int inWantsBefore, - void * inRefcon); + XPLMDrawCallback_f inCallback, + XPLMDrawingPhase inPhase, + int inWantsBefore, + void * inRefcon); +#if defined(XPLM400) +/*************************************************************************** + * AVIONICS API + ***************************************************************************/ +/* + * The Avionics API allows you to customize the drawing and behaviour of the + * built-in cockpit devices (GNS, G1000, etc.), and create your own cockpit + * devices. For built-in devices, you can draw before and/or after X-Plane + * does, and optionally prevent X-Plane from drawing the screen at all. + * Customized built-in devices and custom devices are available in the 3D + * cockpit as well as in the form of pop-up/pop-out windows. + * + * The API also allows you to receive mouse interaction events for your device + * (click down, drag, and up, mouse wheel scroll, cursor) for both screen and + * bezel. While these always work when the device is popped-up in its window, + * you must add a `ATTR_manip_device` manipulator on top of your screen in + * order to receive mouse events from the 3D cockpit. + * + * You can also use the avionics API to control the state and location of + * cockpit devices' pop-up windows. + * + * When working with avionics devices, all co-ordinates you receive when + * drawing or dealing with click events are in texels. The x-axis grows right, + * the y-axis grows up. In bezel callbacks, the origin is at the bottom left + * corner of the bezel. In screen callbacks, the origin is at the bottom-left + * of the screen. X-Plane takes care of scaling your screen and bezel if the + * user pops out the device's window: you should always draw your screen and + * bezel as if they were at the size you specified when registering callbacks + * or creating a device. + * + */ + + +/* + * XPLMDeviceID + * + * This constant indicates the device we want to override or enhance. We can + * get a callback before or after each item. + * + */ +enum { + /* GNS430, pilot side. */ + xplm_device_GNS430_1 = 0, + + /* GNS430, copilot side. */ + xplm_device_GNS430_2 = 1, + + /* GNS530, pilot side. */ + xplm_device_GNS530_1 = 2, + + /* GNS530, copilot side. */ + xplm_device_GNS530_2 = 3, + + /* generic airliner CDU, pilot side. */ + xplm_device_CDU739_1 = 4, + + /* generic airliner CDU, copilot side. */ + xplm_device_CDU739_2 = 5, + + /* G1000 Primary Flight Display, pilot side. */ + xplm_device_G1000_PFD_1 = 6, + + /* G1000 Multifunction Display. */ + xplm_device_G1000_MFD = 7, + + /* G1000 Primary Flight Display, copilot side. */ + xplm_device_G1000_PFD_2 = 8, + + /* Primus CDU, pilot side. */ + xplm_device_CDU815_1 = 9, + + /* Primus CDU, copilot side. */ + xplm_device_CDU815_2 = 10, + + /* Primus Primary Flight Display, pilot side. */ + xplm_device_Primus_PFD_1 = 11, + + /* Primus Primary Flight Display, copilot side. */ + xplm_device_Primus_PFD_2 = 12, + + /* Primus Multifunction Display, pilot side. */ + xplm_device_Primus_MFD_1 = 13, + + /* Primus Multifunction Display, copilot side. */ + xplm_device_Primus_MFD_2 = 14, + + /* Primus Multifunction Display, central. */ + xplm_device_Primus_MFD_3 = 15, + + /* Primus Radio Management Unit, pilot side. */ + xplm_device_Primus_RMU_1 = 16, + + /* Primus Radio Management Unit, copilot side. */ + xplm_device_Primus_RMU_2 = 17, + + /* Airbus MCDU, pilot side. */ + xplm_device_MCDU_1 = 18, + + /* Airbus MCDU, copilot side. */ + xplm_device_MCDU_2 = 19, + + +}; +typedef int XPLMDeviceID; + +/* + * XPLMAvionicsCallback_f + * + * This is the prototype for drawing callbacks for customized built-in device. + * You are passed in the device you are enhancing/replacing, and (if this is + * used for a built-in device that you are customizing) whether it is before + * or after X-Plane drawing. If you are before X-Plane, return 1 to let + * X-Plane draw or 0 to suppress X-Plane drawing. If you are called after + * X-Plane, the return value is ignored. + * + * Refcon is a unique value that you specify when registering the callback, + * allowing you to slip a pointer to your own data to the callback. + * + * Upon entry the OpenGL context will be correctly set up for you and OpenGL + * will be in panel coordinates for 2d drawing. The OpenGL state (texturing, + * etc.) will be unknown. + * + */ +typedef int (* XPLMAvionicsCallback_f)( + XPLMDeviceID inDeviceID, + int inIsBefore, + void * inRefcon); + +#if defined(XPLM410) +/* + * XPLMAvionicsMouse_f + * + * Mouse click callback for clicks into your screen or (2D-popup) bezel, + * useful if the device you are making simulates a touch-screen the user can + * click in the 3d cockpit, or if your pop-up's bezel has buttons that the + * user can click. Return 1 to consume the event, or 0 to let X-Plane process + * it (for stock avionics devices). + * + */ +typedef int (* XPLMAvionicsMouse_f)( + int x, + int y, + XPLMMouseStatus inMouse, + void * inRefcon); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMAvionicsMouseWheel_f + * + * Mouse wheel callback for scroll actions into your screen or (2D-popup) + * bezel, useful if your bezel has knobs that can be turned using the mouse + * wheel, or if you want to simulate pinch-to-zoom on a touchscreen. Return 1 + * to consume the event, or 0 to let X-Plane process it (for stock avionics + * devices). The number of "clicks" indicates how far the wheel was turned + * since the last callback. The wheel is 0 for the vertical axis or 1 for the + * horizontal axis (for OS/mouse combinations that support this). + * + */ +typedef int (* XPLMAvionicsMouseWheel_f)( + int x, + int y, + int wheel, + int clicks, + void * inRefcon); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMAvionicsCursor_f + * + * Cursor callback that decides which cursor to show when the mouse is over + * your screen or (2D-popup) bezel. Return xplm_CursorDefault to let X-Plane + * use which cursor to show, or other values to force the cursor to a + * particular one (see XPLMCursorStatus). + * + */ +typedef XPLMCursorStatus (* XPLMAvionicsCursor_f)( + int x, + int y, + void * inRefcon); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMAvionicsKeyboard_f + * + * Key callback called when your device is popped up and you've requested to + * capture the keyboard. Return 1 to consume the event, or 0 to let X-Plane + * process it (for stock avionics devices). + * + */ +typedef int (* XPLMAvionicsKeyboard_f)( + char inKey, + XPLMKeyFlags inFlags, + char inVirtualKey, + void * inRefCon, + int losingFocus); +#endif /* XPLM410 */ + +/* + * XPLMAvionicsID + * + * This is an opaque identifier for an avionics display that you enhance or + * replace. When you register your callbacks (via + * XPLMRegisterAvionicsCallbacksEx()) or create a new device (via + * XPLMCreateAvionicsDevice()), you will specify drawing and mouse callbacks, + * and get back such a handle. + * + */ +typedef void * XPLMAvionicsID; + +/* + * XPLMCustomizeAvionics_t + * + * The XPLMCustomizeAvionics_t structure defines all of the parameters used to + * replace or enhance built-in simulator avionics devices using + * XPLMRegisterAvionicsCallbacksEx(). The structure will be expanded in future + * SDK APIs to include more features. Always set the structSize member to the + * size of your struct in bytes! + * + */ +typedef struct { + /* Used to inform XPLMRegisterAvionicsCallbacksEx() of the SDK version you * + * compiled against; should always be set to sizeof(XPLMCustomizeAvionics_t) */ + int structSize; + /* The built-in avionics device to which you want your drawing applied. */ + XPLMDeviceID deviceId; + /* The draw callback to be called before X-Plane draws. */ + XPLMAvionicsCallback_f drawCallbackBefore; + /* The draw callback to be called after X-Plane has drawn. */ + XPLMAvionicsCallback_f drawCallbackAfter; +#if defined(XPLM410) + /* The mouse click callback that is called when the user clicks onto the * + * device's bezel. */ + XPLMAvionicsMouse_f bezelClickCallback; +#endif /* XPLM410 */ +#if defined(XPLM410) + /* The mouse click callback that is called when the user clicks onto the * + * device's bezel. */ + XPLMAvionicsMouse_f bezelRightClickCallback; +#endif /* XPLM410 */ +#if defined(XPLM410) + /* The callback that is called when the users uses the scroll wheel over the * + * device's bezel. */ + XPLMAvionicsMouseWheel_f bezelScrollCallback; +#endif /* XPLM410 */ +#if defined(XPLM410) + /* The callback that lets you determine what cursor should be shown when the * + * mouse is over the device's bezel. */ + XPLMAvionicsCursor_f bezelCursorCallback; +#endif /* XPLM410 */ +#if defined(XPLM410) + /* The mouse click callback that is called when the user clicks onto the * + * device's screen. */ + XPLMAvionicsMouse_f screenTouchCallback; +#endif /* XPLM410 */ +#if defined(XPLM410) + /* The right mouse click callback that is called when the user clicks onto the* + * device's screen. */ + XPLMAvionicsMouse_f screenRightTouchCallback; +#endif /* XPLM410 */ +#if defined(XPLM410) + /* The callback that is called when the users uses the scroll wheel over the * + * device's screen. */ + XPLMAvionicsMouseWheel_f screenScrollCallback; +#endif /* XPLM410 */ +#if defined(XPLM410) + /* The callback that lets you determine what cursor should be shown when the * + * mouse is over the device's screen. */ + XPLMAvionicsCursor_f screenCursorCallback; +#endif /* XPLM410 */ +#if defined(XPLM410) + /* The key callback that is called when the user types in the device's popup. */ + XPLMAvionicsKeyboard_f keyboardCallback; +#endif /* XPLM410 */ + /* A reference which will be passed into each of your draw callbacks. Use this* + * to pass information to yourself as needed. */ + void * refcon; +} XPLMCustomizeAvionics_t; + +/* + * XPLMRegisterAvionicsCallbacksEx + * + * This routine registers your callbacks for a built-in device. This returns a + * handle. If the returned handle is NULL, there was a problem interpreting + * your input, most likely the struct size was wrong for your SDK version. If + * the returned handle is not NULL, your callbacks will be called according to + * schedule as long as your plugin is not deactivated, or unloaded, or you + * call XPLMUnregisterAvionicsCallbacks(). + * + * Note that you cannot register new callbacks for a device that is not a + * built-in one (for example a device that you have created, or a device + * another plugin has created). + * + */ +XPLM_API XPLMAvionicsID XPLMRegisterAvionicsCallbacksEx( + XPLMCustomizeAvionics_t * inParams); + +/* + * XPLMGetAvionicsHandle + * + * This routine registers no callbacks for a built-in cockpit device, but + * returns a handle which allows you to interact with it using the Avionics + * Device API. Use this if you do not wish to intercept drawing, clicks and + * touchscreen calls to a device, but want to interact with its popup + * programmatically. This is equivalent to calling + * XPLMRegisterAvionicsCallbackEx() with NULL for all callbacks. + * + */ +XPLM_API XPLMAvionicsID XPLMGetAvionicsHandle( + XPLMDeviceID inDeviceID); + +/* + * XPLMUnregisterAvionicsCallbacks + * + * This routine unregisters your callbacks for a built-in device. You should + * only call this for handles you acquired from + * XPLMRegisterAvionicsCallbacksEx(). They will no longer be called. + * + */ +XPLM_API void XPLMUnregisterAvionicsCallbacks( + XPLMAvionicsID inAvionicsId); + +#if defined(XPLM410) +/* + * XPLMAvionicsScreenCallback_f + * + * This is the prototype for drawing callbacks for custom devices' screens. + * Refcon is a unique value that you specify when creating the device, + * allowing you to slip a pointer to your own data to the callback. + * + * Upon entry the OpenGL context will be correctly set up for you and OpenGL + * will be in panel coordinates for 2d drawing. The OpenGL state (texturing, + * etc.) will be unknown. X-Plane does not clear your screen for you between + * calls - this means you can re-use portions to save drawing, but otherwise + * you must call glClear() to erase the screen's contents. + * + */ +typedef void (* XPLMAvionicsScreenCallback_f)( + void * inRefcon); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMAvionicsBezelCallback_f + * + * This is the prototype for drawing callbacks for custom devices' bezel. You + * are passed in the red, green, and blue values you can optinally use for + * tinting your bezel accoring to ambiant light. + * + * Refcon is a unique value that you specify when creating the device, + * allowing you to slip a pointer to your own data to the callback. + * + * Upon entry the OpenGL context will be correctly set up for you and OpenGL + * will be in panel coordinates for 2d drawing. The OpenGL state (texturing, + * etc.) will be unknown. + * + */ +typedef void (* XPLMAvionicsBezelCallback_f)( + float inAmbiantR, + float inAmbiantG, + float inAmbiantB, + void * inRefcon); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMAvionicsBrightness_f + * + * This is the prototype for screen brightness callbacks for custom devices. + * If you provide a callback, you can return the ratio of the screen's maximum + * brightness that the simulator should use when displaying the screen in the + * 3D cockpit. + * + * inRheoValue is the current ratio value (between 0 and 1) of the instrument + * brightness rheostat to which the device is bound. + * + * inAmbientBrightness is the value (between 0 and 1) that the callback should + * return for the screen to be at a usable brightness based on ambient light + * (if your device has a photo cell and automatically adjusts its brightness, + * you can return this and your screen will be at the optimal brightness to be + * readable, but not blind the pilot). + * + * inBusVoltsRatio is the ratio of the nominal voltage currently present on + * the bus to which the device is bound, or -1 if the device is not bound to + * the current aircraft. + * + * Refcon is a unique value that you specify when creating the device, + * allowing you to slip a pointer to your own data to the callback. + * + */ +typedef float (* XPLMAvionicsBrightness_f)( + float inRheoValue, + float inAmbiantBrightness, + float inBusVoltsRatio, + void * inRefcon); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMCreateAvionics_t + * + * The XPLMCreateAvionics_t structure defines all of the parameters used to + * generate your own glass cockpit device by using XPLMCreateAvionicsEx(). The + * structure will be expanded in future SDK APIs to include more features. + * Always set the structSize member to the size of your struct in bytes! + * + */ +typedef struct { + /* Used to inform XPLMCreateAvionicsEx() of the SDK version you compiled * + * against; should always be set to sizeof(XPLMCreateAvionics_t) */ + int structSize; + /* Width of the device's screen in pixels. */ + int screenWidth; + /* Height of the device's screen in pixels. */ + int screenHeight; + /* Width of the bezel around your device's screen for 2D pop-ups. */ + int bezelWidth; + /* Height of the bezel around your device's screen for 2D pop-ups. */ + int bezelHeight; + /* The screen's lateral offset into the bezel for 2D pop-ups. */ + int screenOffsetX; + /* The screen's vertical offset into the bezel for 2D pop-ups. */ + int screenOffsetY; + /* If set to true (1), X-Plane won't call your plugin to re-render the * + * device's screen every frame. Instead, you should tell X-Plane you want to * + * refresh your screen with XPLMAvionicsNeedsDrawing(), and X-Plane will call * + * you before rendering the next simulator frame. */ + int drawOnDemand; + /* The draw callback you will use to draw the 2D-popup bezel. This is called * + * only when the popup window is visible, and X-Plane is about to draw the * + * bezel in it. */ + XPLMAvionicsBezelCallback_f bezelDrawCallback; + /* The draw callback you will be using to draw into the device's screen * + * framebuffer. */ + XPLMAvionicsScreenCallback_f drawCallback; + /* The mouse click callback that is called when the user clicks onto your * + * bezel. */ + XPLMAvionicsMouse_f bezelClickCallback; + /* The mouse click callback that is called when the user clicks onto your * + * bezel. */ + XPLMAvionicsMouse_f bezelRightClickCallback; + /* The callback that is called when the users uses the scroll wheel over your * + * avionics' bezel. */ + XPLMAvionicsMouseWheel_f bezelScrollCallback; + /* The callback that lets you determine what cursor should be shown when the * + * mouse is over your device's bezel. */ + XPLMAvionicsCursor_f bezelCursorCallback; + /* The mouse click callback that is called when the user clicks onto your * + * screen. */ + XPLMAvionicsMouse_f screenTouchCallback; + /* The right mouse click callback that is called when the user clicks onto * + * your screen. */ + XPLMAvionicsMouse_f screenRightTouchCallback; + /* The callback that is called when the users uses the scroll wheel over your * + * avionics' screen. */ + XPLMAvionicsMouseWheel_f screenScrollCallback; + /* The callback that lets you determine what cursor should be shown when the * + * mouse is over your device's screen. */ + XPLMAvionicsCursor_f screenCursorCallback; + /* The key callback that is called when the user types in your popup. */ + XPLMAvionicsKeyboard_f keyboardCallback; + /* The callback that is called to determine the absolute brightness of the * + * device's screen. Set to NULL to use X-Plane's default behaviour. */ + XPLMAvionicsBrightness_f brightnessCallback; + /* A null-terminated string of maximum 64 characters to uniquely identify your* + * cockpit device. This must be unique (you cannot re-use an ID that X-Plane * + * or another plugin provides), and it must not contain spaces. This is the * + * string the OBJ file must reference when marking polygons with * + * ATTR_cockpit_device. The string is copied when you call * + * XPLMCreateAvionicsEx, so you don't need to hold this string in memory after* + * the call. */ + char * deviceID; + /* A null-terminated string to give a user-readable name to your device, which* + * can be presented in UI dialogs. */ + char * deviceName; + /* A reference which will be passed into your draw and mouse callbacks. Use * + * this to pass information to yourself as needed. */ + void * refcon; +} XPLMCreateAvionics_t; +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMCreateAvionicsEx + * + * Creates a new cockpit device to be used in the 3D cockpit. You can call + * this at any time: if an aircraft referencing your device is loaded before + * your plugin, the simulator will make sure to retroactively map your display + * into it. + * + * When you are done with the device, and at least before your + * plugin is unloaded, you should destroy the device using + * XPLMDestroyAvionics(). + * + */ +XPLM_API XPLMAvionicsID XPLMCreateAvionicsEx( + XPLMCreateAvionics_t * inParams); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMDestroyAvionics + * + * Destroys the cockpit device and deallocates its screen's memory. You should + * only ever call this for devices that you created using + * XPLMCreateAvionicsEx(), not X-Plane' built-ine devices you have customised. + * + */ +XPLM_API void XPLMDestroyAvionics( + XPLMAvionicsID inHandle); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMIsAvionicsBound + * + * Returns true (1) if the cockpit device with the given handle is used by the + * current aircraft. + * + */ +XPLM_API int XPLMIsAvionicsBound( + XPLMAvionicsID inHandle); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMSetAvionicsBrightnessRheo + * + * Sets the brightness setting's value, between 0 and 1, for the screen of the + * cockpit device with the given handle. + * + * If the device is bound to the current aircraft, this is a shortcut to + * setting the brightness rheostat value using the + * `sim/cockpit2/switches/instrument_brightness_ratio[]` dataref; this sets + * the slot in the `instrument_brightness_ratio` array to which the device is + * bound. + * + * If the device is not currently bound, the device keeps track of its own + * screen brightness rheostat, allowing you to control the brightness even + * though it isn't connected to the `instrument_brightness_ratio` dataref. + * + */ +XPLM_API void XPLMSetAvionicsBrightnessRheo( + XPLMAvionicsID inHandle, + float brightness); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMGetAvionicsBrightnessRheo + * + * Returns the brightness setting value, between 0 and 1, for the screen of + * the cockpit device with the given handle. + * + * If the device is bound to the current aircraft, this is a shortcut + * to getting the brightness rheostat value from the + * `sim/cockpit2/switches/instrument_brightness_ratio[]` dataref; this + * gets the slot in the `instrument_brightness_ratio` array to which + * the device is bound. + * + * If the device is not currently bound, this returns the device's own + * brightness rheostat value. + * + */ +XPLM_API float XPLMGetAvionicsBrightnessRheo( + XPLMAvionicsID inHandle); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMGetAvionicsBusVoltsRatio + * + * Returns the ratio of the nominal voltage (1.0 means full nominal voltage) + * of the electrical bus to which the given avionics device is bound, or -1 if + * the device is not bound to the current aircraft. + * + */ +XPLM_API float XPLMGetAvionicsBusVoltsRatio( + XPLMAvionicsID inHandle); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMIsCursorOverAvionics + * + * Returns true (1) if the mouse is currently over the screen of cockpit + * device with the given handle. If they are not NULL, the optional x and y + * arguments are filled with the co-ordinates of the mouse cursor in device + * co-ordinates. + * + */ +XPLM_API int XPLMIsCursorOverAvionics( + XPLMAvionicsID inHandle, + int * outX, /* Can be NULL */ + int * outY); /* Can be NULL */ +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMAvionicsNeedsDrawing + * + * Tells X-Plane that your device's screen needs to be re-drawn. If your + * device is marked for on-demand drawing, X-Plane will call your screen + * drawing callback before drawing the next simulator frame. If your device is + * already drawn every frame, this has no effect. + * + */ +XPLM_API void XPLMAvionicsNeedsDrawing( + XPLMAvionicsID inHandle); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMSetAvionicsPopupVisible + * + * Shows or hides the popup window for a cockpit device. + * + */ +XPLM_API void XPLMSetAvionicsPopupVisible( + XPLMAvionicsID inHandle, + int inVisible); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMIsAvionicsPopupVisible + * + * Returns true (1) if the popup window for a cockpit device is visible. + * + */ +XPLM_API int XPLMIsAvionicsPopupVisible( + XPLMAvionicsID inHandle); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMPopOutAvionics + * + * Pops out the window for a cockpit device. + * + */ +XPLM_API void XPLMPopOutAvionics( + XPLMAvionicsID inHandle); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMIsAvionicsPoppedOut + * + * Returns true (1) if the popup window for a cockpit device is popped out. + * + */ +XPLM_API int XPLMIsAvionicsPoppedOut( + XPLMAvionicsID inHandle); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMTakeAvionicsKeyboardFocus + * + * This routine gives keyboard focus to the popup window of a custom cockpit + * device, if it is visible. + * + */ +XPLM_API void XPLMTakeAvionicsKeyboardFocus( + XPLMAvionicsID inHandle); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMHasAvionicsKeyboardFocus + * + * Returns true (1) if the popup window for a cockpit device has keyboard + * focus. + * + */ +XPLM_API int XPLMHasAvionicsKeyboardFocus( + XPLMAvionicsID inHandle); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMGetAvionicsGeometry + * + * Returns the bounds of a cockpit device's popup window in the X-Plane + * coordinate system. + * + */ +XPLM_API void XPLMGetAvionicsGeometry( + XPLMAvionicsID inHandle, + int * outLeft, /* Can be NULL */ + int * outTop, /* Can be NULL */ + int * outRight, /* Can be NULL */ + int * outBottom); /* Can be NULL */ +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMSetAvionicsGeometry + * + * Sets the size and position of a cockpit device's popup window in the + * X-Plane coordinate system. + * + */ +XPLM_API void XPLMSetAvionicsGeometry( + XPLMAvionicsID inHandle, + int inLeft, + int inTop, + int inRight, + int inBottom); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMGetAvionicsGeometryOS + * + * Returns the bounds of a cockpit device's popped-out window. + * + */ +XPLM_API void XPLMGetAvionicsGeometryOS( + XPLMAvionicsID inHandle, + int * outLeft, /* Can be NULL */ + int * outTop, /* Can be NULL */ + int * outRight, /* Can be NULL */ + int * outBottom); /* Can be NULL */ +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMSetAvionicsGeometryOS + * + * Sets the size and position of a cockpit device's popped-out window. + * + */ +XPLM_API void XPLMSetAvionicsGeometryOS( + XPLMAvionicsID inHandle, + int inLeft, + int inTop, + int inRight, + int inBottom); +#endif /* XPLM410 */ + +#endif /* XPLM400 */ /*************************************************************************** * WINDOW API ***************************************************************************/ @@ -305,7 +1059,7 @@ XPLM_API int XPLMUnregisterDrawCallback( * window, they have their origin in the lower left of the entire global * desktop space, and the lower left of the main X-Plane window is not * guaranteed to be (0, 0). In both cases, x increases as you move left, and y - * increases as you move up. + * increases as you move up. * */ @@ -316,7 +1070,7 @@ XPLM_API int XPLMUnregisterDrawCallback( * This is an opaque identifier for a window. You use it to control your * window. When you create a window (via either XPLMCreateWindow() or * XPLMCreateWindowEx()), you will specify callbacks to handle drawing, mouse - * interaction, etc. + * interaction, etc. * */ typedef void * XPLMWindowID; @@ -332,56 +1086,42 @@ typedef void * XPLMWindowID; * * **Note**: Because you are drawing your window over a background, you can * make a translucent window easily by simply not filling in your entire - * window's bounds. + * window's bounds. * */ typedef void (* XPLMDrawWindow_f)( - XPLMWindowID inWindowID, - void * inRefcon); + XPLMWindowID inWindowID, + void * inRefcon); /* * XPLMHandleKey_f * * This function is called when a key is pressed or keyboard focus is taken * away from your window. If losingFocus is 1, you are losing the keyboard - * focus, otherwise a key was pressed and inKey contains its character. You - * are also passed your window and a refcon. + * focus, otherwise a key was pressed and inKey contains its character. + * + * The window ID passed in will be your window for key presses, or the other + * window taking focus when losing focus. Note that in the modern plugin + * system, often focus is taken by the window manager itself; for this resaon, + * the window ID may be zero when losing focus, and you should not write code + * that depends onit. + * + * The refcon passed in will be the one from registration, for both key + * presses and losing focus. * * Warning: this API declares virtual keys as a signed character; however the * VKEY #define macros in XPLMDefs.h define the vkeys using unsigned values * (that is 0x80 instead of -0x80). So you may need to cast the incoming vkey - * to an unsigned char to get correct comparisons in C. + * to an unsigned char to get correct comparisons in C. * */ typedef void (* XPLMHandleKey_f)( - XPLMWindowID inWindowID, - char inKey, - XPLMKeyFlags inFlags, - char inVirtualKey, - void * inRefcon, - int losingFocus); - -/* - * XPLMMouseStatus - * - * When the mouse is clicked, your mouse click routine is called repeatedly. - * It is first called with the mouse down message. It is then called zero or - * more times with the mouse-drag message, and finally it is called once with - * the mouse up message. All of these messages will be directed to the same - * window; you are guaranteed to not receive a drag or mouse-up event without - * first receiving the corresponding mouse-down. - * - */ -enum { - xplm_MouseDown = 1, - - xplm_MouseDrag = 2, - - xplm_MouseUp = 3, - - -}; -typedef int XPLMMouseStatus; + XPLMWindowID inWindowID, + char inKey, + XPLMKeyFlags inFlags, + char inVirtualKey, + void * inRefcon, + int losingFocus); /* * XPLMHandleMouseClick_f @@ -405,41 +1145,15 @@ typedef int XPLMMouseStatus; * will get pixels. Legacy windows have their origin in the lower left of the * main X-Plane window, while modern windows have their origin in the lower * left of the global desktop space. In both cases, x increases as you move - * right, and y increases as you move up. + * right, and y increases as you move up. * */ typedef int (* XPLMHandleMouseClick_f)( - XPLMWindowID inWindowID, - int x, - int y, - XPLMMouseStatus inMouse, - void * inRefcon); - -#if defined(XPLM200) -/* - * XPLMCursorStatus - * - * XPLMCursorStatus describes how you would like X-Plane to manage the cursor. - * See XPLMHandleCursor_f for more info. - * - */ -enum { - /* X-Plane manages the cursor normally, plugin does not affect the cusrsor. */ - xplm_CursorDefault = 0, - - /* X-Plane hides the cursor. */ - xplm_CursorHidden = 1, - - /* X-Plane shows the cursor as the default arrow. */ - xplm_CursorArrow = 2, - - /* X-Plane shows the cursor but lets you select an OS cursor. */ - xplm_CursorCustom = 3, - - -}; -typedef int XPLMCursorStatus; -#endif /* XPLM200 */ + XPLMWindowID inWindowID, + int x, + int y, + XPLMMouseStatus inMouse, + void * inRefcon); #if defined(XPLM200) /* @@ -469,14 +1183,14 @@ typedef int XPLMCursorStatus; * will get pixels. Legacy windows have their origin in the lower left of the * main X-Plane window, while modern windows have their origin in the lower * left of the global desktop space. In both cases, x increases as you move - * right, and y increases as you move up. + * right, and y increases as you move up. * */ typedef XPLMCursorStatus (* XPLMHandleCursor_f)( - XPLMWindowID inWindowID, - int x, - int y, - void * inRefcon); + XPLMWindowID inWindowID, + int x, + int y, + void * inRefcon); #endif /* XPLM200 */ #if defined(XPLM200) @@ -497,16 +1211,16 @@ typedef XPLMCursorStatus (* XPLMHandleCursor_f)( * will get pixels. Legacy windows have their origin in the lower left of the * main X-Plane window, while modern windows have their origin in the lower * left of the global desktop space. In both cases, x increases as you move - * right, and y increases as you move up. + * right, and y increases as you move up. * */ typedef int (* XPLMHandleMouseWheel_f)( - XPLMWindowID inWindowID, - int x, - int y, - int wheel, - int clicks, - void * inRefcon); + XPLMWindowID inWindowID, + int x, + int y, + int wheel, + int clicks, + void * inRefcon); #endif /* XPLM200 */ #if defined(XPLM300) @@ -525,23 +1239,23 @@ typedef int (* XPLMHandleMouseWheel_f)( * layering only applies to windows created with new X-Plane 11 GUI features. * (Windows created using the older XPLMCreateWindow(), or windows compiled * against a pre-XPLM300 version of the SDK will simply be placed in the - * flight overlay window layer.) + * flight overlay window layer.) * */ enum { - /* The lowest layer, used for HUD-like displays while flying. */ + /* The lowest layer, used for HUD-like displays while flying. */ xplm_WindowLayerFlightOverlay = 0, - /* Windows that "float" over the sim, like the X-Plane 11 map does. If you are* - * not sure which layer to create your window in, choose floating. */ + /* Windows that "float" over the sim, like the X-Plane 11 map does. If you are* + * not sure which layer to create your window in, choose floating. */ xplm_WindowLayerFloatingWindows = 1, - /* An interruptive modal that covers the sim with a transparent black overlay * - * to draw the user's focus to the alert */ + /* An interruptive modal that covers the sim with a transparent black overlay * + * to draw the user's focus to the alert */ xplm_WindowLayerModal = 2, - /* "Growl"-style notifications that are visible in a corner of the screen, * - * even over modals */ + /* "Growl"-style notifications that are visible in a corner of the screen, * + * even over modals */ xplm_WindowLayerGrowlNotifications = 3, @@ -558,28 +1272,28 @@ typedef int XPLMWindowLayer; * handlers. * * Your window's decoration can only be specified when you create the window - * (in the XPLMCreateWindow_t you pass to XPLMCreateWindowEx()). + * (in the XPLMCreateWindow_t you pass to XPLMCreateWindowEx()). * */ enum { - /* X-Plane will draw no decoration for your window, and apply no automatic * - * click handlers. The window will not stop click from passing through its * - * bounds. This is suitable for "windows" which request, say, the full screen * - * bounds, then only draw in a small portion of the available area. */ + /* X-Plane will draw no decoration for your window, and apply no automatic * + * click handlers. The window will not stop click from passing through its * + * bounds. This is suitable for "windows" which request, say, the full screen * + * bounds, then only draw in a small portion of the available area. */ xplm_WindowDecorationNone = 0, - /* The default decoration for "native" windows, like the map. Provides a solid* - * background, as well as click handlers for resizing and dragging the window.*/ + /* The default decoration for "native" windows, like the map. Provides a solid* + * background, as well as click handlers for resizing and dragging the window.*/ xplm_WindowDecorationRoundRectangle = 1, - /* X-Plane will draw no decoration for your window, nor will it provide resize* - * handlers for your window edges, but it will stop clicks from passing * - * through your windows bounds. */ + /* X-Plane will draw no decoration for your window, nor will it provide resize* + * handlers for your window edges, but it will stop clicks from passing * + * through your windows bounds. */ xplm_WindowDecorationSelfDecorated = 2, - /* Like self-decorated, but with resizing; X-Plane will draw no decoration for* - * your window, but it will stop clicks from passing through your windows * - * bounds, and provide automatic mouse handlers for resizing. */ + /* Like self-decorated, but with resizing; X-Plane will draw no decoration for* + * your window, but it will stop clicks from passing through your windows * + * bounds, and provide automatic mouse handlers for resizing. */ xplm_WindowDecorationSelfDecoratedResizable = 3, @@ -617,43 +1331,43 @@ typedef int XPLMWindowDecoration; * * If you ask to be decorated as a floating window, you'll get the blue window * control bar and blue backing that you see in X-Plane 11's normal "floating" - * windows (like the map). + * windows (like the map). * */ typedef struct { - /* Used to inform XPLMCreateWindowEx() of the SDK version you compiled * - * against; should always be set to sizeof(XPLMCreateWindow_t) */ + /* Used to inform XPLMCreateWindowEx() of the SDK version you compiled * + * against; should always be set to sizeof(XPLMCreateWindow_t) */ int structSize; - /* Left bound, in global desktop boxels */ + /* Left bound, in global desktop boxels */ int left; - /* Top bound, in global desktop boxels */ + /* Top bound, in global desktop boxels */ int top; - /* Right bound, in global desktop boxels */ + /* Right bound, in global desktop boxels */ int right; - /* Bottom bound, in global desktop boxels */ + /* Bottom bound, in global desktop boxels */ int bottom; int visible; XPLMDrawWindow_f drawWindowFunc; - /* A callback to handle the user left-clicking within your window (or NULL to * - * ignore left clicks) */ + /* A callback to handle the user left-clicking within your window (or NULL to * + * ignore left clicks) */ XPLMHandleMouseClick_f handleMouseClickFunc; XPLMHandleKey_f handleKeyFunc; XPLMHandleCursor_f handleCursorFunc; XPLMHandleMouseWheel_f handleMouseWheelFunc; - /* A reference which will be passed into each of your window callbacks. Use * - * this to pass information to yourself as needed. */ + /* A reference which will be passed into each of your window callbacks. Use * + * this to pass information to yourself as needed. */ void * refcon; #if defined(XPLM301) - /* Specifies the type of X-Plane 11-style "wrapper" you want around your * - * window, if any */ + /* Specifies the type of X-Plane 11-style "wrapper" you want around your * + * window, if any */ XPLMWindowDecoration decorateAsFloatingWindow; #endif /* XPLM301 */ #if defined(XPLM300) XPLMWindowLayer layer; #endif /* XPLM300 */ #if defined(XPLM300) - /* A callback to handle the user right-clicking within your window (or NULL to* - * ignore right clicks) */ + /* A callback to handle the user right-clicking within your window (or NULL to* + * ignore right clicks) */ XPLMHandleMouseClick_f handleRightClickFunc; #endif /* XPLM300 */ } XPLMCreateWindow_t; @@ -668,11 +1382,11 @@ typedef struct { * the structSize of the structure to the size of the actual structure you * used. Also, you must provide functions for every callback---you may not * leave them null! (If you do not support the cursor or mouse wheel, use - * functions that return the default values.) + * functions that return the default values.) * */ XPLM_API XPLMWindowID XPLMCreateWindowEx( - XPLMCreateWindow_t * inParams); + XPLMCreateWindow_t * inParams); #endif /* XPLM200 */ /* @@ -694,42 +1408,42 @@ XPLM_API XPLMWindowID XPLMCreateWindowEx( * * NOTE: Legacy windows do not have "frames"; you are responsible for drawing * the background and frame of the window. Higher level libraries have - * routines which make this easy. + * routines which make this easy. * */ XPLM_API XPLMWindowID XPLMCreateWindow( - int inLeft, - int inTop, - int inRight, - int inBottom, - int inIsVisible, - XPLMDrawWindow_f inDrawCallback, - XPLMHandleKey_f inKeyCallback, - XPLMHandleMouseClick_f inMouseCallback, - void * inRefcon); + int inLeft, + int inTop, + int inRight, + int inBottom, + int inIsVisible, + XPLMDrawWindow_f inDrawCallback, + XPLMHandleKey_f inKeyCallback, + XPLMHandleMouseClick_f inMouseCallback, + void * inRefcon); /* * XPLMDestroyWindow * * This routine destroys a window. The window's callbacks are not called * after this call. Keyboard focus is removed from the window before - * destroying it. + * destroying it. * */ XPLM_API void XPLMDestroyWindow( - XPLMWindowID inWindowID); + XPLMWindowID inWindowID); /* * XPLMGetScreenSize * * This routine returns the size of the main X-Plane OpenGL window in pixels. * This number can be used to get a rough idea of the amount of detail the - * user will be able to see when drawing in 3-d. + * user will be able to see when drawing in 3-d. * */ XPLM_API void XPLMGetScreenSize( - int * outWidth, /* Can be NULL */ - int * outHeight); /* Can be NULL */ + int * outWidth, /* Can be NULL */ + int * outHeight); /* Can be NULL */ #if defined(XPLM300) /* @@ -762,14 +1476,14 @@ XPLM_API void XPLMGetScreenSize( * * Note that popped-out windows (windows drawn in their own operating system * windows, rather than "floating" within X-Plane) are not included in these - * bounds. + * bounds. * */ XPLM_API void XPLMGetScreenBoundsGlobal( - int * outLeft, /* Can be NULL */ - int * outTop, /* Can be NULL */ - int * outRight, /* Can be NULL */ - int * outBottom); /* Can be NULL */ + int * outLeft, /* Can be NULL */ + int * outTop, /* Can be NULL */ + int * outRight, /* Can be NULL */ + int * outBottom); /* Can be NULL */ #endif /* XPLM300 */ #if defined(XPLM300) @@ -779,16 +1493,16 @@ XPLM_API void XPLMGetScreenBoundsGlobal( * This function is informed of the global bounds (in boxels) of a particular * monitor within the X-Plane global desktop space. Note that X-Plane must be * running in full screen on a monitor in order for that monitor to be passed - * to you in this callback. + * to you in this callback. * */ typedef void (* XPLMReceiveMonitorBoundsGlobal_f)( - int inMonitorIndex, - int inLeftBx, - int inTopBx, - int inRightBx, - int inBottomBx, - void * inRefcon); + int inMonitorIndex, + int inLeftBx, + int inTopBx, + int inRightBx, + int inBottomBx, + void * inRefcon); #endif /* XPLM300 */ #if defined(XPLM300) @@ -813,12 +1527,12 @@ typedef void (* XPLMReceiveMonitorBoundsGlobal_f)( * XPLMGetAllMonitorBoundsOS(), but the coordinates are different (since the * X-Plane global desktop may not match the operating system's global desktop, * and one X-Plane boxel may be larger than one pixel due to 150% or 200% - * scaling). + * scaling). * */ XPLM_API void XPLMGetAllMonitorBoundsGlobal( - XPLMReceiveMonitorBoundsGlobal_f inMonitorBoundsCallback, - void * inRefcon); + XPLMReceiveMonitorBoundsGlobal_f inMonitorBoundsCallback, + void * inRefcon); #endif /* XPLM300 */ #if defined(XPLM300) @@ -829,16 +1543,16 @@ XPLM_API void XPLMGetAllMonitorBoundsGlobal( * monitor within the operating system's global desktop space. Note that a * monitor index being passed to you here does not indicate that X-Plane is * running in full screen on this monitor, or even that any X-Plane windows - * exist on this monitor. + * exist on this monitor. * */ typedef void (* XPLMReceiveMonitorBoundsOS_f)( - int inMonitorIndex, - int inLeftPx, - int inTopPx, - int inRightPx, - int inBottomPx, - void * inRefcon); + int inMonitorIndex, + int inLeftPx, + int inTopPx, + int inRightPx, + int inBottomPx, + void * inRefcon); #endif /* XPLM300 */ #if defined(XPLM300) @@ -853,12 +1567,12 @@ typedef void (* XPLMReceiveMonitorBoundsOS_f)( * Note that this function's monitor indices match those provided by * XPLMGetAllMonitorBoundsGlobal(), but the coordinates are different (since * the X-Plane global desktop may not match the operating system's global - * desktop, and one X-Plane boxel may be larger than one pixel). + * desktop, and one X-Plane boxel may be larger than one pixel). * */ XPLM_API void XPLMGetAllMonitorBoundsOS( - XPLMReceiveMonitorBoundsOS_f inMonitorBoundsCallback, - void * inRefcon); + XPLMReceiveMonitorBoundsOS_f inMonitorBoundsCallback, + void * inRefcon); #endif /* XPLM300 */ /* @@ -878,12 +1592,12 @@ XPLM_API void XPLMGetAllMonitorBoundsOS( * * Note that unlike XPLMGetMouseLocationGlobal(), if the mouse goes outside * the user's main monitor (for instance, to a pop out window or a secondary - * monitor), this function will not reflect it. + * monitor), this function will not reflect it. * */ XPLM_API void XPLMGetMouseLocation( - int * outX, /* Can be NULL */ - int * outY); /* Can be NULL */ + int * outX, /* Can be NULL */ + int * outY); /* Can be NULL */ #if defined(XPLM300) /* @@ -900,12 +1614,12 @@ XPLM_API void XPLMGetMouseLocation( * This is the mouse location function to use with modern windows (i.e., those * created by XPLMCreateWindowEx()). * - * Pass NULL to not receive info about either parameter. + * Pass NULL to not receive info about either parameter. * */ XPLM_API void XPLMGetMouseLocationGlobal( - int * outX, /* Can be NULL */ - int * outY); /* Can be NULL */ + int * outX, /* Can be NULL */ + int * outY); /* Can be NULL */ #endif /* XPLM300 */ /* @@ -923,15 +1637,15 @@ XPLM_API void XPLMGetMouseLocationGlobal( * against the XPLM300 SDK and created using XPLMCreateWindowEx()), the units * are global desktop boxels. * - * Pass NULL to not receive any paramter. + * Pass NULL to not receive any paramter. * */ XPLM_API void XPLMGetWindowGeometry( - XPLMWindowID inWindowID, - int * outLeft, /* Can be NULL */ - int * outTop, /* Can be NULL */ - int * outRight, /* Can be NULL */ - int * outBottom); /* Can be NULL */ + XPLMWindowID inWindowID, + int * outLeft, /* Can be NULL */ + int * outTop, /* Can be NULL */ + int * outRight, /* Can be NULL */ + int * outBottom); /* Can be NULL */ /* * XPLMSetWindowGeometry @@ -946,15 +1660,15 @@ XPLM_API void XPLMGetWindowGeometry( * are drawn within the X-Plane simulation windows, rather than being "popped * out" into their own first-class operating system windows). To set the * position of windows whose positioning mode is xplm_WindowPopOut, you'll - * need to instead use XPLMSetWindowGeometryOS(). + * need to instead use XPLMSetWindowGeometryOS(). * */ XPLM_API void XPLMSetWindowGeometry( - XPLMWindowID inWindowID, - int inLeft, - int inTop, - int inRight, - int inBottom); + XPLMWindowID inWindowID, + int inLeft, + int inTop, + int inRight, + int inBottom); #if defined(XPLM300) /* @@ -962,15 +1676,15 @@ XPLM_API void XPLMSetWindowGeometry( * * This routine returns the position and size of a "popped out" window (i.e., * a window whose positioning mode is xplm_WindowPopOut), in operating system - * pixels. Pass NULL to not receive any parameter. + * pixels. Pass NULL to not receive any parameter. * */ XPLM_API void XPLMGetWindowGeometryOS( - XPLMWindowID inWindowID, - int * outLeft, /* Can be NULL */ - int * outTop, /* Can be NULL */ - int * outRight, /* Can be NULL */ - int * outBottom); /* Can be NULL */ + XPLMWindowID inWindowID, + int * outLeft, /* Can be NULL */ + int * outTop, /* Can be NULL */ + int * outRight, /* Can be NULL */ + int * outBottom); /* Can be NULL */ #endif /* XPLM300 */ #if defined(XPLM300) @@ -984,15 +1698,15 @@ XPLM_API void XPLMGetWindowGeometryOS( * * Note that you are responsible for ensuring both that your window is popped * out (using XPLMWindowIsPoppedOut()) and that a monitor really exists at the - * OS coordinates you provide (using XPLMGetAllMonitorBoundsOS()). + * OS coordinates you provide (using XPLMGetAllMonitorBoundsOS()). * */ XPLM_API void XPLMSetWindowGeometryOS( - XPLMWindowID inWindowID, - int inLeft, - int inTop, - int inRight, - int inBottom); + XPLMWindowID inWindowID, + int inLeft, + int inTop, + int inRight, + int inBottom); #endif /* XPLM300 */ #if defined(XPLM301) @@ -1001,13 +1715,13 @@ XPLM_API void XPLMSetWindowGeometryOS( * * Returns the width and height, in boxels, of a window in VR. Note that you * are responsible for ensuring your window is in VR (using - * XPLMWindowIsInVR()). + * XPLMWindowIsInVR()). * */ XPLM_API void XPLMGetWindowGeometryVR( - XPLMWindowID inWindowID, - int * outWidthBoxels, /* Can be NULL */ - int * outHeightBoxels); /* Can be NULL */ + XPLMWindowID inWindowID, + int * outWidthBoxels, /* Can be NULL */ + int * outHeightBoxels); /* Can be NULL */ #endif /* XPLM301 */ #if defined(XPLM301) @@ -1018,33 +1732,33 @@ XPLM_API void XPLMGetWindowGeometryVR( * is, a window whose positioning mode is xplm_WindowVR). * * Note that you are responsible for ensuring your window is in VR (using - * XPLMWindowIsInVR()). + * XPLMWindowIsInVR()). * */ XPLM_API void XPLMSetWindowGeometryVR( - XPLMWindowID inWindowID, - int widthBoxels, - int heightBoxels); + XPLMWindowID inWindowID, + int widthBoxels, + int heightBoxels); #endif /* XPLM301 */ /* * XPLMGetWindowIsVisible * - * Returns true (1) if the specified window is visible. + * Returns true (1) if the specified window is visible. * */ XPLM_API int XPLMGetWindowIsVisible( - XPLMWindowID inWindowID); + XPLMWindowID inWindowID); /* * XPLMSetWindowIsVisible * - * This routine shows or hides a window. + * This routine shows or hides a window. * */ XPLM_API void XPLMSetWindowIsVisible( - XPLMWindowID inWindowID, - int inIsVisible); + XPLMWindowID inWindowID, + int inIsVisible); #if defined(XPLM300) /* @@ -1056,11 +1770,11 @@ XPLM_API void XPLMSetWindowIsVisible( * * Only applies to modern windows. (Windows created using the deprecated * XPLMCreateWindow(), or windows compiled against a pre-XPLM300 version of - * the SDK cannot be popped out.) + * the SDK cannot be popped out.) * */ XPLM_API int XPLMWindowIsPoppedOut( - XPLMWindowID inWindowID); + XPLMWindowID inWindowID); #endif /* XPLM300 */ #if defined(XPLM301) @@ -1073,11 +1787,11 @@ XPLM_API int XPLMWindowIsPoppedOut( * * Only applies to modern windows. (Windows created using the deprecated * XPLMCreateWindow(), or windows compiled against a pre-XPLM301 version of - * the SDK cannot be moved to VR.) + * the SDK cannot be moved to VR.) * */ XPLM_API int XPLMWindowIsInVR( - XPLMWindowID inWindowID); + XPLMWindowID inWindowID); #endif /* XPLM301 */ #if defined(XPLM300) @@ -1101,15 +1815,15 @@ XPLM_API int XPLMWindowIsInVR( * * Only applies to modern windows. (Windows created using the deprecated * XPLMCreateWindow(), or windows compiled against a pre-XPLM300 version of - * the SDK will simply get the default gravity.) + * the SDK will simply get the default gravity.) * */ XPLM_API void XPLMSetWindowGravity( - XPLMWindowID inWindowID, - float inLeftGravity, - float inTopGravity, - float inRightGravity, - float inBottomGravity); + XPLMWindowID inWindowID, + float inLeftGravity, + float inTopGravity, + float inRightGravity, + float inBottomGravity); #endif /* XPLM300 */ #if defined(XPLM300) @@ -1123,15 +1837,15 @@ XPLM_API void XPLMSetWindowGravity( * * Only applies to modern windows. (Windows created using the deprecated * XPLMCreateWindow(), or windows compiled against a pre-XPLM300 version of - * the SDK will have no minimum or maximum size.) + * the SDK will have no minimum or maximum size.) * */ XPLM_API void XPLMSetWindowResizingLimits( - XPLMWindowID inWindowID, - int inMinWidthBoxels, - int inMinHeightBoxels, - int inMaxWidthBoxels, - int inMaxHeightBoxels); + XPLMWindowID inWindowID, + int inMinWidthBoxels, + int inMinHeightBoxels, + int inMaxWidthBoxels, + int inMaxHeightBoxels); #endif /* XPLM300 */ #if defined(XPLM300) @@ -1146,32 +1860,32 @@ XPLM_API void XPLMSetWindowResizingLimits( * created using XPLMCreateWindowEx() and compiled against the XPLM300 SDK). * Windows created using the deprecated XPLMCreateWindow(), or windows * compiled against a pre-XPLM300 version of the SDK will simply get the - * "free" positioning mode. + * "free" positioning mode. * */ enum { - /* The default positioning mode. Set the window geometry and its future * - * position will be determined by its window gravity, resizing limits, and * - * user interactions. */ + /* The default positioning mode. Set the window geometry and its future * + * position will be determined by its window gravity, resizing limits, and * + * user interactions. */ xplm_WindowPositionFree = 0, - /* Keep the window centered on the monitor you specify */ + /* Keep the window centered on the monitor you specify */ xplm_WindowCenterOnMonitor = 1, - /* Keep the window full screen on the monitor you specify */ + /* Keep the window full screen on the monitor you specify */ xplm_WindowFullScreenOnMonitor = 2, - /* Like gui_window_full_screen_on_monitor, but stretches over *all* monitors * - * and popout windows. This is an obscure one... unless you have a very good * - * reason to need it, you probably don't! */ + /* Like gui_window_full_screen_on_monitor, but stretches over *all* monitors * + * and popout windows. This is an obscure one... unless you have a very good * + * reason to need it, you probably don't! */ xplm_WindowFullScreenOnAllMonitors = 3, - /* A first-class window in the operating system, completely separate from the * - * X-Plane window(s) */ + /* A first-class window in the operating system, completely separate from the * + * X-Plane window(s) */ xplm_WindowPopOut = 4, #if defined(XPLM301) - /* A floating window visible on the VR headset */ + /* A floating window visible on the VR headset */ xplm_WindowVR = 5, #endif /* XPLM301 */ @@ -1195,13 +1909,13 @@ typedef int XPLMWindowPositioningMode; * * Only applies to modern windows. (Windows created using the deprecated * XPLMCreateWindow(), or windows compiled against a pre-XPLM300 version of - * the SDK will always use xplm_WindowPositionFree.) + * the SDK will always use xplm_WindowPositionFree.) * */ XPLM_API void XPLMSetWindowPositioningMode( - XPLMWindowID inWindowID, - XPLMWindowPositioningMode inPositioningMode, - int inMonitorIndex); + XPLMWindowID inWindowID, + XPLMWindowPositioningMode inPositioningMode, + int inMonitorIndex); #endif /* XPLM300 */ #if defined(XPLM300) @@ -1211,34 +1925,34 @@ XPLM_API void XPLMSetWindowPositioningMode( * Sets the name for a window. This only applies to windows that opted-in to * styling as an X-Plane 11 floating window (i.e., with styling mode * xplm_WindowDecorationRoundRectangle) when they were created using - * XPLMCreateWindowEx(). + * XPLMCreateWindowEx(). * */ XPLM_API void XPLMSetWindowTitle( - XPLMWindowID inWindowID, - const char * inWindowTitle); + XPLMWindowID inWindowID, + const char * inWindowTitle); #endif /* XPLM300 */ /* * XPLMGetWindowRefCon * * Returns a window's reference constant, the unique value you can use for - * your own purposes. + * your own purposes. * */ XPLM_API void * XPLMGetWindowRefCon( - XPLMWindowID inWindowID); + XPLMWindowID inWindowID); /* * XPLMSetWindowRefCon * * Sets a window's reference constant. Use this to pass data to yourself in - * the callbacks. + * the callbacks. * */ XPLM_API void XPLMSetWindowRefCon( - XPLMWindowID inWindowID, - void * inRefcon); + XPLMWindowID inWindowID, + void * inRefcon); /* * XPLMTakeKeyboardFocus @@ -1246,22 +1960,22 @@ XPLM_API void XPLMSetWindowRefCon( * This routine gives a specific window keyboard focus. Keystrokes will be * sent to that window. Pass a window ID of 0 to remove keyboard focus from * any plugin-created windows and instead pass keyboard strokes directly to - * X-Plane. + * X-Plane. * */ XPLM_API void XPLMTakeKeyboardFocus( - XPLMWindowID inWindow); + XPLMWindowID inWindow); /* * XPLMHasKeyboardFocus * * Returns true (1) if the indicated window has keyboard focus. Pass a window * ID of 0 to see if no plugin window has focus, and all keystrokes will go - * directly to X-Plane. + * directly to X-Plane. * */ XPLM_API int XPLMHasKeyboardFocus( - XPLMWindowID inWindow); + XPLMWindowID inWindow); /* * XPLMBringWindowToFront @@ -1277,11 +1991,11 @@ XPLM_API int XPLMHasKeyboardFocus( * xplm_WindowLayerModal) above you, you would still not be the true frontmost * window after calling this. (After all, the window layers are strictly * ordered, and no window in a lower layer can ever be above any window in a - * higher one.) + * higher one.) * */ XPLM_API void XPLMBringWindowToFront( - XPLMWindowID inWindow); + XPLMWindowID inWindow); /* * XPLMIsWindowInFront @@ -1299,18 +2013,18 @@ XPLM_API void XPLMBringWindowToFront( * xplm_WindowLayerFlightOverlay, while modern-style windows default to * xplm_WindowLayerFloatingWindows. This means it's perfectly consistent to * have two different plugin-created windows (one legacy, one modern) *both* - * be in the front (of their different layers!) at the same time. + * be in the front (of their different layers!) at the same time. * */ XPLM_API int XPLMIsWindowInFront( - XPLMWindowID inWindow); + XPLMWindowID inWindow); /*************************************************************************** * KEY SNIFFERS ***************************************************************************/ /* * Low-level keyboard handlers. Allows for intercepting keystrokes outside the - * normal rules of the user interface. + * normal rules of the user interface. * */ @@ -1334,14 +2048,14 @@ XPLM_API int XPLMIsWindowInFront( * Warning: this API declares virtual keys as a signed character; however the * VKEY #define macros in XPLMDefs.h define the vkeys using unsigned values * (that is 0x80 instead of -0x80). So you may need to cast the incoming vkey - * to an unsigned char to get correct comparisons in C. + * to an unsigned char to get correct comparisons in C. * */ typedef int (* XPLMKeySniffer_f)( - char inChar, - XPLMKeyFlags inFlags, - char inVirtualKey, - void * inRefcon); + char inChar, + XPLMKeyFlags inFlags, + char inVirtualKey, + void * inRefcon); /* * XPLMRegisterKeySniffer @@ -1352,26 +2066,26 @@ typedef int (* XPLMKeySniffer_f)( * after the window system. When the window system consumes a key, it is * because the user has "focused" a window. Consuming the key or taking * action based on the key will produce very weird results. Returns - * 1 if successful. + * 1 if successful. * */ XPLM_API int XPLMRegisterKeySniffer( - XPLMKeySniffer_f inCallback, - int inBeforeWindows, - void * inRefcon); + XPLMKeySniffer_f inCallback, + int inBeforeWindows, + void * inRefcon); /* * XPLMUnregisterKeySniffer * * This routine unregisters a key sniffer. You must unregister a key sniffer * for every time you register one with the exact same signature. Returns 1 - * if successful. + * if successful. * */ XPLM_API int XPLMUnregisterKeySniffer( - XPLMKeySniffer_f inCallback, - int inBeforeWindows, - void * inRefcon); + XPLMKeySniffer_f inCallback, + int inBeforeWindows, + void * inRefcon); /*************************************************************************** * HOT KEYS @@ -1379,7 +2093,7 @@ XPLM_API int XPLMUnregisterKeySniffer( /* * Keystrokes that can be managed by others. These are lower-level than window * keyboard handlers (i.e., callbacks you attach to your XPLMCreateWindow_t), - * but higher level than key sniffers. + * but higher level than key sniffers. * */ @@ -1387,16 +2101,16 @@ XPLM_API int XPLMUnregisterKeySniffer( /* * XPLMHotKey_f * - * Your hot key callback simply takes a pointer of your choosing. + * Your hot key callback simply takes a pointer of your choosing. * */ typedef void (* XPLMHotKey_f)( - void * inRefcon); + void * inRefcon); /* * XPLMHotKeyID * - * An opaque ID used to identify a hot key. + * An opaque ID used to identify a hot key. * */ typedef void * XPLMHotKeyID; @@ -1409,29 +2123,29 @@ typedef void * XPLMHotKeyID; * other plug-ins can describe the plug-in to the user for remapping) and a * callback function and opaque pointer to pass in). A new hot key ID is * returned. During execution, the actual key associated with your hot key - * may change, but you are insulated from this. + * may change, but you are insulated from this. * */ XPLM_API XPLMHotKeyID XPLMRegisterHotKey( - char inVirtualKey, - XPLMKeyFlags inFlags, - const char * inDescription, - XPLMHotKey_f inCallback, - void * inRefcon); + char inVirtualKey, + XPLMKeyFlags inFlags, + const char * inDescription, + XPLMHotKey_f inCallback, + void * inRefcon); /* * XPLMUnregisterHotKey * - * Unregisters a hot key. You can only unregister your own hot keys. + * Unregisters a hot key. You can only unregister your own hot keys. * */ XPLM_API void XPLMUnregisterHotKey( - XPLMHotKeyID inHotKey); + XPLMHotKeyID inHotKey); /* * XPLMCountHotKeys * - * Returns the number of current hot keys. + * Returns the number of current hot keys. * */ XPLM_API int XPLMCountHotKeys(void); @@ -1439,36 +2153,36 @@ XPLM_API int XPLMCountHotKeys(void); /* * XPLMGetNthHotKey * - * Returns a hot key by index, for iteration on all hot keys. + * Returns a hot key by index, for iteration on all hot keys. * */ XPLM_API XPLMHotKeyID XPLMGetNthHotKey( - int inIndex); + int inIndex); /* * XPLMGetHotKeyInfo * * Returns information about the hot key. Return NULL for any parameter you - * don't want info about. The description should be at least 512 chars long. + * don't want info about. The description should be at least 512 chars long. * */ XPLM_API void XPLMGetHotKeyInfo( - XPLMHotKeyID inHotKey, - char * outVirtualKey, /* Can be NULL */ - XPLMKeyFlags * outFlags, /* Can be NULL */ - char * outDescription, /* Can be NULL */ - XPLMPluginID * outPlugin); /* Can be NULL */ + XPLMHotKeyID inHotKey, + char * outVirtualKey, /* Can be NULL */ + XPLMKeyFlags * outFlags, /* Can be NULL */ + char * outDescription, /* Can be NULL */ + XPLMPluginID * outPlugin); /* Can be NULL */ /* * XPLMSetHotKeyCombination * - * Remaps a hot key's keystrokes. You may remap another plugin's keystrokes. + * Remaps a hot key's keystrokes. You may remap another plugin's keystrokes. * */ XPLM_API void XPLMSetHotKeyCombination( - XPLMHotKeyID inHotKey, - char inVirtualKey, - XPLMKeyFlags inFlags); + XPLMHotKeyID inHotKey, + char inVirtualKey, + XPLMKeyFlags inFlags); #ifdef __cplusplus } diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMGraphics.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMGraphics.h old mode 100755 new mode 100644 index d7aef52..f05cb1c --- a/Example/Lib/SDK/CHeaders/XPLM/XPLMGraphics.h +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMGraphics.h @@ -2,8 +2,8 @@ #define _XPLMGraphics_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -17,14 +17,14 @@ * as latitude, longitude and elevation. This coordinate system never changes * but is not very precise. * - * OpenGL (or 'local') coordinates are cartesian and shift with the plane. + * OpenGL (or 'local') coordinates are cartesian and move with the aircraft. * They offer more precision and are used for 3-d OpenGL drawing. The X axis * is aligned east-west with positive X meaning east. The Y axis is aligned - * straight up and down at the point 0,0,0 (but since the earth is round it is + * straight up and down at the point 0,0,0 (but since the Earth is round it is * not truly straight up and down at other points). The Z axis is aligned - * north-south at 0, 0, 0 with positive Z pointing south (but since the earth + * north-south at 0, 0, 0 with positive Z pointing south (but since the Earth * is round it isn't exactly north-south as you move east or west of 0, 0, 0). - * One unit is one meter and the point 0,0,0 is on the surface of the earth at + * One unit is one meter and the point 0,0,0 is on the surface of the Earth at * sea level for some latitude and longitude picked by the sim such that the * user's aircraft is reasonably nearby. * @@ -38,7 +38,7 @@ * not attempt to do this conversion yourself; the precise 'roundness' of * X-Plane's physics model may not match your own, and (to make things * weirder) the user can potentially customize the physics of the current - * planet. + * planet. * */ @@ -52,7 +52,7 @@ extern "C" { * X-PLANE GRAPHICS ***************************************************************************/ /* - * These routines allow you to use OpenGL with X-Plane. + * These routines allow you to use OpenGL with X-Plane. * */ @@ -65,20 +65,20 @@ extern "C" { * * *Warning*: do not use these enums. The only remaining use they have is to * access the legacy compatibility v10 UI texture; if you need this, get it - * via the Widgets library. + * via the Widgets library. * */ enum { - /* The bitmap that contains window outlines, button outlines, fonts, etc. */ + /* The bitmap that contains window outlines, button outlines, fonts, etc. */ xplm_Tex_GeneralInterface = 0, #if defined(XPLM_DEPRECATED) - /* The exterior paint for the user's aircraft (daytime). */ + /* The exterior paint for the user's aircraft (daytime). */ xplm_Tex_AircraftPaint = 1, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* The exterior light map for the user's aircraft. */ + /* The exterior light map for the user's aircraft. */ xplm_Tex_AircraftLiteMap = 2, #endif /* XPLM_DEPRECATED */ @@ -110,7 +110,7 @@ typedef int XPLMTextureID; * - inEnableDepthTesting - enables per pixel depth testing, as in * glEnable(GL_DEPTH_TEST); * - inEnableDepthWriting - enables writing back of depth information to the - * depth bufffer, as in glDepthMask(GL_TRUE); + * depth buffer, as in glDepthMask(GL_TRUE); * * The purpose of this function is to change OpenGL state while keeping * X-Plane aware of the state changes; this keeps X-Plane from getting @@ -127,21 +127,21 @@ typedef int XPLMTextureID; * code) may change X-Plane's state. Always set state before drawing after * unknown code has executed. * - * *Deprecation Warnings*: X-Plane's lighting and fog environemnt is + * *Deprecation Warnings*: X-Plane's lighting and fog environment is * significantly more complex than the fixed function pipeline can express; * do not assume that lighting and fog state is a good approximation for 3-d * drawing. Prefer to use XPLMInstancing to draw objects. All calls to - * XPLMSetGraphicsState should have no fog or lighting. + * XPLMSetGraphicsState should have no fog or lighting. * */ XPLM_API void XPLMSetGraphicsState( - int inEnableFog, - int inNumberTexUnits, - int inEnableLighting, - int inEnableAlphaTesting, - int inEnableAlphaBlending, - int inEnableDepthTesting, - int inEnableDepthWriting); + int inEnableFog, + int inNumberTexUnits, + int inEnableLighting, + int inEnableAlphaTesting, + int inEnableAlphaBlending, + int inEnableDepthTesting, + int inEnableDepthWriting); /* * XPLMBindTexture2d @@ -152,30 +152,30 @@ XPLM_API void XPLMSetGraphicsState( * example, consider several plug-ins running in series; if they all use the * 'general interface' bitmap to do UI, calling this function will skip the * rebinding of the general interface texture on all but the first plug-in, - * which can provide better frame rate son some graphics cards. + * which can provide better frame rates on some graphics cards. * * inTextureID is the ID of the texture object to bind; inTextureUnit is a * zero-based texture unit (e.g. 0 for the first one), up to a maximum of 4 * units. (This number may increase in future versions of X-Plane.) * - * Use this routine instead of glBindTexture(GL_TEXTURE_2D, ....); + * Use this routine instead of glBindTexture(GL_TEXTURE_2D, ....); * */ XPLM_API void XPLMBindTexture2d( - int inTextureNum, - int inTextureUnit); + int inTextureNum, + int inTextureUnit); /* * XPLMGenerateTextureNumbers * * Use this routine instead of glGenTextures to generate new texture object * IDs. This routine historically ensured that plugins don't use texure IDs - * that X-Plane is reserving for its own use. + * that X-Plane is reserving for its own use. * */ XPLM_API void XPLMGenerateTextureNumbers( - int * outTextureIDs, - int inCount); + int * outTextureIDs, + int inCount); #if defined(XPLM_DEPRECATED) /* @@ -183,11 +183,11 @@ XPLM_API void XPLMGenerateTextureNumbers( * * XPLMGetTexture returns the OpenGL texture ID of an X-Plane texture based on * a generic identifying code. For example, you can get the texture for - * X-Plane's UI bitmaps. + * X-Plane's UI bitmaps. * */ XPLM_API int XPLMGetTexture( - XPLMTextureID inTexture); + XPLMTextureID inTexture); #endif /* XPLM_DEPRECATED */ /* @@ -196,16 +196,16 @@ XPLM_API int XPLMGetTexture( * This routine translates coordinates from latitude, longitude, and altitude * to local scene coordinates. Latitude and longitude are in decimal degrees, * and altitude is in meters MSL (mean sea level). The XYZ coordinates are in - * meters in the local OpenGL coordinate system. + * meters in the local OpenGL coordinate system. * */ XPLM_API void XPLMWorldToLocal( - double inLatitude, - double inLongitude, - double inAltitude, - double * outX, - double * outY, - double * outZ); + double inLatitude, + double inLongitude, + double inAltitude, + double * outX, + double * outY, + double * outZ); /* * XPLMLocalToWorld @@ -216,30 +216,30 @@ XPLM_API void XPLMWorldToLocal( * meters in the local OpenGL coordinate system. * * NOTE: world coordinates are less precise than local coordinates; you should - * try to avoid round tripping from local to world and back. + * try to avoid round tripping from local to world and back. * */ XPLM_API void XPLMLocalToWorld( - double inX, - double inY, - double inZ, - double * outLatitude, - double * outLongitude, - double * outAltitude); + double inX, + double inY, + double inZ, + double * outLatitude, + double * outLongitude, + double * outAltitude); /* * XPLMDrawTranslucentDarkBox * * This routine draws a translucent dark box, partially obscuring parts of the * screen but making text easy to read. This is the same graphics primitive - * used by X-Plane to show text files and ATC info. + * used by X-Plane to show text files. * */ XPLM_API void XPLMDrawTranslucentDarkBox( - int inLeft, - int inTop, - int inRight, - int inBottom); + int inLeft, + int inTop, + int inRight, + int inBottom); /*************************************************************************** * X-PLANE TEXT @@ -257,100 +257,100 @@ XPLM_API void XPLMDrawTranslucentDarkBox( * Note: X-Plane 7 supports proportional-spaced fonts. Since no measuring * routine is available yet, the SDK will normally draw using a fixed-width * font. You can use a dataref to enable proportional font drawing on XP7 if - * you want to. + * you want to. * */ enum { - /* Mono-spaced font for user interface. Available in all versions of the SDK.*/ + /* Mono-spaced font for user interface. Available in all versions of the SDK.*/ xplmFont_Basic = 0, #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_Menus = 1, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_Metal = 2, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_Led = 3, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_LedWide = 4, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_PanelHUD = 5, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_PanelEFIS = 6, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_PanelGPS = 7, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_RadiosGA = 8, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_RadiosBC = 9, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_RadiosHM = 10, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_RadiosGANarrow = 11, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_RadiosBCNarrow = 12, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_RadiosHMNarrow = 13, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_Timer = 14, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_FullRound = 15, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_SmallRound = 16, #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) - /* Deprecated, do not use. */ + /* Deprecated, do not use. */ xplmFont_Menus_Localized = 17, #endif /* XPLM_DEPRECATED */ #if defined(XPLM200) - /* Proportional UI font. */ + /* Proportional UI font. */ xplmFont_Proportional = 18, #endif /* XPLM200 */ @@ -361,21 +361,21 @@ typedef int XPLMFontID; /* * XPLMDrawString * - * This routine draws a NULL termianted string in a given font. Pass in the + * This routine draws a NULL terminated string in a given font. Pass in the * lower left pixel that the character is to be drawn onto. Also pass the * character and font ID. This function returns the x offset plus the width of * all drawn characters. The color to draw in is specified as a pointer to an * array of three floating point colors, representing RGB intensities from 0.0 - * to 1.0. + * to 1.0. * */ XPLM_API void XPLMDrawString( - float * inColorRGB, - int inXOffset, - int inYOffset, - char * inChar, - int * inWordWrapWidth, /* Can be NULL */ - XPLMFontID inFontID); + float * inColorRGB, + int inXOffset, + int inYOffset, + const char * inChar, + int * inWordWrapWidth, /* Can be NULL */ + XPLMFontID inFontID); /* * XPLMDrawNumber @@ -385,18 +385,18 @@ XPLM_API void XPLMDrawString( * position, a floating point value, and formatting info. Specify how many * integer and how many decimal digits to show and whether to show a sign, as * well as a character set. This routine returns the xOffset plus width of the - * string drawn. + * string drawn. * */ XPLM_API void XPLMDrawNumber( - float * inColorRGB, - int inXOffset, - int inYOffset, - double inValue, - int inDigits, - int inDecimals, - int inShowSign, - XPLMFontID inFontID); + float * inColorRGB, + int inXOffset, + int inYOffset, + double inValue, + int inDigits, + int inDecimals, + int inShowSign, + XPLMFontID inFontID); /* * XPLMGetFontDimensions @@ -404,14 +404,14 @@ XPLM_API void XPLMDrawNumber( * This routine returns the width and height of a character in a given font. * It also tells you if the font only supports numeric digits. Pass NULL if * you don't need a given field. Note that for a proportional font the width - * will be an arbitrary, hopefully average width. + * will be an arbitrary, hopefully average width. * */ XPLM_API void XPLMGetFontDimensions( - XPLMFontID inFontID, - int * outCharWidth, /* Can be NULL */ - int * outCharHeight, /* Can be NULL */ - int * outDigitsOnly); /* Can be NULL */ + XPLMFontID inFontID, + int * outCharWidth, /* Can be NULL */ + int * outCharHeight, /* Can be NULL */ + int * outDigitsOnly); /* Can be NULL */ #if defined(XPLM200) /* @@ -421,13 +421,13 @@ XPLM_API void XPLMGetFontDimensions( * The string is passed as a pointer plus length (and does not need to be null * terminated); this is used to allow for measuring substrings. The return * value is floating point; it is possible that future font drawing may allow - * for fractional pixels. + * for fractional pixels. * */ XPLM_API float XPLMMeasureString( - XPLMFontID inFontID, - const char * inChar, - int inNumChars); + XPLMFontID inFontID, + const char * inChar, + int inNumChars); #endif /* XPLM200 */ #ifdef __cplusplus diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMInstance.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMInstance.h index d2a8f2c..f2460fb 100644 --- a/Example/Lib/SDK/CHeaders/XPLM/XPLMInstance.h +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMInstance.h @@ -2,8 +2,8 @@ #define _XPLMInstance_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -17,11 +17,11 @@ * drawing, then move or manipulate it later (as needed). * * This provides one tremendous benefit: it keeps all dataref operations for - * your object in one place. Because datarefs are main thread only, allowing - * dataref access anywhere is a serious performance bottleneck for the - * simulator---the whole simulator has to pause and wait for each dataref - * access. This performance penalty will only grow worse as X-Plane moves - * toward an ever more heavily multithreaded engine. + * your object in one place. Because datarefs access may be done from the main + * thread only, allowing dataref access anywhere is a serious performance + * bottleneck for the simulator - the whole simulator has to pause and wait + * for each dataref access. This performance penalty will only grow worse as + * X-Plane moves toward an ever more heavily multithreaded engine. * * The instancing API allows X-Plane to isolate all dataref manipulations for * all plugin object drawing to one place, potentially providing huge @@ -30,12 +30,12 @@ * Here's how it works: * * When an instance is created, it provides a list of all datarefs you want to - * manipulate in for the OBJ in the future. This list of datarefs replaces the + * manipulate for the OBJ in the future. This list of datarefs replaces the * ad-hoc collections of dataref objects previously used by art assets. Then, * per-frame, you can manipulate the instance by passing in a "block" of * packed floats representing the current values of the datarefs for your * instance. (Note that the ordering of this set of packed floats must exactly - * match the ordering of the datarefs when you created your instance.) + * match the ordering of the datarefs when you created your instance.) * */ @@ -50,7 +50,7 @@ extern "C" { * Instance Creation and Destruction ***************************************************************************/ /* - * Registers and unregisters instances. + * Registers and unregisters instances. * */ @@ -58,7 +58,7 @@ extern "C" { /* * XPLMInstanceRef * - * An opaque handle to an instance. + * An opaque handle to an instance. * */ typedef void * XPLMInstanceRef; @@ -77,15 +77,15 @@ typedef void * XPLMInstanceRef; * before the object is loaded. This is true even if their data will be * provided via the instance dataref list. * - * * The instance dataref array must be a valid ptr to an array of at least - * one item that is null terminated. That is, if you do not want any - * datarefs, you must passa ptr to an array with a null item. You cannot - * pass null for this. + * * The instance dataref array must be a valid pointer to a null-terminated + * array. That is, if you do not want any datarefs, you must pass a pointer + * to a one-element array containing a null item. You cannot pass null for + * the array itself. * */ XPLM_API XPLMInstanceRef XPLMCreateInstance( - XPLMObjectRef obj, - const char ** datarefs); + XPLMObjectRef obj, + const char ** datarefs); /* * XPLMDestroyInstance @@ -95,11 +95,11 @@ XPLM_API XPLMInstanceRef XPLMCreateInstance( * * Tip: you can release your OBJ ref after you call XPLMCreateInstance as long * as you never use it again; the instance will maintain its own reference to - * the OBJ and the object OBJ be deallocated when the instance is destroyed. + * the OBJ and the object OBJ be deallocated when the instance is destroyed. * */ XPLM_API void XPLMDestroyInstance( - XPLMInstanceRef instance); + XPLMInstanceRef instance); /*************************************************************************** * Instance Manipulation @@ -111,23 +111,23 @@ XPLM_API void XPLMDestroyInstance( * Updates both the position of the instance and all datarefs you registered * for it. Call this from a flight loop callback or UI callback. * - * __DO NOT__ call XPLMInstanceSetPosition from a drawing callback; the whole + * __DO_NOT__ call XPLMInstanceSetPosition from a drawing callback; the whole * point of instancing is that you do not need any drawing callbacks. Setting * instance data from a drawing callback may have undefined consequences, and * the drawing callback hurts FPS unnecessarily. * * The memory pointed to by the data pointer must be large enough to hold one - * float for every data ref you have registered, and must contain valid + * float for every dataref you have registered, and must contain valid * floating point data. * * BUG: before X-Plane 11.50, if you have no dataref registered, you must - * still pass a valid pointer for data and not null. + * still pass a valid pointer for data and not null. * */ XPLM_API void XPLMInstanceSetPosition( - XPLMInstanceRef instance, - const XPLMDrawInfo_t * new_position, - const float * data); + XPLMInstanceRef instance, + const XPLMDrawInfo_t * new_position, + const float * data); #ifdef __cplusplus } diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMMap.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMMap.h index 18c055a..de77144 100644 --- a/Example/Lib/SDK/CHeaders/XPLM/XPLMMap.h +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMMap.h @@ -2,8 +2,8 @@ #define _XPLMMap_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -17,7 +17,7 @@ * * As of X-Plane 11, map drawing happens in three stages: * - * 1. backgrounds and "fill," + * 1. backgrounds and "fill", * 2. icons, and * 3. labels. * @@ -56,7 +56,7 @@ * In addition to mapping normal latitude/longitude locations into map * coordinates, the projection APIs also let you know the current heading for * north. (Since X-Plane 11 maps can rotate to match the heading of the user's - * aircraft, it's not safe to assume that north is at zero degrees rotation.) + * aircraft, it's not safe to assume that north is at zero degrees rotation.) * */ @@ -75,7 +75,7 @@ extern "C" { * any or all of these callbacks. They allow you to insert your own OpenGL * drawing, text labels, and icons into the X-Plane map at the appropriate * places, allowing your layer to behave as similarly to X-Plane's built-in - * layers as possible. + * layers as possible. * */ @@ -93,7 +93,7 @@ typedef void * XPLMMapLayerID; * XPLMMapProjectionID * * This is an opaque handle for a map projection. Pass it to the projection - * APIs to translate between map coordinates and latitude/longitudes. + * APIs to translate between map coordinates and latitude/longitudes. * */ typedef void * XPLMMapProjectionID; @@ -106,7 +106,7 @@ typedef void * XPLMMapProjectionID; * a different visual representation for the same elements (for instance, the * visual style of the terrain layer changes drastically between the VFR and * IFR layers), or certain layers may be disabled entirely in some map types - * (e.g., localizers are only visible in the IFR low-enroute style). + * (e.g., localizers are only visible in the IFR low-enroute style). * */ enum { @@ -132,17 +132,17 @@ typedef int XPLMMapStyle; * X-Plane icons and labels, but above the built-in "fill" layers (layers * providing major details, like terrain and water). Note, however, that the * relative ordering between the drawing callbacks of different plugins is not - * guaranteed. + * guaranteed. * */ typedef void (* XPLMMapDrawingCallback_f)( - XPLMMapLayerID inLayer, - const float * inMapBoundsLeftTopRightBottom, - float zoomRatio, - float mapUnitsPerUserInterfaceUnit, - XPLMMapStyle mapStyle, - XPLMMapProjectionID projection, - void * inRefcon); + XPLMMapLayerID inLayer, + const float * inMapBoundsLeftTopRightBottom, + float zoomRatio, + float mapUnitsPerUserInterfaceUnit, + XPLMMapStyle mapStyle, + XPLMMapProjectionID projection, + void * inRefcon); /* * XPLMMapIconDrawingCallback_f @@ -158,17 +158,17 @@ typedef void (* XPLMMapDrawingCallback_f)( * built-in X-Plane map icons of the same layer type ("fill" or "markings," as * determined by the XPLMMapLayerType in your XPLMCreateMapLayer_t). Note, * however, that the relative ordering between the drawing callbacks of - * different plugins is not guaranteed. + * different plugins is not guaranteed. * */ typedef void (* XPLMMapIconDrawingCallback_f)( - XPLMMapLayerID inLayer, - const float * inMapBoundsLeftTopRightBottom, - float zoomRatio, - float mapUnitsPerUserInterfaceUnit, - XPLMMapStyle mapStyle, - XPLMMapProjectionID projection, - void * inRefcon); + XPLMMapLayerID inLayer, + const float * inMapBoundsLeftTopRightBottom, + float zoomRatio, + float mapUnitsPerUserInterfaceUnit, + XPLMMapStyle mapStyle, + XPLMMapProjectionID projection, + void * inRefcon); /* * XPLMMapLabelDrawingCallback_f @@ -184,17 +184,17 @@ typedef void (* XPLMMapIconDrawingCallback_f)( * built-in map icons and labels of the same layer type ("fill" or "markings," * as determined by the XPLMMapLayerType in your XPLMCreateMapLayer_t). Note, * however, that the relative ordering between the drawing callbacks of - * different plugins is not guaranteed. + * different plugins is not guaranteed. * */ typedef void (* XPLMMapLabelDrawingCallback_f)( - XPLMMapLayerID inLayer, - const float * inMapBoundsLeftTopRightBottom, - float zoomRatio, - float mapUnitsPerUserInterfaceUnit, - XPLMMapStyle mapStyle, - XPLMMapProjectionID projection, - void * inRefcon); + XPLMMapLayerID inLayer, + const float * inMapBoundsLeftTopRightBottom, + float zoomRatio, + float mapUnitsPerUserInterfaceUnit, + XPLMMapStyle mapStyle, + XPLMMapProjectionID projection, + void * inRefcon); #endif /* XPLM300 */ #if defined(XPLM300) @@ -205,7 +205,7 @@ typedef void (* XPLMMapLabelDrawingCallback_f)( * These are various "bookkeeping" callbacks that your map layer can receive * (if you provide the callback in your XPLMCreateMapLayer_t). They allow you * to manage the lifecycle of your layer, as well as cache any - * computationally-intensive preparation you might need for drawing. + * computationally-intensive preparation you might need for drawing. * */ @@ -229,26 +229,26 @@ typedef void (* XPLMMapLabelDrawingCallback_f)( * prepare cache calls, nor will any draw call give you bounds outside these * total map bounds. So, if you cache the projected map coordinates of all the * items you might want to draw in the total map area, you can be guaranteed - * that no draw call will be asked to do any new work. + * that no draw call will be asked to do any new work. * */ typedef void (* XPLMMapPrepareCacheCallback_f)( - XPLMMapLayerID inLayer, - const float * inTotalMapBoundsLeftTopRightBottom, - XPLMMapProjectionID projection, - void * inRefcon); + XPLMMapLayerID inLayer, + const float * inTotalMapBoundsLeftTopRightBottom, + XPLMMapProjectionID projection, + void * inRefcon); /* * XPLMMapWillBeDeletedCallback_f * * Called just before your map layer gets deleted. Because SDK-created map * layers have the same lifetime as the X-Plane map that contains them, if the - * map gets unloaded from memory, your layer will too. + * map gets unloaded from memory, your layer will too. * */ typedef void (* XPLMMapWillBeDeletedCallback_f)( - XPLMMapLayerID inLayer, - void * inRefcon); + XPLMMapLayerID inLayer, + void * inRefcon); #endif /* XPLM300 */ #if defined(XPLM300) @@ -265,7 +265,7 @@ typedef void (* XPLMMapWillBeDeletedCallback_f)( * Your layer's lifetime will be determined by the lifetime of the map it is * created in. If the map is destroyed (on the X-Plane side), your layer will * be too, and you'll receive a callback to your - * XPLMMapWillBeDeletedCallback_f. + * XPLMMapWillBeDeletedCallback_f. * */ @@ -274,17 +274,17 @@ typedef void (* XPLMMapWillBeDeletedCallback_f)( * XPLMMapLayerType * * Indicates the type of map layer you are creating. Fill layers will always - * be drawn beneath markings layers. + * be drawn beneath markings layers. * */ enum { - /* A layer that draws "fill" graphics, like weather patterns, terrain, etc. * - * Fill layers frequently cover a large portion of the visible map area. */ + /* A layer that draws "fill" graphics, like weather patterns, terrain, etc. * + * Fill layers frequently cover a large portion of the visible map area. */ xplm_MapLayer_Fill = 0, - /* A layer that provides markings for particular map features, like NAVAIDs, * - * airports, etc. Even dense markings layers cover a small portion of the * - * total map area. */ + /* A layer that provides markings for particular map features, like NAVAIDs, * + * airports, etc. Even dense markings layers cover a small portion of the * + * total map area. */ xplm_MapLayer_Markings = 1, @@ -309,45 +309,45 @@ typedef int XPLMMapLayerType; * * Each layer must be associated with exactly one map instance in X-Plane. * That map, and that map alone, will call your callbacks. Likewise, when that - * map is deleted, your layer will be as well. + * map is deleted, your layer will be as well. * */ typedef struct { - /* Used to inform XPLMCreateMapLayer() of the SDK version you compiled * - * against; should always be set to sizeof(XPLMCreateMapLayer_t) */ + /* Used to inform XPLMCreateMapLayer() of the SDK version you compiled * + * against; should always be set to sizeof(XPLMCreateMapLayer_t) */ int structSize; - /* Globally unique string identifying the map you want this layer to appear * - * in. As of XPLM300, this is limited to one of XPLM_MAP_USER_INTERFACE or * - * XPLM_MAP_IOS */ + /* Globally unique string identifying the map you want this layer to appear * + * in. As of XPLM300, this is limited to one of XPLM_MAP_USER_INTERFACE or * + * XPLM_MAP_IOS */ const char * mapToCreateLayerIn; - /* The type of layer you are creating, used to determine draw order (all * - * plugin-created markings layers are drawn above all plugin-created fill * - * layers) */ + /* The type of layer you are creating, used to determine draw order (all * + * plugin-created markings layers are drawn above all plugin-created fill * + * layers) */ XPLMMapLayerType layerType; - /* Optional callback to inform you this layer is being deleted (due to its * - * owning map being destroyed) */ + /* Optional callback to inform you this layer is being deleted (due to its * + * owning map being destroyed) */ XPLMMapWillBeDeletedCallback_f willBeDeletedCallback; - /* Optional callback you want to use to prepare your draw cache when the map * - * bounds change (set to NULL if you don't want this callback) */ + /* Optional callback you want to use to prepare your draw cache when the map * + * bounds change (set to NULL if you don't want this callback) */ XPLMMapPrepareCacheCallback_f prepCacheCallback; - /* Optional callback you want to use for arbitrary OpenGL drawing, which goes * - * beneath all icons in the map's layering system (set to NULL if you don't * - * want this callback) */ + /* Optional callback you want to use for arbitrary OpenGL drawing, which goes * + * beneath all icons in the map's layering system (set to NULL if you don't * + * want this callback) */ XPLMMapDrawingCallback_f drawCallback; - /* Optional callback you want to use for drawing icons, which go above all * - * built-in X-Plane icons (except the aircraft) in the map's layering system * - * (set to NULL if you don't want this callback) */ + /* Optional callback you want to use for drawing icons, which go above all * + * built-in X-Plane icons (except the aircraft) in the map's layering system * + * (set to NULL if you don't want this callback) */ XPLMMapIconDrawingCallback_f iconCallback; - /* Optional callback you want to use for drawing map labels, which go above * - * all built-in X-Plane icons and labels (except those of aircraft) in the * - * map's layering system (set to NULL if you don't want this callback) */ + /* Optional callback you want to use for drawing map labels, which go above * + * all built-in X-Plane icons and labels (except those of aircraft) in the * + * map's layering system (set to NULL if you don't want this callback) */ XPLMMapLabelDrawingCallback_f labelCallback; - /* True if you want a checkbox to be created in the map UI to toggle this * - * layer on and off; false if the layer should simply always be enabled */ + /* True if you want a checkbox to be created in the map UI to toggle this * + * layer on and off; false if the layer should simply always be enabled */ int showUiToggle; - /* Short label to use for this layer in the user interface */ + /* Short label to use for this layer in the user interface */ const char * layerName; - /* A reference to arbitrary data that will be passed to your callbacks */ + /* A reference to arbitrary data that will be passed to your callbacks */ void * refcon; } XPLMCreateMapLayer_t; @@ -355,7 +355,7 @@ typedef struct { * XPLMCreateMapLayer * * This routine creates a new map layer. You pass in an XPLMCreateMapLayer_t - * structure with all of the fields set in. You must set the structSize of + * structure with all of the fields defined. You must set the structSize of * the structure to the size of the actual structure you used. * * Returns NULL if the layer creation failed. This happens most frequently @@ -363,22 +363,22 @@ typedef struct { * XPLMCreateMapLayer_t::mapToCreateLayerIn field doesn't exist (that is, if * XPLMMapExists() returns 0 for the specified map). You can use * XPLMRegisterMapCreationHook() to get a notification each time a new map is - * opened in X-Plane, at which time you can create layers in it. + * opened in X-Plane, at which time you can create layers in it. * */ XPLM_API XPLMMapLayerID XPLMCreateMapLayer( - XPLMCreateMapLayer_t * inParams); + XPLMCreateMapLayer_t * inParams); /* * XPLMDestroyMapLayer * * Destroys a map layer you created (calling your * XPLMMapWillBeDeletedCallback_f if applicable). Returns true if a deletion - * took place. + * took place. * */ XPLM_API int XPLMDestroyMapLayer( - XPLMMapLayerID inLayer); + XPLMMapLayerID inLayer); /* * XPLMMapCreatedCallback_f @@ -387,12 +387,12 @@ XPLM_API int XPLMDestroyMapLayer( * X-Plane. This is the best time to add a custom map layer using * XPLMCreateMapLayer(). * - * No OpenGL drawing is permitted within this callback. + * No OpenGL drawing is permitted within this callback. * */ typedef void (* XPLMMapCreatedCallback_f)( - const char * mapIdentifier, - void * refcon); + const char * mapIdentifier, + void * refcon); /* * XPLMRegisterMapCreationHook @@ -402,23 +402,23 @@ typedef void (* XPLMMapCreatedCallback_f)( * map layer using XPLMCreateMapLayer(). * * Note that you will not be notified about any maps that already exist---you - * can use XPLMMapExists() to check for maps that were created previously. + * can use XPLMMapExists() to check for maps that were created previously. * */ XPLM_API void XPLMRegisterMapCreationHook( - XPLMMapCreatedCallback_f callback, - void * refcon); + XPLMMapCreatedCallback_f callback, + void * refcon); /* * XPLMMapExists * * Returns 1 if the map with the specified identifier already exists in * X-Plane. In that case, you can safely call XPLMCreateMapLayer() specifying - * that your layer should be added to that map. + * that your layer should be added to that map. * */ XPLM_API int XPLMMapExists( - const char * mapIdentifier); + const char * mapIdentifier); #endif /* XPLM300 */ #if defined(XPLM300) @@ -437,7 +437,7 @@ XPLM_API int XPLMMapExists( * xplm_MapLayer_Fill get drawn beneath all xplm_MapLayer_Markings layers. * Likewise, all OpenGL drawing (performed in your layer's * XPLMMapDrawingCallback_f) will appear beneath any icons and labels you - * draw. + * draw. * */ @@ -450,14 +450,14 @@ XPLM_API int XPLMMapExists( * rotated such that "up" matches the user's aircraft, but you may want to * draw a text label such that it is always rotated zero degrees relative to * the user's perspective. In that case, you would have it draw with UI - * orientation. + * orientation. * */ enum { - /* Orient such that a 0 degree rotation matches the map's north */ + /* Orient such that a 0 degree rotation matches the map's north */ xplm_MapOrientation_Map = 0, - /* Orient such that a 0 degree rotation is "up" relative to the user interface*/ + /* Orient such that a 0 degree rotation is "up" relative to the user interface*/ xplm_MapOrientation_UI = 1, @@ -484,7 +484,7 @@ typedef int XPLMMapOrientation; * PNGs. * * The UV coordinates used here treat the texture you load as being comprised - * of a number of identically sized "cells." You specify the width and height + * of a number of identically sized "cells". You specify the width and height * in cells (ds and dt, respectively), as well as the coordinates within the * cell grid for the sub-image you'd like to draw. * @@ -494,21 +494,21 @@ typedef int XPLMMapOrientation; * * This function is only valid from within an XPLMIconDrawingCallback_t (but * you can request an arbitrary number of icons to be drawn from within your - * callback). + * callback). * */ XPLM_API void XPLMDrawMapIconFromSheet( - XPLMMapLayerID layer, - const char * inPngPath, - int s, - int t, - int ds, - int dt, - float mapX, - float mapY, - XPLMMapOrientation orientation, - float rotationDegrees, - float mapWidth); + XPLMMapLayerID layer, + const char * inPngPath, + int s, + int t, + int ds, + int dt, + float mapX, + float mapY, + XPLMMapOrientation orientation, + float rotationDegrees, + float mapWidth); /* * XPLMDrawMapLabel @@ -516,16 +516,16 @@ XPLM_API void XPLMDrawMapIconFromSheet( * Enables plugin-created map layers to draw text labels using X-Plane's * built-in labeling functionality. Only valid from within an * XPLMMapLabelDrawingCallback_f (but you can request an arbitrary number of - * text labels to be drawn from within your callback). + * text labels to be drawn from within your callback). * */ XPLM_API void XPLMDrawMapLabel( - XPLMMapLayerID layer, - const char * inText, - float mapX, - float mapY, - XPLMMapOrientation orientation, - float rotationDegrees); + XPLMMapLayerID layer, + const char * inText, + float mapX, + float mapY, + XPLMMapOrientation orientation, + float rotationDegrees); #endif /* XPLM300 */ #if defined(XPLM300) @@ -544,7 +544,7 @@ XPLM_API void XPLMDrawMapLabel( * * Finally, the map projection can give you the current rotation of the map. * Since X-Plane 11 maps can rotate to match the heading of the aircraft, the - * map's rotation can potentially change every frame. + * map's rotation can potentially change every frame. * */ @@ -557,15 +557,15 @@ XPLM_API void XPLMDrawMapLabel( * * Only valid from within a map layer callback (one of * XPLMMapPrepareCacheCallback_f, XPLMMapDrawingCallback_f, - * XPLMMapIconDrawingCallback_f, or XPLMMapLabelDrawingCallback_f.) + * XPLMMapIconDrawingCallback_f, or XPLMMapLabelDrawingCallback_f.) * */ XPLM_API void XPLMMapProject( - XPLMMapProjectionID projection, - double latitude, - double longitude, - float * outX, - float * outY); + XPLMMapProjectionID projection, + double latitude, + double longitude, + float * outX, + float * outY); /* * XPLMMapUnproject @@ -575,15 +575,15 @@ XPLM_API void XPLMMapProject( * * Only valid from within a map layer callback (one of * XPLMMapPrepareCacheCallback_f, XPLMMapDrawingCallback_f, - * XPLMMapIconDrawingCallback_f, or XPLMMapLabelDrawingCallback_f.) + * XPLMMapIconDrawingCallback_f, or XPLMMapLabelDrawingCallback_f.) * */ XPLM_API void XPLMMapUnproject( - XPLMMapProjectionID projection, - float mapX, - float mapY, - double * outLatitude, - double * outLongitude); + XPLMMapProjectionID projection, + float mapX, + float mapY, + double * outLatitude, + double * outLongitude); /* * XPLMMapScaleMeter @@ -593,35 +593,32 @@ XPLM_API void XPLMMapUnproject( * * Only valid from within a map layer callback (one of * XPLMMapPrepareCacheCallback_f, XPLMMapDrawingCallback_f, - * XPLMMapIconDrawingCallback_f, or XPLMMapLabelDrawingCallback_f.) + * XPLMMapIconDrawingCallback_f, or XPLMMapLabelDrawingCallback_f.) * */ XPLM_API float XPLMMapScaleMeter( - XPLMMapProjectionID projection, - float mapX, - float mapY); + XPLMMapProjectionID projection, + float mapX, + float mapY); /* * XPLMMapGetNorthHeading * - * Returns the heading (in degrees clockwise from "up") that corresponds to - * north at a given point on the map. In other words, if your runway has a - * true heading of 360, you would use "north" as the Cartesian angle at which - * to draw the runway on the map. (You would add the result of - * XPLMMapGetNorthHeading() to your true heading to get the map angle.) - * - * This is necessary becuase X-Plane's map can be rotated to match your - * aircraft's orientation; north is not always "up." + * Returns the heading (in degrees clockwise) from the positive Y axis in the + * cartesian mapping coordinate system to true north at the point passed in. + * You can use it as a clockwise rotational offset to align icons and other + * 2-d drawing with true north on the map, compensating for rotations in the + * map due to projection. * * Only valid from within a map layer callback (one of * XPLMMapPrepareCacheCallback_f, XPLMMapDrawingCallback_f, - * XPLMMapIconDrawingCallback_f, or XPLMMapLabelDrawingCallback_f.) + * XPLMMapIconDrawingCallback_f, or XPLMMapLabelDrawingCallback_f.) * */ XPLM_API float XPLMMapGetNorthHeading( - XPLMMapProjectionID projection, - float mapX, - float mapY); + XPLMMapProjectionID projection, + float mapX, + float mapY); #endif /* XPLM300 */ #ifdef __cplusplus diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMMenus.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMMenus.h old mode 100755 new mode 100644 index f5802ab..2c8fcd0 --- a/Example/Lib/SDK/CHeaders/XPLM/XPLMMenus.h +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMMenus.h @@ -2,8 +2,8 @@ #define _XPLMMenus_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -15,7 +15,7 @@ * creating a menu and then creating items. Menus are referred to by an * opaque ID. Items are referred to by (zero-based) index number. * - * Menus are "sandboxed" between plugins---no plugin can access the menus of + * Menus are "sandboxed" between plugins - no plugin can access the menus of * any other plugin. Furthermore, all menu indices are relative to your * plugin's menus only; if your plugin creates two sub-menus in the Plugins * menu at different times, it doesn't matter how many other plugins also @@ -36,7 +36,7 @@ * Menu text in X-Plane is UTF8; X-Plane's character set covers latin, greek * and cyrillic characters, Katakana, as well as some Japanese symbols. Some * APIs have a inDeprecatedAndIgnored parameter that used to select a - * character set; since X-Plane 9 all localization is done via UTF-8 only. + * character set; since X-Plane 9 all localization is done via UTF-8 only. * */ @@ -55,18 +55,18 @@ extern "C" { * XPLMMenuCheck * * These enumerations define the various 'check' states for an X-Plane menu. - * 'checking' in X-Plane actually appears as a light which may or may not be - * lit. So there are three possible states. + * 'Checking' in X-Plane actually appears as a light which may or may not be + * lit. So there are three possible states. * */ enum { - /* there is no symbol to the left of the menu item. */ + /* There is no symbol to the left of the menu item. */ xplm_Menu_NoCheck = 0, - /* the menu has a mark next to it that is unmarked (not lit). */ + /* The menu has a mark next to it that is unmarked (not lit). */ xplm_Menu_Unchecked = 1, - /* the menu has a mark next to it that is checked (lit). */ + /* The menu has a mark next to it that is checked (lit). */ xplm_Menu_Checked = 2, @@ -76,7 +76,7 @@ typedef int XPLMMenuCheck; /* * XPLMMenuID * - * This is a unique ID for each menu you create. + * This is a unique ID for each menu you create. * */ typedef void * XPLMMenuID; @@ -86,18 +86,18 @@ typedef void * XPLMMenuID; * * A menu handler function takes two reference pointers, one for the menu * (specified when the menu was created) and one for the item (specified when - * the item was created). + * the item was created). * */ typedef void (* XPLMMenuHandler_f)( - void * inMenuRef, - void * inItemRef); + void * inMenuRef, + void * inItemRef); /* * XPLMFindPluginsMenu * * This function returns the ID of the plug-ins menu, which is created for you - * at startup. + * at startup. * */ XPLM_API XPLMMenuID XPLMFindPluginsMenu(void); @@ -115,7 +115,7 @@ XPLM_API XPLMMenuID XPLMFindPluginsMenu(void); * * Only plugins loaded with the user's current aircraft are allowed to access * the aircraft menu. For all other plugins, this will return NULL, and any - * attempts to add menu items to it will fail. + * attempts to add menu items to it will fail. * */ XPLM_API XPLMMenuID XPLMFindAircraftMenu(void); @@ -133,25 +133,25 @@ XPLM_API XPLMMenuID XPLMFindAircraftMenu(void); * contains submenus). * * Important: you must pass a valid, non-empty menu title even if the menu is - * a submenu where the title is not visible. + * a submenu where the title is not visible. * */ XPLM_API XPLMMenuID XPLMCreateMenu( - const char * inName, - XPLMMenuID inParentMenu, - int inParentItem, - XPLMMenuHandler_f inHandler, - void * inMenuRef); + const char * inName, + XPLMMenuID inParentMenu, + int inParentItem, + XPLMMenuHandler_f inHandler, + void * inMenuRef); /* * XPLMDestroyMenu * * This function destroys a menu that you have created. Use this to remove a - * submenu if necessary. (Normally this function will not be necessary.) + * submenu if necessary. (Normally this function will not be necessary.) * */ XPLM_API void XPLMDestroyMenu( - XPLMMenuID inMenuID); + XPLMMenuID inMenuID); /* * XPLMClearAllMenuItems @@ -161,7 +161,7 @@ XPLM_API void XPLMDestroyMenu( * */ XPLM_API void XPLMClearAllMenuItems( - XPLMMenuID inMenuID); + XPLMMenuID inMenuID); /* * XPLMAppendMenuItem @@ -179,14 +179,14 @@ XPLM_API void XPLMClearAllMenuItems( * Plugins in the intervening time: your sub-menus will be given menu indices * 0 and 1. (The SDK does some work in the back-end to filter out menus that * are irrelevant to your plugin in order to deliver this consistency for each - * plugin.) + * plugin.) * */ XPLM_API int XPLMAppendMenuItem( - XPLMMenuID inMenu, - const char * inItemName, - void * inItemRef, - int inDeprecatedAndIgnored); + XPLMMenuID inMenu, + const char * inItemName, + void * inItemRef, + int inDeprecatedAndIgnored); #if defined(XPLM300) /* @@ -202,13 +202,13 @@ XPLM_API int XPLMAppendMenuItem( * menu argument). * * Like XPLMAppendMenuItem(), all menu indices are relative to your plugin's - * menus only. + * menus only. * */ XPLM_API int XPLMAppendMenuItemWithCommand( - XPLMMenuID inMenu, - const char * inItemName, - XPLMCommandRef inCommandToExecute); + XPLMMenuID inMenu, + const char * inItemName, + XPLMCommandRef inCommandToExecute); #endif /* XPLM300 */ /* @@ -217,70 +217,70 @@ XPLM_API int XPLMAppendMenuItemWithCommand( * This routine adds a separator to the end of a menu. * * Returns a negative index if the append failed (due to an invalid parent - * menu argument). + * menu argument). * */ XPLM_API void XPLMAppendMenuSeparator( - XPLMMenuID inMenu); + XPLMMenuID inMenu); /* * XPLMSetMenuItemName * * This routine changes the name of an existing menu item. Pass in the menu - * ID and the index of the menu item. + * ID and the index of the menu item. * */ XPLM_API void XPLMSetMenuItemName( - XPLMMenuID inMenu, - int inIndex, - const char * inItemName, - int inDeprecatedAndIgnored); + XPLMMenuID inMenu, + int inIndex, + const char * inItemName, + int inDeprecatedAndIgnored); /* * XPLMCheckMenuItem * - * Set whether a menu item is checked. Pass in the menu ID and item index. + * Set whether a menu item is checked. Pass in the menu ID and item index. * */ XPLM_API void XPLMCheckMenuItem( - XPLMMenuID inMenu, - int index, - XPLMMenuCheck inCheck); + XPLMMenuID inMenu, + int index, + XPLMMenuCheck inCheck); /* * XPLMCheckMenuItemState * * This routine returns whether a menu item is checked or not. A menu item's - * check mark may be on or off, or a menu may not have an icon at all. + * check mark may be on or off, or a menu may not have an icon at all. * */ XPLM_API void XPLMCheckMenuItemState( - XPLMMenuID inMenu, - int index, - XPLMMenuCheck * outCheck); + XPLMMenuID inMenu, + int index, + XPLMMenuCheck * outCheck); /* * XPLMEnableMenuItem * - * Sets whether this menu item is enabled. Items start out enabled. + * Sets whether this menu item is enabled. Items start out enabled. * */ XPLM_API void XPLMEnableMenuItem( - XPLMMenuID inMenu, - int index, - int enabled); + XPLMMenuID inMenu, + int index, + int enabled); #if defined(XPLM210) /* * XPLMRemoveMenuItem * * Removes one item from a menu. Note that all menu items below are moved up - * one; your plugin must track the change in index numbers. + * one; your plugin must track the change in index numbers. * */ XPLM_API void XPLMRemoveMenuItem( - XPLMMenuID inMenu, - int inIndex); + XPLMMenuID inMenu, + int inIndex); #endif /* XPLM210 */ #ifdef __cplusplus diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMNavigation.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMNavigation.h old mode 100755 new mode 100644 index 716caf0..c26ed3b --- a/Example/Lib/SDK/CHeaders/XPLM/XPLMNavigation.h +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMNavigation.h @@ -2,8 +2,8 @@ #define _XPLMNavigation_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -18,7 +18,7 @@ * * You can also use this API to program the FMS. You must use the navigation * APIs to find the nav-aids you want to program into the FMS, since the FMS - * is powered internally by X-Plane's navigation database. + * is powered internally by X-Plane's navigation database. * */ @@ -42,7 +42,7 @@ extern "C" { * NOTE: xplm_Nav_LatLon is a specific lat-lon coordinate entered into the * FMS. It will not exist in the database, and cannot be programmed into the * FMS. Querying the FMS for navaids will return it. Use - * XPLMSetFMSEntryLatLon to set a lat/lon waypoint. + * XPLMSetFMSEntryLatLon to set a lat/lon waypoint. * */ enum { @@ -72,6 +72,8 @@ enum { xplm_Nav_LatLon = 2048, + xplm_Nav_TACAN = 4096, + }; typedef int XPLMNavType; @@ -87,7 +89,7 @@ typedef int XPLMNavType; * Use XPLMNavRef to refer to a nav-aid. * * XPLM_NAV_NOT_FOUND is returned by functions that return an XPLMNavRef when - * the iterator must be invalid. + * the iterator must be invalid. * */ typedef int XPLMNavRef; @@ -99,7 +101,7 @@ typedef int XPLMNavRef; * * This returns the very first navaid in the database. Use this to traverse * the entire database. Returns XPLM_NAV_NOT_FOUND if the nav database is - * empty. + * empty. * */ XPLM_API XPLMNavRef XPLMGetFirstNavAid(void); @@ -107,44 +109,44 @@ XPLM_API XPLMNavRef XPLMGetFirstNavAid(void); /* * XPLMGetNextNavAid * - * Given a valid nav aid ref, this routine returns the next navaid. It - * returns XPLM_NAV_NOT_FOUND if the nav aid passed in was invalid or if the - * navaid passed in was the last one in the database. Use this routine to - * iterate across all like-typed navaids or the entire database. + * Given a valid navaid ref, this routine returns the next navaid. It returns + * XPLM_NAV_NOT_FOUND if the navaid passed in was invalid or if the navaid + * passed in was the last one in the database. Use this routine to iterate + * across all like-typed navaids or the entire database. * */ XPLM_API XPLMNavRef XPLMGetNextNavAid( - XPLMNavRef inNavAidRef); + XPLMNavRef inNavAidRef); /* * XPLMFindFirstNavAidOfType * * This routine returns the ref of the first navaid of the given type in the * database or XPLM_NAV_NOT_FOUND if there are no navaids of that type in the - * database. You must pass exactly one nav aid type to this routine. + * database. You must pass exactly one navaid type to this routine. * */ XPLM_API XPLMNavRef XPLMFindFirstNavAidOfType( - XPLMNavType inType); + XPLMNavType inType); /* * XPLMFindLastNavAidOfType * * This routine returns the ref of the last navaid of the given type in the * database or XPLM_NAV_NOT_FOUND if there are no navaids of that type in the - * database. You must pass exactly one nav aid type to this routine. + * database. You must pass exactly one navaid type to this routine. * */ XPLM_API XPLMNavRef XPLMFindLastNavAidOfType( - XPLMNavType inType); + XPLMNavType inType); /* * XPLMFindNavAid * * This routine provides a number of searching capabilities for the nav - * database. XPLMFindNavAid will search through every nav aid whose type is - * within inType (multiple types may be added together) and return any - * nav-aids found based on the following rules: + * database. XPLMFindNavAid will search through every navaid whose type is + * within inType (multiple types may be added together) and return any navaids + * found based on the following rules: * * * If inLat and inLon are not NULL, the navaid nearest to that lat/lon will * be returned, otherwise the last navaid found will be returned. @@ -162,17 +164,17 @@ XPLM_API XPLMNavRef XPLMFindLastNavAidOfType( * This routine provides a simple way to do a number of useful searches: * * Find the nearest navaid on this frequency. * * Find the nearest airport. - * * Find the VOR whose ID is "KBOS". - * * Find the nearest airport whose name contains "Chicago". + * * Find the VOR whose ID is "BOS". + * * Find the nearest airport whose name contains "Chicago". * */ XPLM_API XPLMNavRef XPLMFindNavAid( - const char * inNameFragment, /* Can be NULL */ - const char * inIDFragment, /* Can be NULL */ - float * inLat, /* Can be NULL */ - float * inLon, /* Can be NULL */ - int * inFrequency, /* Can be NULL */ - XPLMNavType inType); + const char * inNameFragment, /* Can be NULL */ + const char * inIDFragment, /* Can be NULL */ + float * inLat, /* Can be NULL */ + float * inLon, /* Can be NULL */ + int * inFrequency, /* Can be NULL */ + XPLMNavType inType); /* * XPLMGetNavAidInfo @@ -191,32 +193,32 @@ XPLM_API XPLMNavRef XPLMFindNavAid( * The outReg parameter tells if the navaid is within the local "region" of * loaded DSFs. (This information may not be particularly useful to plugins.) * The parameter is a single byte value 1 for true or 0 for false, not a C - * string. + * string. * */ XPLM_API void XPLMGetNavAidInfo( - XPLMNavRef inRef, - XPLMNavType * outType, /* Can be NULL */ - float * outLatitude, /* Can be NULL */ - float * outLongitude, /* Can be NULL */ - float * outHeight, /* Can be NULL */ - int * outFrequency, /* Can be NULL */ - float * outHeading, /* Can be NULL */ - char * outID, /* Can be NULL */ - char * outName, /* Can be NULL */ - char * outReg); /* Can be NULL */ + XPLMNavRef inRef, + XPLMNavType * outType, /* Can be NULL */ + float * outLatitude, /* Can be NULL */ + float * outLongitude, /* Can be NULL */ + float * outHeight, /* Can be NULL */ + int * outFrequency, /* Can be NULL */ + float * outHeading, /* Can be NULL */ + char * outID, /* Can be NULL */ + char * outName, /* Can be NULL */ + char * outReg); /* Can be NULL */ /*************************************************************************** * FLIGHT MANAGEMENT COMPUTER ***************************************************************************/ /* * Note: the FMS works based on an array of entries. Indices into the array - * are zero-based. Each entry is a nav-aid plus an altitude. The FMS tracks + * are zero-based. Each entry is a navaid plus an altitude. The FMS tracks * the currently displayed entry and the entry that it is flying to. * * The FMS must be programmed with contiguous entries, so clearing an entry at * the end shortens the effective flight plan. There is a max of 100 - * waypoints in the flight plan. + * waypoints in the flight plan. * */ @@ -224,7 +226,7 @@ XPLM_API void XPLMGetNavAidInfo( /* * XPLMCountFMSEntries * - * This routine returns the number of entries in the FMS. + * This routine returns the number of entries in the FMS. * */ XPLM_API int XPLMCountFMSEntries(void); @@ -232,7 +234,7 @@ XPLM_API int XPLMCountFMSEntries(void); /* * XPLMGetDisplayedFMSEntry * - * This routine returns the index of the entry the pilot is viewing. + * This routine returns the index of the entry the pilot is viewing. * */ XPLM_API int XPLMGetDisplayedFMSEntry(void); @@ -240,7 +242,7 @@ XPLM_API int XPLMGetDisplayedFMSEntry(void); /* * XPLMGetDestinationFMSEntry * - * This routine returns the index of the entry the FMS is flying to. + * This routine returns the index of the entry the FMS is flying to. * */ XPLM_API int XPLMGetDestinationFMSEntry(void); @@ -252,16 +254,17 @@ XPLM_API int XPLMGetDestinationFMSEntry(void); * */ XPLM_API void XPLMSetDisplayedFMSEntry( - int inIndex); + int inIndex); /* * XPLMSetDestinationFMSEntry * - * This routine changes which entry the FMS is flying the aircraft toward. + * This routine changes which entry the FMS is flying the aircraft toward. The + * track is from the n-1'th point to the n'th point. * */ XPLM_API void XPLMSetDestinationFMSEntry( - int inIndex); + int inIndex); /* * XPLMGetFMSEntryInfo @@ -281,17 +284,17 @@ XPLM_API void XPLMSetDestinationFMSEntry( * not be set to XPLM_NAV_NOT_FOUND while no data is available, and instead * just remain the value of the variable that you passed the pointer to. * Therefore, always initialize the variable to XPLM_NAV_NOT_FOUND before - * passing the pointer to this function. + * passing the pointer to this function. * */ XPLM_API void XPLMGetFMSEntryInfo( - int inIndex, - XPLMNavType * outType, /* Can be NULL */ - char * outID, /* Can be NULL */ - XPLMNavRef * outRef, /* Can be NULL */ - int * outAltitude, /* Can be NULL */ - float * outLat, /* Can be NULL */ - float * outLon); /* Can be NULL */ + int inIndex, + XPLMNavType * outType, /* Can be NULL */ + char * outID, /* Can be NULL */ + XPLMNavRef * outRef, /* Can be NULL */ + int * outAltitude, /* Can be NULL */ + float * outLat, /* Can be NULL */ + float * outLon); /* Can be NULL */ /* * XPLMSetFMSEntryInfo @@ -303,38 +306,277 @@ XPLM_API void XPLMGetFMSEntryInfo( * */ XPLM_API void XPLMSetFMSEntryInfo( - int inIndex, - XPLMNavRef inRef, - int inAltitude); + int inIndex, + XPLMNavRef inRef, + int inAltitude); /* * XPLMSetFMSEntryLatLon * * This routine changes the entry in the FMS to a lat/lon entry with the given - * coordinates. + * coordinates. * */ XPLM_API void XPLMSetFMSEntryLatLon( - int inIndex, - float inLat, - float inLon, - int inAltitude); + int inIndex, + float inLat, + float inLon, + int inAltitude); /* * XPLMClearFMSEntry * * This routine clears the given entry, potentially shortening the flight - * plan. + * plan. * */ XPLM_API void XPLMClearFMSEntry( - int inIndex); + int inIndex); + +#if defined(XPLM410) +/* + * XPLMNavFlightPlan + * + * These enumerations defines the flightplan you are accesing using the + * FMSFlightPlan functions. An airplane can have up to two navigation + * devices (GPS or FMS) and each device can have two flightplans. A GPS + * has an enroute and an approach flightplan. An FMS has an active and a + * temporary flightplan. If you are trying to access a flightplan that + * doesn't exist in your aircraft, e.g. asking a GPS for a temp + * flightplan, FMSFlighPlan functions have no effect and will return no + * information. + * + */ +enum { + xplm_Fpl_Pilot_Primary = 0, + + xplm_Fpl_CoPilot_Primary = 1, + + xplm_Fpl_Pilot_Approach = 2, + + xplm_Fpl_CoPilot_Approach = 3, + + xplm_Fpl_Pilot_Temporary = 4, + + xplm_Fpl_CoPilot_Temporary = 5, + + +}; +typedef int XPLMNavFlightPlan; +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMCountFMSFlightPlanEntries + * + * This routine returns the number of entries in the FMS. + * + */ +XPLM_API int XPLMCountFMSFlightPlanEntries( + XPLMNavFlightPlan inFlightPlan); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMGetDisplayedFMSFlightPlanEntry + * + * This routine returns the index of the entry the pilot is viewing. + * + */ +XPLM_API int XPLMGetDisplayedFMSFlightPlanEntry( + XPLMNavFlightPlan inFlightPlan); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMGetDestinationFMSFlightPlanEntry + * + * This routine returns the index of the entry the FMS is flying to. + * + */ +XPLM_API int XPLMGetDestinationFMSFlightPlanEntry( + XPLMNavFlightPlan inFlightPlan); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMSetDisplayedFMSFlightPlanEntry + * + * This routine changes which entry the FMS is showing to the index specified. + * + */ +XPLM_API void XPLMSetDisplayedFMSFlightPlanEntry( + XPLMNavFlightPlan inFlightPlan, + int inIndex); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMSetDestinationFMSFlightPlanEntry + * + * This routine changes which entry the FMS is flying the aircraft toward. The + * track is from the n-1'th point to the n'th point. + * + */ +XPLM_API void XPLMSetDestinationFMSFlightPlanEntry( + XPLMNavFlightPlan inFlightPlan, + int inIndex); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMSetDirectToFMSFlightPlanEntry + * + * This routine changes which entry the FMS is flying the aircraft toward. The + * track is from the current position of the aircraft directly to the n'th + * point, ignoring the point before it. + * + */ +XPLM_API void XPLMSetDirectToFMSFlightPlanEntry( + XPLMNavFlightPlan inFlightPlan, + int inIndex); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMGetFMSFlightPlanEntryInfo + * + * This routine returns information about a given FMS entry. If the entry is + * an airport or navaid, a reference to a nav entry can be returned allowing + * you to find additional information (such as a frequency, ILS heading, name, + * etc.). Note that this reference can be XPLM_NAV_NOT_FOUND until the + * information has been looked up asynchronously, so after flightplan changes, + * it might take up to a second for this field to become populated. The other + * information is available immediately. For a lat/lon entry, the lat/lon is + * returned by this routine but the navaid cannot be looked up (and the + * reference will be XPLM_NAV_NOT_FOUND). FMS name entry buffers should be at + * least 256 chars in length. + * + * WARNING: Due to a bug in X-Plane prior to 11.31, the navaid reference will + * not be set to XPLM_NAV_NOT_FOUND while no data is available, and instead + * just remain the value of the variable that you passed the pointer to. + * Therefore, always initialize the variable to XPLM_NAV_NOT_FOUND before + * passing the pointer to this function. + * + */ +XPLM_API void XPLMGetFMSFlightPlanEntryInfo( + XPLMNavFlightPlan inFlightPlan, + int inIndex, + XPLMNavType * outType, /* Can be NULL */ + char * outID, /* Can be NULL */ + XPLMNavRef * outRef, /* Can be NULL */ + int * outAltitude, /* Can be NULL */ + float * outLat, /* Can be NULL */ + float * outLon); /* Can be NULL */ +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMSetFMSFlightPlanEntryInfo + * + * This routine changes an entry in the FMS to have the destination navaid + * passed in and the altitude specified. Use this only for airports, fixes, + * and radio-beacon navaids. Currently of radio beacons, the FMS can only + * support VORs, NDBs and TACANs. Use the routines below to clear or fly to a + * lat/lon. + * + */ +XPLM_API void XPLMSetFMSFlightPlanEntryInfo( + XPLMNavFlightPlan inFlightPlan, + int inIndex, + XPLMNavRef inRef, + int inAltitude); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMSetFMSFlightPlanEntryLatLon + * + * This routine changes the entry in the FMS to a lat/lon entry with the given + * coordinates. + * + */ +XPLM_API void XPLMSetFMSFlightPlanEntryLatLon( + XPLMNavFlightPlan inFlightPlan, + int inIndex, + float inLat, + float inLon, + int inAltitude); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMSetFMSFlightPlanEntryLatLonWithId + * + * This routine changes the entry in the FMS to a lat/lon entry with the given + * coordinates. You can specify the display ID of the waypoint. + * + */ +XPLM_API void XPLMSetFMSFlightPlanEntryLatLonWithId( + XPLMNavFlightPlan inFlightPlan, + int inIndex, + float inLat, + float inLon, + int inAltitude, + const char* inId, + unsigned int inIdLength); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMClearFMSFlightPlanEntry + * + * This routine clears the given entry, potentially shortening the flight + * plan. + * + */ +XPLM_API void XPLMClearFMSFlightPlanEntry( + XPLMNavFlightPlan inFlightPlan, + int inIndex); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMLoadFMSFlightPlan + * + * Loads an X-Plane 11 and later formatted flightplan from the buffer into the + * FMS or GPS, including instrument procedures. Use device index 0 for the + * pilot-side and device index 1 for the co-pilot side unit. + * + */ +XPLM_API void XPLMLoadFMSFlightPlan( + int inDevice, + const char * inBuffer, + unsigned int inBufferLen); +#endif /* XPLM410 */ + +#if defined(XPLM410) +/* + * XPLMSaveFMSFlightPlan + * + * Saves an X-Plane 11 formatted flightplan from the FMS or GPS into a char + * buffer that you provide. Use device index 0 for the pilot-side and device + * index 1 for the co-pilot side unit. Provide the length of the buffer you + * allocated. X-Plane will write a null-terminated string if the full flight + * plan fits into the buffer. If your buffer is too small, X-Plane will write + * inBufferLen characters, and the resulting buffer is not null-terminated. + * The return value is the number of characters (including null terminator) + * that X-Plane needed to write the flightplan. If this number is larger than + * the buffer you provided, the flightplan in the buffer will be incomplete + * and the buffer not null-terminated. + * + */ +XPLM_API unsigned int XPLMSaveFMSFlightPlan( + int inDevice, + char * inBuffer, + unsigned int inBufferLen); +#endif /* XPLM410 */ /*************************************************************************** * GPS RECEIVER ***************************************************************************/ /* - * These APIs let you read data from the GPS unit. + * These APIs let you read data from the GPS unit. * */ @@ -342,7 +584,7 @@ XPLM_API void XPLMClearFMSEntry( * XPLMGetGPSDestinationType * * This routine returns the type of the currently selected GPS destination, - * one of fix, airport, VOR or NDB. + * one of fix, airport, VOR or NDB. * */ XPLM_API XPLMNavType XPLMGetGPSDestinationType(void); @@ -350,7 +592,7 @@ XPLM_API XPLMNavType XPLMGetGPSDestinationType(void); /* * XPLMGetGPSDestination * - * This routine returns the current GPS destination. + * This routine returns the current GPS destination. * */ XPLM_API XPLMNavRef XPLMGetGPSDestination(void); diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMPlanes.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMPlanes.h old mode 100755 new mode 100644 index 486302d..bd5b84d --- a/Example/Lib/SDK/CHeaders/XPLM/XPLMPlanes.h +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMPlanes.h @@ -2,8 +2,8 @@ #define _XPLMPlanes_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -16,7 +16,7 @@ * * *Note*: unlike almost all other APIs in the SDK, aircraft paths are _full_ * file system paths for historical reasons. You'll need to prefix all - * relative paths with the X-Plane path as accessed via XPLMGetSystemPath. + * relative paths with the X-Plane path as accessed via XPLMGetSystemPath. * */ @@ -35,20 +35,20 @@ extern "C" { * * This routine changes the user's aircraft. Note that this will reinitialize * the user to be on the nearest airport's first runway. Pass in a full path - * (hard drive and everything including the .acf extension) to the .acf file. + * (hard drive and everything including the .acf extension) to the .acf file. * */ XPLM_API void XPLMSetUsersAircraft( - const char * inAircraftPath); + const char * inAircraftPath); /* * XPLMPlaceUserAtAirport * * This routine places the user at a given airport. Specify the airport by - * its X-Plane airport ID (e.g. 'KBOS'). + * its X-Plane airport ID (e.g. 'KBOS'). * */ XPLM_API void XPLMPlaceUserAtAirport( - const char * inAirportCode); + const char * inAirportCode); #if defined(XPLM300) /* * XPLMPlaceUserAtLocation @@ -59,15 +59,15 @@ XPLM_API void XPLMPlaceUserAtAirport( * As with in-air starts initiated from the X-Plane user interface, the * aircraft will always start with its engines running, regardless of the * user's preferences (i.e., regardless of what the dataref - * `sim/operation/prefs/startup_running` says). + * `sim/operation/prefs/startup_running` says). * */ XPLM_API void XPLMPlaceUserAtLocation( - double latitudeDegrees, - double longitudeDegrees, - float elevationMetersMSL, - float headingDegreesTrue, - float speedMetersPerSecond); + double latitudeDegrees, + double longitudeDegrees, + float elevationMetersMSL, + float headingDegreesTrue, + float speedMetersPerSecond); #endif /* XPLM300 */ /*************************************************************************** * GLOBAL AIRCRAFT ACCESS @@ -89,32 +89,32 @@ XPLM_API void XPLMPlaceUserAtLocation( * calculates what the actual controls look like based on the .acf file for * that airplane. Note for the yoke inputs, this is what the pilot of the * plane has commanded (post artificial stability system if there were one) - * and affects aelerons, rudder, etc. It is not necessarily related to the - * actual position of the plane! + * and affects ailerons, rudder, etc. It is not necessarily related to the + * actual position of the plane's surfaces! * */ typedef struct { - /* The size of the draw state struct. */ + /* The size of the draw state struct. */ int structSize; - /* A ratio from [0..1] describing how far the landing gear is extended. */ + /* A ratio from [0..1] describing how far the landing gear is extended. */ float gearPosition; - /* Ratio of flap deployment, 0 = up, 1 = full deploy. */ + /* Ratio of flap deployment, 0 = up, 1 = full deploy. */ float flapRatio; - /* Ratio of spoiler deployment, 0 = none, 1 = full deploy. */ + /* Ratio of spoiler deployment, 0 = none, 1 = full deploy. */ float spoilerRatio; - /* Ratio of speed brake deployment, 0 = none, 1 = full deploy. */ + /* Ratio of speed brake deployment, 0 = none, 1 = full deploy. */ float speedBrakeRatio; - /* Ratio of slat deployment, 0 = none, 1 = full deploy. */ + /* Ratio of slat deployment, 0 = none, 1 = full deploy. */ float slatRatio; - /* Wing sweep ratio, 0 = forward, 1 = swept. */ + /* Wing sweep ratio, 0 = forward, 1 = swept. */ float wingSweep; - /* Thrust power, 0 = none, 1 = full fwd, -1 = full reverse. */ + /* Thrust power, 0 = none, 1 = full fwd, -1 = full reverse. */ float thrust; - /* Total pitch input for this plane. */ + /* Total pitch input for this plane. */ float yokePitch; - /* Total Heading input for this plane. */ + /* Total Heading input for this plane. */ float yokeHeading; - /* Total Roll input for this plane. */ + /* Total Roll input for this plane. */ float yokeRoll; } XPLMPlaneDrawState_t; #endif /* XPLM_DEPRECATED */ @@ -125,32 +125,32 @@ typedef struct { * as well as the number of aircraft that are currently active. These numbers * count the user's aircraft. It can also return the plugin that is currently * controlling aircraft. In X-Plane 7, this routine reflects the number of - * aircraft the user has enabled in the rendering options window. + * aircraft the user has enabled in the rendering options window. * */ XPLM_API void XPLMCountAircraft( - int * outTotalAircraft, - int * outActiveAircraft, - XPLMPluginID * outController); + int * outTotalAircraft, + int * outActiveAircraft, + XPLMPluginID * outController); /* * XPLMGetNthAircraftModel * * This function returns the aircraft model for the Nth aircraft. Indices are * zero based, with zero being the user's aircraft. The file name should be * at least 256 chars in length; the path should be at least 512 chars in - * length. + * length. * */ XPLM_API void XPLMGetNthAircraftModel( - int inIndex, - char * outFileName, - char * outPath); + int inIndex, + char * outFileName, + char * outPath); /*************************************************************************** * EXCLUSIVE AIRCRAFT ACCESS ***************************************************************************/ /* * The following routines require exclusive access to the airplane APIs. Only - * one plugin may have this access at a time. + * one plugin may have this access at a time. * */ @@ -160,11 +160,11 @@ XPLM_API void XPLMGetNthAircraftModel( * * Your airplanes available callback is called when another plugin gives up * access to the multiplayer planes. Use this to wait for access to - * multiplayer. + * multiplayer. * */ typedef void (* XPLMPlanesAvailable_f)( - void * inRefcon); + void * inRefcon); /* * XPLMAcquirePlanes @@ -180,19 +180,19 @@ typedef void (* XPLMPlanesAvailable_f)( * * If you pass in a callback and do not receive access to the planes your * callback will be called when the airplanes are available. If you do receive - * airplane access, your callback will not be called. + * airplane access, your callback will not be called. * */ XPLM_API int XPLMAcquirePlanes( - char ** inAircraft, /* Can be NULL */ - XPLMPlanesAvailable_f inCallback, - void * inRefcon); + char ** inAircraft, /* Can be NULL */ + XPLMPlanesAvailable_f inCallback, + void * inRefcon); /* * XPLMReleasePlanes * * Call this function to release access to the planes. Note that if you are - * disabled, access to planes is released for you and you must reacquire it. + * disabled, access to planes is released for you and you must reacquire it. * */ XPLM_API void XPLMReleasePlanes(void); @@ -202,11 +202,11 @@ XPLM_API void XPLMReleasePlanes(void); * * This routine sets the number of active planes. If you pass in a number * higher than the total number of planes availables, only the total number of - * planes available is actually used. + * planes available is actually used. * */ XPLM_API void XPLMSetActiveAircraftCount( - int inCount); + int inCount); /* * XPLMSetAircraftModel @@ -214,28 +214,28 @@ XPLM_API void XPLMSetActiveAircraftCount( * This routine loads an aircraft model. It may only be called if you have * exclusive access to the airplane APIs. Pass in the path of the model with * the .acf extension. The index is zero based, but you may not pass in 0 - * (use XPLMSetUsersAircraft to load the user's aircracft). + * (use XPLMSetUsersAircraft to load the user's aircracft). * */ XPLM_API void XPLMSetAircraftModel( - int inIndex, - const char * inAircraftPath); + int inIndex, + const char * inAircraftPath); /* * XPLMDisableAIForPlane * * This routine turns off X-Plane's AI for a given plane. The plane will - * continue to draw and be a real plane in X-Plane, but will not move itself. + * continue to draw and be a real plane in X-Plane, but will not move itself. * */ XPLM_API void XPLMDisableAIForPlane( - int inPlaneIndex); + int inPlaneIndex); #if defined(XPLM_DEPRECATED) /* * XPLMDrawAircraft * - * WARNING: Aircraft drawing via this API is deprecated and will not work in + * WARNING: Aircraft drawing via this API is deprecated and WILL NOT WORK in * future versions of X-Plane. Use XPLMInstance for 3-d drawing of custom * aircraft models. * @@ -243,19 +243,19 @@ XPLM_API void XPLMDisableAIForPlane( * callback. Pass in the position of the plane in OpenGL local coordinates * and the orientation of the plane. A 1 for full drawing indicates that the * whole plane must be drawn; a 0 indicates you only need the nav lights - * drawn. (This saves rendering time when planes are far away.) + * drawn. (This saves rendering time when planes are far away.) * */ XPLM_API void XPLMDrawAircraft( - int inPlaneIndex, - float inX, - float inY, - float inZ, - float inPitch, - float inRoll, - float inYaw, - int inFullDraw, - XPLMPlaneDrawState_t * inDrawStateInfo); + int inPlaneIndex, + float inX, + float inY, + float inZ, + float inPitch, + float inRoll, + float inYaw, + int inFullDraw, + XPLMPlaneDrawState_t * inDrawStateInfo); #endif /* XPLM_DEPRECATED */ #if defined(XPLM_DEPRECATED) @@ -274,7 +274,7 @@ XPLM_API void XPLMDrawAircraft( * WARNING: this routine does not necessarily place the airplane at the * airport; use XPLMSetUsersAircraft to be compatible. This routine is * provided to do special experimentation with flight models without resetting - * flight. + * flight. * */ XPLM_API void XPLMReinitUsersPlane(void); diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMPlugin.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMPlugin.h old mode 100755 new mode 100644 index be5d06c..da84ac8 --- a/Example/Lib/SDK/CHeaders/XPLM/XPLMPlugin.h +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMPlugin.h @@ -2,8 +2,8 @@ #define _XPLMPlugin_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -12,7 +12,7 @@ ***************************************************************************/ /* * These APIs provide facilities to find and work with other plugins and - * manage other plugins. + * manage other plugins. * */ @@ -29,7 +29,7 @@ extern "C" { * These APIs allow you to find another plugin or yourself, or iterate across * all plugins. For example, if you wrote an FMS plugin that needed to talk * to an autopilot plugin, you could use these APIs to locate the autopilot - * plugin. + * plugin. * */ @@ -38,7 +38,7 @@ extern "C" { * XPLMGetMyID * * This routine returns the plugin ID of the calling plug-in. Call this to - * get your own ID. + * get your own ID. * */ XPLM_API XPLMPluginID XPLMGetMyID(void); @@ -47,7 +47,7 @@ XPLM_API XPLMPluginID XPLMGetMyID(void); * XPLMCountPlugins * * This routine returns the total number of plug-ins that are loaded, both - * disabled and enabled. + * disabled and enabled. * */ XPLM_API int XPLMCountPlugins(void); @@ -57,22 +57,22 @@ XPLM_API int XPLMCountPlugins(void); * * This routine returns the ID of a plug-in by index. Index is 0 based from 0 * to XPLMCountPlugins-1, inclusive. Plugins may be returned in any arbitrary - * order. + * order. * */ XPLM_API XPLMPluginID XPLMGetNthPlugin( - int inIndex); + int inIndex); /* * XPLMFindPluginByPath * * This routine returns the plug-in ID of the plug-in whose file exists at the * passed in absolute file system path. XPLM_NO_PLUGIN_ID is returned if the - * path does not point to a currently loaded plug-in. + * path does not point to a currently loaded plug-in. * */ XPLM_API XPLMPluginID XPLMFindPluginByPath( - const char * inPath); + const char * inPath); /* * XPLMFindPluginBySignature @@ -82,11 +82,11 @@ XPLM_API XPLMPluginID XPLMFindPluginByPath( * signature. Signatures are the best way to identify another plug-in as they * are independent of the file system path of a plug-in or the human-readable * plug-in name, and should be unique for all plug-ins. Use this routine to - * locate another plugin that your plugin interoperates with + * locate another plugin that your plugin interoperates with * */ XPLM_API XPLMPluginID XPLMFindPluginBySignature( - const char * inSignature); + const char * inSignature); /* * XPLMGetPluginInfo @@ -98,22 +98,22 @@ XPLM_API XPLMPluginID XPLMFindPluginBySignature( * outName - the human-readable name of the plug-in. outFilePath - the * absolute file path to the file that contains this plug-in. outSignature - a * unique string that identifies this plug-in. outDescription - a - * human-readable description of this plug-in. + * human-readable description of this plug-in. * */ XPLM_API void XPLMGetPluginInfo( - XPLMPluginID inPlugin, - char * outName, /* Can be NULL */ - char * outFilePath, /* Can be NULL */ - char * outSignature, /* Can be NULL */ - char * outDescription); /* Can be NULL */ + XPLMPluginID inPlugin, + char * outName, /* Can be NULL */ + char * outFilePath, /* Can be NULL */ + char * outSignature, /* Can be NULL */ + char * outDescription); /* Can be NULL */ /*************************************************************************** * ENABLING/DISABLING PLUG-INS ***************************************************************************/ /* * These routines are used to work with plug-ins and manage them. Most - * plugins will not need to use these APIs. + * plugins will not need to use these APIs. * */ @@ -121,11 +121,11 @@ XPLM_API void XPLMGetPluginInfo( /* * XPLMIsPluginEnabled * - * Returns whether the specified plug-in is enabled for running. + * Returns whether the specified plug-in is enabled for running. * */ XPLM_API int XPLMIsPluginEnabled( - XPLMPluginID inPluginID); + XPLMPluginID inPluginID); /* * XPLMEnablePlugin @@ -133,20 +133,20 @@ XPLM_API int XPLMIsPluginEnabled( * This routine enables a plug-in if it is not already enabled. It returns 1 * if the plugin was enabled or successfully enables itself, 0 if it does not. * Plugins may fail to enable (for example, if resources cannot be acquired) - * by returning 0 from their XPluginEnable callback. + * by returning 0 from their XPluginEnable callback. * */ XPLM_API int XPLMEnablePlugin( - XPLMPluginID inPluginID); + XPLMPluginID inPluginID); /* * XPLMDisablePlugin * - * This routine disableds an enabled plug-in. + * This routine disableds an enabled plug-in. * */ XPLM_API void XPLMDisablePlugin( - XPLMPluginID inPluginID); + XPLMPluginID inPluginID); /* * XPLMReloadPlugins @@ -155,7 +155,7 @@ XPLM_API void XPLMDisablePlugin( * return from the callback you were within (e.g. a menu select callback) you * will receive your XPluginDisable and XPluginStop callbacks and your DLL * will be unloaded, then the start process happens as if the sim was starting - * up. + * up. * */ XPLM_API void XPLMReloadPlugins(void); @@ -193,7 +193,7 @@ XPLM_API void XPLMReloadPlugins(void); * (e.g. be greater or equal to unsigned 0x8000000) while commands should have * this bit be cleared. * - * The following messages are sent to your plugin by X-Plane. + * The following messages are sent to your plugin by X-Plane. * */ @@ -278,18 +278,44 @@ XPLM_API void XPLMReloadPlugins(void); #define XPLM_MSG_RELEASE_PLANES 111 #endif /* XPLM303 */ +#if defined(XPLM400) +/* Sent to your plugin after FMOD sound banks are loaded. The parameter is the* + * XPLMBankID enum in XPLMSound.h, 0 for the master bank and 1 for the radio * + * bank. */ +#define XPLM_MSG_FMOD_BANK_LOADED 112 +#endif /* XPLM400 */ + +#if defined(XPLM400) +/* Sent to your plugin before FMOD sound banks are unloaded. Any associated * + * resources should be cleaned up at this point. The parameter is the * + * XPLMBankID enum in XPLMSound.h, 0 for the master bank and 1 for the radio * + * bank. */ +#define XPLM_MSG_FMOD_BANK_UNLOADING 113 +#endif /* XPLM400 */ + +#if defined(XPLM400) +/* Sent to your plugin per-frame (at-most) when/if datarefs are added. It will* + * include the new data ref total count so that your plugin can keep a local * + * cache of the total, see what's changed and know which ones to inquire about* + * if it cares. * + * * + * This message is only sent to plugins that enable the * + * XPLM_WANTS_DATAREF_NOTIFICATIONS feature. */ +#define XPLM_MSG_DATAREFS_ADDED 114 +#endif /* XPLM400 */ + /* * XPLMSendMessageToPlugin * * This function sends a message to another plug-in or X-Plane. Pass * XPLM_NO_PLUGIN_ID to broadcast to all plug-ins. Only enabled plug-ins with - * a message receive function receive the message. + * a message receive function receive the message. * */ XPLM_API void XPLMSendMessageToPlugin( - XPLMPluginID inPlugin, - int inMessage, - void * inParam); + XPLMPluginID inPlugin, + int inMessage, + void * inParam); #if defined(XPLM200) /*************************************************************************** @@ -298,8 +324,8 @@ XPLM_API void XPLMSendMessageToPlugin( /* * The plugin features API allows your plugin to "sign up" for additional * capabilities and plugin system features that are normally disabled for - * backward compatibility. This allows advanced plugins to "opt-in" to new - * behavior. + * backward compatibility or performance. This allows advanced plugins to + * "opt-in" to new behavior. * * Each feature is defined by a permanent string name. The feature string * names will vary with the particular installation of X-Plane, so plugins @@ -352,7 +378,15 @@ XPLM_API void XPLMSendMessageToPlugin( * * Before enabling this, make sure any custom widget code in your plugin is * prepared to cope with the UI coordinate system not being th same as the - * OpenGL window coordinate system. + * OpenGL window coordinate system. + * + * XPLM_WANTS_DATAREF_NOTIFICATIONS + * -------------------------------- + * + * Available in the SDK 4.0.0, this capability tells X-Plane to to send the + * enabling plugin the new XPLM_MSG_DATAREFS_ADDED message any time new + * datarefs are added. The SDK will coalesce consecutive dataref registrations + * to minimize the number of messages sent. * */ @@ -362,57 +396,57 @@ XPLM_API void XPLMSendMessageToPlugin( * * You pass an XPLMFeatureEnumerator_f to get a list of all features supported * by a given version running version of X-Plane. This routine is called once - * for each feature. + * for each feature. * */ typedef void (* XPLMFeatureEnumerator_f)( - const char * inFeature, - void * inRef); + const char * inFeature, + void * inRef); /* * XPLMHasFeature * * This returns 1 if the given installation of X-Plane supports a feature, or - * 0 if it does not. + * 0 if it does not. * */ XPLM_API int XPLMHasFeature( - const char * inFeature); + const char * inFeature); /* * XPLMIsFeatureEnabled * * This returns 1 if a feature is currently enabled for your plugin, or 0 if * it is not enabled. It is an error to call this routine with an unsupported - * feature. + * feature. * */ XPLM_API int XPLMIsFeatureEnabled( - const char * inFeature); + const char * inFeature); /* * XPLMEnableFeature * * This routine enables or disables a feature for your plugin. This will * change the running behavior of X-Plane and your plugin in some way, - * depending on the feature. + * depending on the feature. * */ XPLM_API void XPLMEnableFeature( - const char * inFeature, - int inEnable); + const char * inFeature, + int inEnable); /* * XPLMEnumerateFeatures * * This routine calls your enumerator callback once for each feature that this * running version of X-Plane supports. Use this routine to determine all of - * the features that X-Plane can support. + * the features that X-Plane can support. * */ XPLM_API void XPLMEnumerateFeatures( - XPLMFeatureEnumerator_f inEnumerator, - void * inRef); + XPLMFeatureEnumerator_f inEnumerator, + void * inRef); #endif /* XPLM200 */ #ifdef __cplusplus diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMProcessing.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMProcessing.h old mode 100755 new mode 100644 index 94ef0c4..247e71e --- a/Example/Lib/SDK/CHeaders/XPLM/XPLMProcessing.h +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMProcessing.h @@ -2,8 +2,8 @@ #define _XPLMProcessing_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -17,8 +17,8 @@ * and performing I/O. * * You can receive a callback either just before or just after the per-frame - * physics calculations happen - you can use post-FM callbacks to "patch" the - * flight model after it has run. + * physics calculations happen - you can use post-flightmodel callbacks to + * "patch" the flight model after it has run. * * If the user has set the number of flight model iterations per frame greater * than one your plugin will _not_ see this; these integrations run on the @@ -32,8 +32,9 @@ * * WARNING: Do NOT use these callbacks to draw! You cannot draw during flight * loop callbacks. Use the drawing callbacks (see XPLMDisplay for more info) - * for graphics. (One exception: you can use a post-flight loop callback to - * update your own off-screen FBOs.) + * for graphics or the XPLMInstance functions for aircraft or models. (One + * exception: you can use a post-flight loop callback to update your own + * off-screen FBOs.) * */ @@ -52,14 +53,14 @@ extern "C" { * XPLMFlightLoopPhaseType * * You can register a flight loop callback to run either before or after the - * flight model is integrated by X-Plane. + * flight model is integrated by X-Plane. * */ enum { - /* Your callback runs before X-Plane integrates the flight model. */ + /* Your callback runs before X-Plane integrates the flight model. */ xplm_FlightLoop_Phase_BeforeFlightModel = 0, - /* Your callback runs after X-Plane integrates the flight model. */ + /* Your callback runs after X-Plane integrates the flight model. */ xplm_FlightLoop_Phase_AfterFlightModel = 1, @@ -73,7 +74,7 @@ typedef int XPLMFlightLoopPhaseType; * * This is an opaque identifier for a flight loop callback. You can use this * identifier to easily track and remove your callbacks, or to use the new - * flight loop APIs. + * flight loop APIs. * */ typedef void * XPLMFlightLoopID; @@ -94,14 +95,15 @@ typedef void * XPLMFlightLoopID; * dispatched. * - inCounter: a monotonically increasing counter, bumped once per flight * loop dispatch from the sim. - * - inRefcon: your own ptr constant from when you regitered yor callback. + * - inRefcon: your own pointer constant provided when you registered yor + * callback. * * Your return value controls when you will next be called. * * - Return 0 to stop receiving callbacks. - * - Pass a positive number to specify how many seconds until the next + * - Return a positive number to specify how many seconds until the next * callback. (You will be called at or after this time, not before.) - * - Pass a negative number to specify how many loops must go by until you + * - Return a negative number to specify how many loops must go by until you * are called. For example, -1.0 means call me the very next loop. * * Try to run your flight loop as infrequently as is practical, and suspend it @@ -109,22 +111,22 @@ typedef void * XPLMFlightLoopID; * callbacks that do nothing lowers X-Plane's frame rate. * * Your callback will NOT be unregistered if you return 0; it will merely be - * inactive. + * inactive. * */ typedef float (* XPLMFlightLoop_f)( - float inElapsedSinceLastCall, - float inElapsedTimeSinceLastFlightLoop, - int inCounter, - void * inRefcon); + float inElapsedSinceLastCall, + float inElapsedTimeSinceLastFlightLoop, + int inCounter, + void * inRefcon); #if defined(XPLM210) /* * XPLMCreateFlightLoop_t * * XPLMCreateFlightLoop_t contains the parameters to create a new flight loop - * callback. The strsucture can be expanded in future SDKs - always set - * structSize to the size of your structure in bytes. + * callback. The structure may be expanded in future SDKs - always set + * structSize to the size of your structure in bytes. * */ typedef struct { @@ -144,7 +146,7 @@ typedef struct { * * __WARNING__: XPLMGetElapsedTime is not a very good timer! It lacks * precision in both its data type and its source. Do not attempt to use it - * for timing critical applications like network multiplayer. + * for timing critical applications like network multiplayer. * */ XPLM_API float XPLMGetElapsedTime(void); @@ -153,7 +155,7 @@ XPLM_API float XPLMGetElapsedTime(void); * XPLMGetCycleNumber * * This routine returns a counter starting at zero for each sim cycle - * computed/video frame rendered. + * computed/video frame rendered. * */ XPLM_API int XPLMGetCycleNumber(void); @@ -162,20 +164,21 @@ XPLM_API int XPLMGetCycleNumber(void); * XPLMRegisterFlightLoopCallback * * This routine registers your flight loop callback. Pass in a pointer to a - * flight loop function and a refcon. inInterval defines when you will be - * called. Pass in a positive number to specify seconds from registration time - * to the next callback. Pass in a negative number to indicate when you will - * be called (e.g. pass -1 to be called at the next cylcle). Pass 0 to not be - * called; your callback will be inactive. + * flight loop function and a refcon (an optional reference value determined + * by you). inInterval defines when you will be called. Pass in a positive + * number to specify seconds from registration time to the next callback. Pass + * in a negative number to indicate when you will be called (e.g. pass -1 to + * be called at the next cylcle). Pass 0 to not be called; your callback will + * be inactive. * * (This legacy function only installs pre-flight-loop callbacks; use - * XPLMCreateFlightLoop for more control.) + * XPLMCreateFlightLoop for more control.) * */ XPLM_API void XPLMRegisterFlightLoopCallback( - XPLMFlightLoop_f inFlightLoop, - float inInterval, - void * inRefcon); + XPLMFlightLoop_f inFlightLoop, + float inInterval, + void * inRefcon); /* * XPLMUnregisterFlightLoopCallback @@ -185,12 +188,12 @@ XPLM_API void XPLMRegisterFlightLoopCallback( * it will not be called again. * * Only use this on flight loops registered via - * XPLMRegisterFlightLoopCallback. + * XPLMRegisterFlightLoopCallback. * */ XPLM_API void XPLMUnregisterFlightLoopCallback( - XPLMFlightLoop_f inFlightLoop, - void * inRefcon); + XPLMFlightLoop_f inFlightLoop, + void * inRefcon); /* * XPLMSetFlightLoopCallbackInterval @@ -203,14 +206,14 @@ XPLM_API void XPLMUnregisterFlightLoopCallback( * positive for seconds, negative for cycles, and 0 for deactivating the * callback. If inRelativeToNow is 1, times are from the time of this call; * otherwise they are from the time the callback was last called (or the time - * it was registered if it has never been called. + * it was registered if it has never been called. * */ XPLM_API void XPLMSetFlightLoopCallbackInterval( - XPLMFlightLoop_f inFlightLoop, - float inInterval, - int inRelativeToNow, - void * inRefcon); + XPLMFlightLoop_f inFlightLoop, + float inInterval, + int inRelativeToNow, + void * inRefcon); #if defined(XPLM210) /* @@ -218,11 +221,11 @@ XPLM_API void XPLMSetFlightLoopCallbackInterval( * * This routine creates a flight loop callback and returns its ID. The flight * loop callback is created using the input param struct, and is inited to be - * unscheduled. + * unscheduled. * */ XPLM_API XPLMFlightLoopID XPLMCreateFlightLoop( - XPLMCreateFlightLoop_t * inParams); + XPLMCreateFlightLoop_t * inParams); #endif /* XPLM210 */ #if defined(XPLM210) @@ -230,11 +233,11 @@ XPLM_API XPLMFlightLoopID XPLMCreateFlightLoop( * XPLMDestroyFlightLoop * * This routine destroys a flight loop callback by ID. Only call it on flight - * loops created with the newer XPLMCreateFlightLoop API. + * loops created with the newer XPLMCreateFlightLoop API. * */ XPLM_API void XPLMDestroyFlightLoop( - XPLMFlightLoopID inFlightLoopID); + XPLMFlightLoopID inFlightLoopID); #endif /* XPLM210 */ #if defined(XPLM210) @@ -246,15 +249,15 @@ XPLM_API void XPLMDestroyFlightLoop( * the absolute value of the input. If the interval is positive, it is a * duration in seconds. * - * If inRelativeToNow is true, ties are interpretted relative to the time this + * If inRelativeToNow is true, times are interpreted relative to the time this * routine is called; otherwise they are relative to the last call time or the - * time the flight loop was registered (if never called). + * time the flight loop was registered (if never called). * */ XPLM_API void XPLMScheduleFlightLoop( - XPLMFlightLoopID inFlightLoopID, - float inInterval, - int inRelativeToNow); + XPLMFlightLoopID inFlightLoopID, + float inInterval, + int inRelativeToNow); #endif /* XPLM210 */ #ifdef __cplusplus diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMScenery.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMScenery.h index 452bac9..d15f83d 100644 --- a/Example/Lib/SDK/CHeaders/XPLM/XPLMScenery.h +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMScenery.h @@ -2,8 +2,8 @@ #define _XPLMScenery_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -11,7 +11,7 @@ * XPLMScenery ***************************************************************************/ /* - * This package contains APIs to interact with X-Plane's scenery system. + * This package contains APIs to interact with X-Plane's scenery system. * */ @@ -44,7 +44,7 @@ extern "C" { * probing operations are expensive, and should be avoided via caching when * possible. * - * Y testing returns a location on the terrain, a normal vectory, and a + * Y testing returns a location on the terrain, a normal vector, and a * velocity vector. The normal vector tells you the slope of the terrain at * that point. The velocity vector tells you if that terrain is moving (and is * in meters/second). For example, if your Y test hits the aircraft carrier @@ -52,7 +52,7 @@ extern "C" { * * Note: the Y-testing API is limited to probing the loaded scenery area, * which is approximately 300x300 km in X-Plane 9. Probes outside this area - * will return the height of a 0 MSL sphere. + * will return the height of a 0 MSL sphere. * */ @@ -62,12 +62,12 @@ extern "C" { * * XPLMProbeType defines the type of terrain probe - each probe has a * different algorithm. (Only one type of probe is provided right now, but - * future APIs will expose more flexible or poewrful or useful probes. + * future APIs will expose more flexible or powerful or useful probes. * */ enum { - /* The Y probe gives you the location of the tallest physical scenery along * - * the Y axis going through the queried point. */ + /* The Y probe gives you the location of the tallest physical scenery along * + * the Y axis going through the queried point. */ xplm_ProbeY = 0, @@ -77,19 +77,19 @@ typedef int XPLMProbeType; /* * XPLMProbeResult * - * Probe results - possible results from a probe query. + * Probe results - possible results from a probe query. * */ enum { - /* The probe hit terrain and returned valid values. */ + /* The probe hit terrain and returned valid values. */ xplm_ProbeHitTerrain = 0, - /* An error in the API call. Either the probe struct size is bad, or the * - * probe is invalid or the type is mismatched for the specific query call. */ + /* An error in the API call. Either the probe struct size is bad, the probe * + * is invalid, or the type is mismatched for the specific query call. */ xplm_ProbeError = 1, - /* The probe call succeeded but there is no terrain under this point (perhaps * - * it is off the side of the planet?) */ + /* The probe call succeeded but there is no terrain under this point (perhaps * + * it is off the side of the planet?) */ xplm_ProbeMissed = 2, @@ -100,7 +100,7 @@ typedef int XPLMProbeResult; * XPLMProbeRef * * An XPLMProbeRef is an opaque handle to a probe, used for querying the - * terrain. + * terrain. * */ typedef void * XPLMProbeRef; @@ -109,54 +109,54 @@ typedef void * XPLMProbeRef; * XPLMProbeInfo_t * * XPLMProbeInfo_t contains the results of a probe call. Make sure to set - * structSize to the size of the struct before using it. + * structSize to the size of the struct before using it. * */ typedef struct { - /* Size of structure in bytes - always set this before calling the XPLM. */ + /* Size of structure in bytes - always set this before calling the XPLM. */ int structSize; - /* Resulting X location of the terrain point we hit, in local OpenGL * - * coordinates. */ + /* Resulting X location of the terrain point we hit, in local OpenGL * + * coordinates. */ float locationX; - /* Resulting Y location of the terrain point we hit, in local OpenGL * - * coordinates. */ + /* Resulting Y location of the terrain point we hit, in local OpenGL * + * coordinates. */ float locationY; - /* Resulting Z location of the terrain point we hit, in local OpenGL * - * coordinates. */ + /* Resulting Z location of the terrain point we hit, in local OpenGL * + * coordinates. */ float locationZ; - /* X component of the normal vector to the terrain we found. */ + /* X component of the normal vector to the terrain we found. */ float normalX; - /* Y component of the normal vector to the terrain we found. */ + /* Y component of the normal vector to the terrain we found. */ float normalY; - /* Z component of the normal vector to the terrain we found. */ + /* Z component of the normal vector to the terrain we found. */ float normalZ; - /* X component of the velocity vector of the terrain we found. */ + /* X component of the velocity vector of the terrain we found. */ float velocityX; - /* Y component of the velocity vector of the terrain we found. */ + /* Y component of the velocity vector of the terrain we found. */ float velocityY; - /* Z component of the velocity vector of the terrain we found. */ + /* Z component of the velocity vector of the terrain we found. */ float velocityZ; - /* Tells if the surface we hit is water (otherwise it is land). */ + /* Tells if the surface we hit is water (otherwise it is land). */ int is_wet; } XPLMProbeInfo_t; /* * XPLMCreateProbe * - * Creates a new probe object of a given type and returns. + * Creates a new probe object of a given type and returns. * */ XPLM_API XPLMProbeRef XPLMCreateProbe( - XPLMProbeType inProbeType); + XPLMProbeType inProbeType); /* * XPLMDestroyProbe * - * Deallocates an existing probe object. + * Deallocates an existing probe object. * */ XPLM_API void XPLMDestroyProbe( - XPLMProbeRef inProbe); + XPLMProbeRef inProbe); /* * XPLMProbeTerrainXYZ @@ -164,15 +164,15 @@ XPLM_API void XPLMDestroyProbe( * Probes the terrain. Pass in the XYZ coordinate of the probe point, a probe * object, and an XPLMProbeInfo_t struct that has its structSize member set * properly. Other fields are filled in if we hit terrain, and a probe result - * is returned. + * is returned. * */ XPLM_API XPLMProbeResult XPLMProbeTerrainXYZ( - XPLMProbeRef inProbe, - float inX, - float inY, - float inZ, - XPLMProbeInfo_t * outInfo); + XPLMProbeRef inProbe, + float inX, + float inY, + float inZ, + XPLMProbeInfo_t * outInfo); #endif /* XPLM200 */ #if defined(XPLM300) @@ -189,7 +189,7 @@ XPLM_API XPLMProbeResult XPLMProbeTerrainXYZ( * necessarily match what a magnetic compass shows as north. * * Using this API ensures that you present the same offsets to users as - * X-Plane's built-in instruments. + * X-Plane's built-in instruments. * */ @@ -198,32 +198,32 @@ XPLM_API XPLMProbeResult XPLMProbeTerrainXYZ( * XPLMGetMagneticVariation * * Returns X-Plane's simulated magnetic variation (declination) at the - * indication latitude and longitude. + * indication latitude and longitude. * */ XPLM_API float XPLMGetMagneticVariation( - double latitude, - double longitude); + double latitude, + double longitude); /* * XPLMDegTrueToDegMagnetic * * Converts a heading in degrees relative to true north into a value relative - * to magnetic north at the user's current location. + * to magnetic north at the user's current location. * */ XPLM_API float XPLMDegTrueToDegMagnetic( - float headingDegreesTrue); + float headingDegreesTrue); /* * XPLMDegMagneticToDegTrue * * Converts a heading in degrees relative to magnetic north at the user's - * current location into a value relative to true north. + * current location into a value relative to true north. * */ XPLM_API float XPLMDegMagneticToDegTrue( - float headingDegreesMagnetic); + float headingDegreesMagnetic); #endif /* XPLM300 */ /*************************************************************************** @@ -233,7 +233,7 @@ XPLM_API float XPLMDegMagneticToDegTrue( * The object drawing routines let you load and draw X-Plane OBJ files. * Objects are loaded by file path and managed via an opaque handle. X-Plane * naturally reference counts objects, so it is important that you balance - * every successful call to XPLMLoadObject with a call to XPLMUnloadObject! + * every successful call to XPLMLoadObject with a call to XPLMUnloadObject! * */ @@ -243,7 +243,7 @@ XPLM_API float XPLMDegMagneticToDegTrue( * XPLMObjectRef * * An XPLMObjectRef is a opaque handle to an .obj file that has been loaded - * into memory. + * into memory. * */ typedef void * XPLMObjectRef; @@ -255,23 +255,23 @@ typedef void * XPLMObjectRef; * * The XPLMDrawInfo_t structure contains positioning info for one object that * is to be drawn. Be sure to set structSize to the size of the structure for - * future expansion. + * future expansion. * */ typedef struct { - /* Set this to the size of this structure! */ + /* Set this to the size of this structure! */ int structSize; - /* X location of the object in local coordinates. */ + /* X location of the object in local coordinates. */ float x; - /* Y location of the object in local coordinates. */ + /* Y location of the object in local coordinates. */ float y; - /* Z location of the object in local coordinates. */ + /* Z location of the object in local coordinates. */ float z; - /* Pitch in degres to rotate the object, positive is up. */ + /* Pitch in degres to rotate the object, positive is up. */ float pitch; - /* Heading in local coordinates to rotate the object, clockwise. */ + /* Heading in local coordinates to rotate the object, clockwise. */ float heading; - /* Roll to rotate the object. */ + /* Roll to rotate the object. */ float roll; } XPLMDrawInfo_t; #endif /* XPLM200 */ @@ -287,12 +287,12 @@ typedef struct { * * If your plugin is disabled, this callback will be delivered as soon as the * plugin is re-enabled. If your plugin is unloaded before this callback is - * ever called, the SDK will release the object handle for you. + * ever called, the SDK will release the object handle for you. * */ typedef void (* XPLMObjectLoaded_f)( - XPLMObjectRef inObject, - void * inRefcon); + XPLMObjectRef inObject, + void * inRefcon); #endif /* XPLM210 */ #if defined(XPLM200) @@ -315,12 +315,12 @@ typedef void (* XPLMObjectLoaded_f)( * load any object that can be used in the X-Plane scenery system. * * It is important that the datarefs an object uses for animation already be - * loaded before you load the object. For this reason it may be necessary to - * defer object loading until the sim has fully started. + * registered before you load the object. For this reason it may be necessary + * to defer object loading until the sim has fully started. * */ XPLM_API XPLMObjectRef XPLMLoadObject( - const char * inPath); + const char * inPath); #endif /* XPLM200 */ #if defined(XPLM210) @@ -338,13 +338,13 @@ XPLM_API XPLMObjectRef XPLMLoadObject( * * There is no way to cancel an asynchronous object load; you must wait for * the load to complete and then release the object if it is no longer - * desired. + * desired. * */ XPLM_API void XPLMLoadObjectAsync( - const char * inPath, - XPLMObjectLoaded_f inCallback, - void * inRefcon); + const char * inPath, + XPLMObjectLoaded_f inCallback, + void * inRefcon); #endif /* XPLM210 */ #if defined(XPLM_DEPRECATED) @@ -371,15 +371,15 @@ XPLM_API void XPLMLoadObjectAsync( * against gravity. If this is 0, the object is drawn with your rotations from * local coordanates -- that is, an object with no rotations is drawn pointing * down the -Z axis and the Y axis of the object matches the local coordinate - * Y axis. + * Y axis. * */ XPLM_API void XPLMDrawObjects( - XPLMObjectRef inObject, - int inCount, - XPLMDrawInfo_t * inLocations, - int lighting, - int earth_relative); + XPLMObjectRef inObject, + int inCount, + XPLMDrawInfo_t * inLocations, + int lighting, + int earth_relative); #endif /* XPLM_DEPRECATED */ #if defined(XPLM200) @@ -389,11 +389,11 @@ XPLM_API void XPLMDrawObjects( * This routine marks an object as no longer being used by your plugin. * Objects are reference counted: once no plugins are using an object, it is * purged from memory. Make sure to call XPLMUnloadObject once for each - * successful call to XPLMLoadObject. + * successful call to XPLMLoadObject. * */ XPLM_API void XPLMUnloadObject( - XPLMObjectRef inObject); + XPLMObjectRef inObject); #endif /* XPLM200 */ #if defined(XPLM200) @@ -404,7 +404,7 @@ XPLM_API void XPLMUnloadObject( * The library access routines allow you to locate scenery objects via the * X-Plane library system. Right now library access is only provided for * objects, allowing plugin-drawn objects to be extended using the library - * system. + * system. * */ @@ -414,12 +414,12 @@ XPLM_API void XPLMUnloadObject( * * An XPLMLibraryEnumerator_f is a callback you provide that is called once * for each library element that is located. The returned paths will be - * relative to the X-System folder. + * relative to the X-System folder. * */ typedef void (* XPLMLibraryEnumerator_f)( - const char * inFilePath, - void * inRef); + const char * inFilePath, + void * inRef); /* * XPLMLookupObjects @@ -432,15 +432,15 @@ typedef void (* XPLMLibraryEnumerator_f)( * The latitude and longitude parameters specify the location the object will * be used. The library system allows for scenery packages to only provide * objects to certain local locations. Only objects that are allowed at the - * latitude/longitude you provide will be returned. + * latitude/longitude you provide will be returned. * */ XPLM_API int XPLMLookupObjects( - const char * inPath, - float inLatitude, - float inLongitude, - XPLMLibraryEnumerator_f enumerator, - void * ref); + const char * inPath, + float inLatitude, + float inLongitude, + XPLMLibraryEnumerator_f enumerator, + void * ref); #endif /* XPLM200 */ #ifdef __cplusplus diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMSound.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMSound.h new file mode 100644 index 0000000..9e89bb6 --- /dev/null +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMSound.h @@ -0,0 +1,284 @@ +#ifndef _XPLMSound_h_ +#define _XPLMSound_h_ + +/* + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 + * + */ + +/*************************************************************************** + * XPLMSound + ***************************************************************************/ +/* + * This provides a minimal interface into the FMOD audio system. On the + * simplest level, you can request that X-Plane plays an in-memory audio + * buffer. This will work without linking to FMOD yourself. If you want to do + * anything more, such as modifying the sound, or loading banks and triggering + * your own events, you can get a pointer to the FMOD Studio instance. + * + */ + +#include "XPLMDefs.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(XPLM400) +/*************************************************************************** + * FMOD ACCESS + ***************************************************************************/ + +/* + * XPLMAudioBus + * + * This enumeration states the type of audio you wish to play - that is, the + * part of the simulated environment that the audio belongs in. If you use + * FMOD directly, note that COM1, COM2, Pilot and GND exist in a different + * FMOD bank so you may see these channels being unloaded/reloaded + * independently of the others. They may also be using a different + * FMOD::System if the user has selected a dedicated headset output device. + * + */ +enum { + /* Incoming speech on COM1 */ + xplm_AudioRadioCom1 = 0, + + /* Incoming speech on COM2 */ + xplm_AudioRadioCom2 = 1, + + /* Pilot's own speech */ + xplm_AudioRadioPilot = 2, + + /* Copilot's own speech */ + xplm_AudioRadioCopilot = 3, + + xplm_AudioExteriorAircraft = 4, + + xplm_AudioExteriorEnvironment = 5, + + xplm_AudioExteriorUnprocessed = 6, + + xplm_AudioInterior = 7, + + xplm_AudioUI = 8, + + /* Dedicated ground vehicle cable */ + xplm_AudioGround = 9, + + /* Master bus. Not normally to be used directly. */ + xplm_Master = 10, + + +}; +typedef int XPLMAudioBus; + +/* + * XPLMBankID + * + * These values are returned as the parameter of the + * "XPLM_MSG_FMOD_BANK_LOADED" and "XPLM_MSG_FMOD_BANK_UNLOADING" messages. + * + */ +enum { + /* Master bank. Handles all aircraft and environmental audio. */ + xplm_MasterBank = 0, + + /* Radio bank. Handles COM1/COM2/GND/Pilot/Copilot. */ + xplm_RadioBank = 1, + + +}; +typedef int XPLMBankID; + + +/* + * If you want to get full access to FMOD sound features, you need to include fmod.h or fmod.hpp yourself FIRST. + * If you only need the basic wrapper functions which allow 3D placement and playback on a specified channel, there + * is no need to link with full FMOD. + * It is recommended but not required that you don't mix methods - either use native FMOD calls or stick entirely + * within the functions of the X-Plane SDK. + * + * If you choose to use the advanced method, be aware that it is your responsibility to ensure that any resources, + * especially callbacks, are cleaned up when needed. The sound system may well be completely rebuild when the master + * banks are reloaded, when aircraft are reloaded, or your plugin is unloaded. + * + * IMPORTANT: For all calls which use, or return, FMOD base types like FMOD_Studio_System*, these are fully interchangeable + * with their C++ equivalents. See https://www.fmod.com/docs/2.02/api/white-papers-handle-system.html . + */ +#if defined(_FMOD_COMMON_H) + +/* + * XPLMGetFMODStudio + * + * Get a handle to the FMOD Studio, allowing you to load/process whatever else + * you need. This also gives access to the underlying system via + * FMOD::Studio::System::getCoreSystem() / FMOD_Studio_System_GetCoreSystem() + * . When a separate output device is being used for the radio, this will + * always return the FMOD::Studio that is running the environment output, as + * before. If you want to specifically target the headset output device, you + * can obtain that FMOD::Studio by getting one of the radio-specific output + * channelgroups and using the getSystem() call on that. + * + */ +XPLM_API FMOD_STUDIO_SYSTEM* XPLMGetFMODStudio(void); + +/* + * XPLMGetFMODChannelGroup + * + * Get a reference to a particular channel group - that is, an output channel. + * See the table above for values. + * + */ +XPLM_API FMOD_CHANNELGROUP* XPLMGetFMODChannelGroup( + XPLMAudioBus audioType); + + +#else +/* + * These definitions are enough to play a basic sound without linking to the full FMOD distribution. You can still position it in 3D + * and change other basic parameters. In all cases where an FMOD_RESULT is returned, the full range of FMOD_RESULT codes are used - the + * status will in almost all situations be coming straight from FMOD - so the single definition here is purely to create a matching + * datatype and allow simple "is OK" and "is not OK" tests. +*/ + +typedef enum FMOD_RESULT +{ + FMOD_OK, +} FMOD_RESULT; +typedef enum FMOD_SOUND_FORMAT +{ + FMOD_SOUND_FORMAT_PCM16 = 2 +} FMOD_SOUND_FORMAT; +typedef struct FMOD_VECTOR +{ + float x, y, z; +} FMOD_VECTOR; +typedef void FMOD_CHANNEL; +#endif + +/* + * XPLMPCMComplete_f + * + * If you use XPLMPlayPCMOnBus() you may use this optional callback to find + * out when the FMOD::Channel is complete, if you need to deallocate memory + * for example. + * + */ +typedef void (* XPLMPCMComplete_f)( + void * inRefcon, + FMOD_RESULT status); + +/* + * XPLMPlayPCMOnBus + * + * Play an in-memory audio buffer on a given audio bus. The resulting FMOD + * channel is returned. PAY ATTENTION TO THE CALLBACK - when the sample + * completes or is stopped by X-Plane, the channel will go away. It's up to + * you to listen for the callback and invalidate any copy of the channel + * pointer you have lying around. The callback is optional because if you have + * no intention of interacting with the sound after it's launched, then you + * don't need to keep the channel pointer at all. The sound is not started + * instantly. Instead, it will be started the next time X-Plane refreshes the + * sound system, typically at the start of the next frame. This allows you to + * set the initial position for the sound, if required. The callback will be + * called on the main thread, and will be called only once per sound. If the + * call fails and you provide a callback function, you will get a callback + * with an FMOD status code. + * + */ +XPLM_API FMOD_CHANNEL* XPLMPlayPCMOnBus( + void * audioBuffer, + uint32_t bufferSize, + FMOD_SOUND_FORMAT soundFormat, + int freqHz, + int numChannels, + int loop, + XPLMAudioBus audioType, + XPLMPCMComplete_f inCallback, + void * inRefcon); /* Can be NULL */ + +/* + * XPLMStopAudio + * + * Stop playing an active FMOD channel. If you defined a completion callback, + * this will be called. After this, the FMOD::Channel* will no longer be valid + * and must not be used in any future calls. + * + */ +XPLM_API FMOD_RESULT XPLMStopAudio( + FMOD_CHANNEL* fmod_channel); + +/* + * XPLMSetAudioPosition + * + * Move the given audio channel (i.e. a single sound) to a specific location + * in local co-ordinates. This will set the sound to 3D if it is not already. + * + */ +XPLM_API FMOD_RESULT XPLMSetAudioPosition( + FMOD_CHANNEL* fmod_channel, + FMOD_VECTOR* position, + FMOD_VECTOR* velocity); + +/* + * XPLMSetAudioFadeDistance + * + * Set the minimum and maximum fade distances for a given sound. This is + * highly unlikely to be 0 - please see + * https://documentation.help/FMOD-Studio-API/FMOD_Sound_Set3DMinMaxDistance.html + * for full details. This will set the sound to 3D if it is not already. You + * can set a 3D sound back to 2D by passing negative values for both min amd + * max. + * + */ +XPLM_API FMOD_RESULT XPLMSetAudioFadeDistance( + FMOD_CHANNEL* fmod_channel, + float min_fade_distance, + float max_fade_distance); + +/* + * XPLMSetAudioVolume + * + * Set the current volume of an active FMOD channel. This should be used to + * handle changes in the audio source volume, not for fading with distance. + * Values from 0 to 1 are normal, above 1 can be used to artificially amplify + * a sound. + * + */ +XPLM_API FMOD_RESULT XPLMSetAudioVolume( + FMOD_CHANNEL* fmod_channel, + float source_volume); + +/* + * XPLMSetAudioPitch + * + * Change the current pitch of an active FMOD channel. + * + */ +XPLM_API FMOD_RESULT XPLMSetAudioPitch( + FMOD_CHANNEL* fmod_channel, + float audio_pitch_hz); + +/* + * XPLMSetAudioCone + * + * Set a directional cone for an active FMOD channel. The orientation vector + * is in local coordinates. This will set the sound to 3D if it is not + * already. + * + */ +XPLM_API FMOD_RESULT XPLMSetAudioCone( + FMOD_CHANNEL* fmod_channel, + float inside_angle, + float outside_angle, + float outside_volume, + FMOD_VECTOR* orientation); + +#endif /* XPLM400 */ +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMUtilities.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMUtilities.h old mode 100755 new mode 100644 index bec319e..d2fbf93 --- a/Example/Lib/SDK/CHeaders/XPLM/XPLMUtilities.h +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMUtilities.h @@ -2,8 +2,8 @@ #define _XPLMUtilities_h_ /* - * Copyright 2005-2012 Sandy Barbour and Ben Supnik All rights reserved. See - * license.txt for usage. X-Plane SDK Version: 2.1.1 + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 * */ @@ -58,7 +58,7 @@ extern "C" { * ----------------------- * * Some of these APIs use full paths, but others use paths relative to the - * user's X-Plane installation. This is documented on a per-API basis. + * user's X-Plane installation. This is documented on a per-API basis. * */ @@ -68,15 +68,15 @@ extern "C" { * XPLMDataFileType * * These enums define types of data files you can load or unload using the - * SDK. + * SDK. * */ enum { - /* A situation (.sit) file, which starts off a flight in a given * - * configuration. */ + /* A situation (.sit) file, which starts off a flight in a given * + * configuration. */ xplm_DataFile_Situation = 1, - /* A situation movie (.smo) file, which replays a past flight. */ + /* A situation movie (.smo) file, which replays a past flight. */ xplm_DataFile_ReplayMovie = 2, @@ -88,14 +88,14 @@ typedef int XPLMDataFileType; * XPLMGetSystemPath * * This function returns the full path to the X-System folder. Note that this - * is a directory path, so it ends in a trailing : or /. + * is a directory path, so it ends in a trailing : or / . * * The buffer you pass should be at least 512 characters long. The path is - * returned using the current native or OS path conventions. + * returned using the current native or OS path conventions. * */ XPLM_API void XPLMGetSystemPath( - char * outSystemPath); + char * outSystemPath); /* * XPLMGetPrefsPath @@ -103,22 +103,22 @@ XPLM_API void XPLMGetSystemPath( * This routine returns a full path to a file that is within X-Plane's * preferences directory. (You should remove the file name back to the last * directory separator to get the preferences directory using - * XPLMExtractFileAndPath.) + * XPLMExtractFileAndPath). * * The buffer you pass should be at least 512 characters long. The path is - * returned using the current native or OS path conventions. + * returned using the current native or OS path conventions. * */ XPLM_API void XPLMGetPrefsPath( - char * outPrefsPath); + char * outPrefsPath); /* * XPLMGetDirectorySeparator * * This routine returns a string with one char and a null terminator that is * the directory separator for the current platform. This allows you to write - * code that concatinates directory paths without having to #ifdef for - * platform. The character returned will reflect the current file path mode. + * code that concatenates directory paths without having to #ifdef for + * platform. The character returned will reflect the current file path mode. * */ XPLM_API const char * XPLMGetDirectorySeparator(void); @@ -127,20 +127,20 @@ XPLM_API const char * XPLMGetDirectorySeparator(void); * XPLMExtractFileAndPath * * Given a full path to a file, this routine separates the path from the file. - * If the path is a partial directory (e.g. ends in : or \) the trailing + * If the path is a partial directory (e.g. ends in : or / ) the trailing * directory separator is removed. This routine works in-place; a pointer to * the file part of the buffer is returned; the original buffer still starts - * with the path and is null terminated with no trailing separator. + * with the path and is null terminated with no trailing separator. * */ XPLM_API char * XPLMExtractFileAndPath( - char * inFullPath); + char * inFullPath); /* * XPLMGetDirectoryContents * * This routine returns a list of files in a directory (specified by a full - * path, no trailing : or \). The output is returned as a list of NULL + * path, no trailing : or / ). The output is returned as a list of NULL * terminated strings. An index array (if specified) is filled with pointers * into the strings. The last file is indicated by a zero-length string (and * NULL in the indices). This routine will return 1 if you had capacity for @@ -175,18 +175,18 @@ XPLM_API char * XPLMExtractFileAndPath( * * WARNING: Before X-Plane 7 this routine did not properly iterate through * directories. If X-Plane - * 6 compatibility is needed, use your own code to iterate directories. + * 6 compatibility is needed, use your own code to iterate directories. * */ XPLM_API int XPLMGetDirectoryContents( - const char * inDirectoryPath, - int inFirstReturn, - char * outFileNames, - int inFileNameBufSize, - char ** outIndices, /* Can be NULL */ - int inIndexCount, - int * outTotalFiles, /* Can be NULL */ - int * outReturnedFiles); /* Can be NULL */ + const char * inDirectoryPath, + int inFirstReturn, + char * outFileNames, + int inFileNameBufSize, + char ** outIndices, /* Can be NULL */ + int inIndexCount, + int * outTotalFiles, /* Can be NULL */ + int * outReturnedFiles); /* Can be NULL */ #if defined(XPLM200) /* @@ -194,12 +194,12 @@ XPLM_API int XPLMGetDirectoryContents( * * Loads a data file of a given type. Paths must be relative to the X-System * folder. To clear the replay, pass a NULL file name (this is only valid with - * replay movies, not sit files). + * replay movies, not sit files). * */ XPLM_API int XPLMLoadDataFile( - XPLMDataFileType inFileType, - const char * inFilePath); /* Can be NULL */ + XPLMDataFileType inFileType, + const char * inFilePath); /* Can be NULL */ #endif /* XPLM200 */ #if defined(XPLM200) @@ -207,12 +207,12 @@ XPLM_API int XPLMLoadDataFile( * XPLMSaveDataFile * * Saves the current situation or replay; paths are relative to the X-System - * folder. + * folder. * */ XPLM_API int XPLMSaveDataFile( - XPLMDataFileType inFileType, - const char * inFilePath); + XPLMDataFileType inFileType, + const char * inFilePath); #endif /* XPLM200 */ /*************************************************************************** @@ -226,7 +226,7 @@ XPLM_API int XPLMSaveDataFile( * the original authors considered extending the API to other applications * that shared basic infrastructure with X-Plane. These enumerations are * hold-overs from that original roadmap; all values other than X-Plane are - * deprecated. Your plugin should never need this enumeration. + * deprecated. Your plugin should never need this enumeration. * */ enum { @@ -257,6 +257,22 @@ enum { #if defined(XPLM_DEPRECATED) xplm_Host_XAuto = 7, +#endif /* XPLM_DEPRECATED */ +#if defined(XPLM_DEPRECATED) + xplm_Host_Xavion = 8, + +#endif /* XPLM_DEPRECATED */ +#if defined(XPLM_DEPRECATED) + xplm_Host_Control_Pad = 9, + +#endif /* XPLM_DEPRECATED */ +#if defined(XPLM_DEPRECATED) + xplm_Host_PFD_Map = 10, + +#endif /* XPLM_DEPRECATED */ +#if defined(XPLM_DEPRECATED) + xplm_Host_RADAR = 11, + #endif /* XPLM_DEPRECATED */ }; @@ -268,7 +284,7 @@ typedef int XPLMHostApplicationID; * These enums define what language the sim is running in. These enumerations * do not imply that the sim can or does run in all of these languages; they * simply provide a known encoding in the event that a given sim version is - * localized to a certain language. + * localized to a certain language. * */ enum { @@ -302,6 +318,10 @@ enum { xplm_Language_Chinese = 10, #endif /* XPLM300 */ +#if defined(XPLM400) + xplm_Language_Ukrainian = 11, + +#endif /* XPLM400 */ }; typedef int XPLMLanguageCode; @@ -317,11 +337,11 @@ typedef int XPLMLanguageCode; * info in your XPluginStart and XPluginStop callbacks. To avoid causing logic * errors in the management code, do not call any other plugin routines from * your error callback - it is only meant for catching errors in the - * debugging. + * debugging. * */ typedef void (* XPLMError_f)( - const char * inMessage); + const char * inMessage); #endif /* XPLM200 */ #if defined(XPLM_DEPRECATED) @@ -335,7 +355,7 @@ typedef void (* XPLMError_f)( * NOTE: because plugins are always called from within the XPLM, there is no * need to check for initialization; it will always return 1. This routine is * deprecated - you do not need to check it before continuing within your - * plugin. + * plugin. * */ XPLM_API int XPLMInitialized(void); @@ -345,23 +365,23 @@ XPLM_API int XPLMInitialized(void); * XPLMGetVersions * * This routine returns the revision of both X-Plane and the XPLM DLL. All - * versions are three-digit decimal numbers (e.g. 606 for version 6.06 of - * X-Plane); the current revision of the XPLM is 200 (2.00). This routine also - * returns the host ID of the app running us. + * versions are at least three-digit decimal numbers (e.g. 606 for version + * 6.06 of X-Plane); the current revision of the XPLM is 400 (4.00). This + * routine also returns the host ID of the app running us. * * The most common use of this routine is to special-case around X-Plane - * version-specific behavior. + * version-specific behavior. * */ XPLM_API void XPLMGetVersions( - int * outXPlaneVersion, - int * outXPLMVersion, - XPLMHostApplicationID * outHostID); + int * outXPlaneVersion, + int * outXPLMVersion, + XPLMHostApplicationID * outHostID); /* * XPLMGetLanguage * - * This routine returns the langauge the sim is running in. + * This routine returns the langauge the sim is running in. * */ XPLM_API XPLMLanguageCode XPLMGetLanguage(void); @@ -392,11 +412,11 @@ XPLM_API XPLMLanguageCode XPLMGetLanguage(void); * * To use functionality via XPLMFindSymbol you will need to copy your own * definitions of the X-Plane API prototypes and cast the returned pointer to - * the correct type. + * the correct type. * */ XPLM_API void * XPLMFindSymbol( - const char * inString); + const char * inString); #endif /* XPLM200 */ #if defined(XPLM200) @@ -422,11 +442,11 @@ XPLM_API void * XPLMFindSymbol( * not normally run, and this may adversely affect performance, so do not * leave error callbacks installed in shipping plugins. Since the only useful * response to an error is to change code, error callbacks are not useful "in - * the field". + * the field". * */ XPLM_API void XPLMSetErrorCallback( - XPLMError_f inCallback); + XPLMError_f inCallback); #endif /* XPLM200 */ /* @@ -440,11 +460,11 @@ XPLM_API void XPLMSetErrorCallback( * plugin. The X-Plane Log file is shared by X-Plane and every plugin in the * system, and plugins that (when functioning normally) print verbose log * output make it difficult for developers to find error conditions from other - * parts of the system. + * parts of the system. * */ XPLM_API void XPLMDebugString( - const char * inString); + const char * inString); /* * XPLMSpeakString @@ -452,11 +472,11 @@ XPLM_API void XPLMDebugString( * This function displays the string in a translucent overlay over the current * display and also speaks the string if text-to-speech is enabled. The string * is spoken asynchronously, this function returns immediately. This function - * may not speak or print depending on user preferences. + * may not speak or print depending on user preferences. * */ XPLM_API void XPLMSpeakString( - const char * inString); + const char * inString); /* * XPLMGetVirtualKeyDescription @@ -464,11 +484,11 @@ XPLM_API void XPLMSpeakString( * Given a virtual key code (as defined in XPLMDefs.h) this routine returns a * human-readable string describing the character. This routine is provided * for showing users what keyboard mappings they have set up. The string may - * read 'unknown' or be a blank or NULL string if the virtual key is unknown. + * read 'unknown' or be a blank or NULL string if the virtual key is unknown. * */ XPLM_API const char * XPLMGetVirtualKeyDescription( - char inVirtualKey); + char inVirtualKey); /* * XPLMReloadScenery @@ -476,9 +496,9 @@ XPLM_API const char * XPLMGetVirtualKeyDescription( * XPLMReloadScenery reloads the current set of scenery. You can use this * function in two typical ways: simply call it to reload the scenery, picking * up any new installed scenery, .env files, etc. from disk. Or, change the - * lat/ref and lon/ref data refs and then call this function to shift the + * lat/ref and lon/ref datarefs and then call this function to shift the * scenery environment. This routine is equivalent to picking "reload - * scenery" from the developer menu. + * scenery" from the developer menu. * */ XPLM_API void XPLMReloadScenery(void); @@ -523,7 +543,7 @@ XPLM_API void XPLMReloadScenery(void); * in letting X-Plane handle or not handle the command; you are responsible * for passing a *balanced* number of begin and end messages to X-Plane. (E.g. * it is not legal to pass all the begin messages to X-Plane but hide all the - * end messages). + * end messages). * */ @@ -531,17 +551,17 @@ XPLM_API void XPLMReloadScenery(void); /* * XPLMCommandPhase * - * The phases of a command. + * The phases of a command. * */ enum { - /* The command is being started. */ + /* The command is being started. */ xplm_CommandBegin = 0, - /* The command is continuing to execute. */ + /* The command is continuing to execute. */ xplm_CommandContinue = 1, - /* The command has ended. */ + /* The command has ended. */ xplm_CommandEnd = 2, @@ -558,7 +578,7 @@ typedef int XPLMCommandPhase; * * Note that a command is not "owned" by a particular plugin. Since many * plugins may participate in a command's execution, the command does not go - * away if the plugin that created it is unloaded. + * away if the plugin that created it is unloaded. * */ typedef void * XPLMCommandRef; @@ -573,23 +593,23 @@ typedef void * XPLMCommandRef; * * Your command handler should return 1 to let processing of the command * continue to other plugins and X-Plane, or 0 to halt processing, potentially - * bypassing X-Plane code. + * bypassing X-Plane code. * */ typedef int (* XPLMCommandCallback_f)( - XPLMCommandRef inCommand, - XPLMCommandPhase inPhase, - void * inRefcon); + XPLMCommandRef inCommand, + XPLMCommandPhase inPhase, + void * inRefcon); /* * XPLMFindCommand * * XPLMFindCommand looks up a command by name, and returns its command - * reference or NULL if the command does not exist. + * reference or NULL if the command does not exist. * */ XPLM_API XPLMCommandRef XPLMFindCommand( - const char * inName); + const char * inName); /* * XPLMCommandBegin @@ -597,33 +617,33 @@ XPLM_API XPLMCommandRef XPLMFindCommand( * XPLMCommandBegin starts the execution of a command, specified by its * command reference. The command is "held down" until XPLMCommandEnd is * called. You must balance each XPLMCommandBegin call with an XPLMCommandEnd - * call. + * call. * */ XPLM_API void XPLMCommandBegin( - XPLMCommandRef inCommand); + XPLMCommandRef inCommand); /* * XPLMCommandEnd * * XPLMCommandEnd ends the execution of a given command that was started with * XPLMCommandBegin. You must not issue XPLMCommandEnd for a command you did - * not begin. + * not begin. * */ XPLM_API void XPLMCommandEnd( - XPLMCommandRef inCommand); + XPLMCommandRef inCommand); /* * XPLMCommandOnce * * This executes a given command momentarily, that is, the command begins and * ends immediately. This is the equivalent of calling XPLMCommandBegin() and - * XPLMCommandEnd() back ot back. + * XPLMCommandEnd() back to back. * */ XPLM_API void XPLMCommandOnce( - XPLMCommandRef inCommand); + XPLMCommandRef inCommand); /* * XPLMCreateCommand @@ -631,12 +651,12 @@ XPLM_API void XPLMCommandOnce( * XPLMCreateCommand creates a new command for a given string. If the command * already exists, the existing command reference is returned. The description * may appear in user interface contexts, such as the joystick configuration - * screen. + * screen. * */ XPLM_API XPLMCommandRef XPLMCreateCommand( - const char * inName, - const char * inDescription); + const char * inName, + const char * inDescription); /* * XPLMRegisterCommandHandler @@ -648,27 +668,27 @@ XPLM_API XPLMCommandRef XPLMCreateCommand( * X-Plane executes the command, and returning 0 from your callback will * disable X-Plane's processing of the command. If inBefore is false, your * callback will run after X-Plane. (You can register a single callback both - * before and after a command.) + * before and after a command.) * */ XPLM_API void XPLMRegisterCommandHandler( - XPLMCommandRef inComand, - XPLMCommandCallback_f inHandler, - int inBefore, - void * inRefcon); + XPLMCommandRef inComand, + XPLMCommandCallback_f inHandler, + int inBefore, + void * inRefcon); /* * XPLMUnregisterCommandHandler * * XPLMUnregisterCommandHandler removes a command callback registered with - * XPLMRegisterCommandHandler. + * XPLMRegisterCommandHandler. * */ XPLM_API void XPLMUnregisterCommandHandler( - XPLMCommandRef inComand, - XPLMCommandCallback_f inHandler, - int inBefore, - void * inRefcon); + XPLMCommandRef inComand, + XPLMCommandCallback_f inHandler, + int inBefore, + void * inRefcon); #endif /* XPLM200 */ #if defined(XPLM_DEPRECATED) @@ -686,7 +706,7 @@ XPLM_API void XPLMUnregisterCommandHandler( * The legacy user interaction APIs let you simulate commands the user can do * with a joystick, keyboard etc. Note that it is generally safer for future * compatibility to use one of these commands than to manipulate the - * underlying sim data. + * underlying sim data. * */ @@ -696,7 +716,7 @@ XPLM_API void XPLMUnregisterCommandHandler( * * These enums represent all the keystrokes available within X-Plane. They can * be sent to X-Plane directly. For example, you can reverse thrust using - * these enumerations. + * these enumerations. * */ enum { @@ -804,7 +824,7 @@ typedef int XPLMCommandKeyID; * These are enumerations for all of the things you can do with a joystick * button in X-Plane. They currently match the buttons menu in the equipment * setup dialog, but these enums will be stable even if they change in - * X-Plane. + * X-Plane. * */ enum { @@ -914,12 +934,12 @@ typedef int XPLMCommandButtonID; * is a raw key stroke it may be mapped by the keys file or enter text into a * field. * - * Deprecated: use XPLMCommandOnce + * Deprecated: use XPLMCommandOnce * */ XPLM_API void XPLMSimulateKeyPress( - int inKeyType, - int inKey); + int inKeyType, + int inKey); /* * XPLMCommandKeyStroke @@ -929,26 +949,26 @@ XPLM_API void XPLMSimulateKeyPress( * remapped their keyboard. Examples of things you might do with this include * pausing the simulator. * - * Deprecated: use XPLMCommandOnce + * Deprecated: use XPLMCommandOnce * */ XPLM_API void XPLMCommandKeyStroke( - XPLMCommandKeyID inKey); + XPLMCommandKeyID inKey); /* * XPLMCommandButtonPress * * This function simulates any of the actions that might be taken by pressing * a joystick button. However, this lets you call the command directly rather - * than have to know which button is mapped where. Important: you must release - * each button you press. The APIs are separate so that you can 'hold down' a - * button for a fixed amount of time. + * than having to know which button is mapped where. Important: you must + * release each button you press. The APIs are separate so that you can 'hold + * down' a button for a fixed amount of time. * - * Deprecated: use XPLMCommandBegin. + * Deprecated: use XPLMCommandBegin. * */ XPLM_API void XPLMCommandButtonPress( - XPLMCommandButtonID inButton); + XPLMCommandButtonID inButton); /* * XPLMCommandButtonRelease @@ -956,11 +976,11 @@ XPLM_API void XPLMCommandButtonPress( * This function simulates any of the actions that might be taken by pressing * a joystick button. See XPLMCommandButtonPress. * - * Deprecated: use XPLMCommandEnd. + * Deprecated: use XPLMCommandEnd. * */ XPLM_API void XPLMCommandButtonRelease( - XPLMCommandButtonID inButton); + XPLMCommandButtonID inButton); #endif /* XPLM_DEPRECATED */ #ifdef __cplusplus diff --git a/Example/Lib/SDK/CHeaders/XPLM/XPLMWeather.h b/Example/Lib/SDK/CHeaders/XPLM/XPLMWeather.h new file mode 100644 index 0000000..3f1f50f --- /dev/null +++ b/Example/Lib/SDK/CHeaders/XPLM/XPLMWeather.h @@ -0,0 +1,146 @@ +#ifndef _XPLMWeather_h_ +#define _XPLMWeather_h_ + +/* + * Copyright 2005-2022 Laminar Research, Sandy Barbour and Ben Supnik All + * rights reserved. See license.txt for usage. X-Plane SDK Version: 4.0.0 + * + */ + +/*************************************************************************** + * XPLMWeather + ***************************************************************************/ +/* + * This provides access to the X-Plane 12 enhanced weather system. + * + */ + +#include "XPLMDefs.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*************************************************************************** + * WEATHER ACCESS + ***************************************************************************/ + +/* + * XPLMWeatherInfoWinds_t + * + */ +typedef struct { + /* Altitude MSL, meters */ + float alt_msl; + /* Wind speed, meters/sec */ + float speed; + /* Direction (true) */ + float direction; + /* Gust speed, meters/sec */ + float gust_speed; + /* Shear arc, degrees i.e. 50% of this arc in either direction from base */ + float shear; + /* Clear-air turbulence ratio */ + float turbulence; +} XPLMWeatherInfoWinds_t; + +/* + * XPLMWeatherInfoClouds_t + * + */ +typedef struct { + /* Cloud type, float enum */ + float cloud_type; + /* Coverage ratio */ + float coverage; + /* Altitude MSL, meters */ + float alt_top; + /* Altitude MSL, meters */ + float alt_base; +} XPLMWeatherInfoClouds_t; + +/* + * XPLMWeatherInfo_t + * + * Basic weather conditions at a specific point. + * + */ +typedef struct { + /* The size of the struct. */ + int structSize; + /* Temperature at the given altitude in Celsius */ + float temperature_alt; + /* Dewpoint at the given altitude in Celsius */ + float dewpoint_alt; + /* Pressure at the given altitude in Pascals */ + float pressure_alt; + /* Precipitation rate at the given altitude */ + float precip_rate_alt; + /* Wind direction at the given altitude */ + float wind_dir_alt; + /* Wind speed at the given altitude, meters/sec */ + float wind_spd_alt; + /* Turbulence ratio at the given altitude */ + float turbulence_alt; + /* Height of water waves in meters */ + float wave_height; + /* Length of water waves in meters */ + float wave_length; + /* Direction from which water waves are coming */ + int wave_dir; + /* Speed of wave advance in meters/sec */ + float wave_speed; + /* Base visibility at 0 altitude, meters */ + float visibility; + /* Base precipitation ratio at 0 altitude */ + float precip_rate; + /* Climb rate due to thermals, meters/sec */ + float thermal_climb; + /* Pressure at 0 altitude in Pascals */ + float pressure_sl; + /* Defined wind layers. Not all layers are always defined. */ + XPLMWeatherInfoWinds_t wind_layers[13]; + /* Defined cloud layers. Not all layers are always defined. */ + XPLMWeatherInfoClouds_t cloud_layers[3]; +} XPLMWeatherInfo_t; + +#if defined(XPLM400) +/* + * XPLMGetMETARForAirport + * + * Get the last-downloaded METAR report for an airport by ICAO code. Note that + * the actual weather at that airport may have evolved significantly since the + * last downloaded METAR. outMETAR must point to a char buffer of at least 150 + * characters. This call is not intended to be used per-frame. This call does + * not return the current weather at the airport, and returns an empty string + * if the system is not in real-weather mode. + * + */ +XPLM_API void XPLMGetMETARForAirport( + const char * airport_id, + XPLMFixedString150_t * outMETAR); +#endif /* XPLM400 */ + +#if defined(XPLM400) +/* + * XPLMGetWeatherAtLocation + * + * Get the current weather conditions at a given location. Note that this does + * not work world-wide, only within the surrounding region. Return 1 if + * detailed weather (i.e. an airport-specific METAR) was found, 0 if not. In + * both cases, the structure will contain the best data available. This call + * is not intended to be used per-frame. + * + */ +XPLM_API int XPLMGetWeatherAtLocation( + double latitude, + double longitude, + double altitude_m, + XPLMWeatherInfo_t * out_info); +#endif /* XPLM400 */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Lib/SDK/Libraries/Lin/XPLM_64.so b/Example/Lib/SDK/Libraries/Lin/XPLM_64.so new file mode 100755 index 0000000000000000000000000000000000000000..001e6f6f9087eef6e36ef35a97f2ea12e8e3e12c GIT binary patch literal 3145744 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 z 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 C-L_NRLmTz1Q%R# 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

_9iu8VPTQ3Lg0&ZHeu9K_-?9jCll^9 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

gUQbokdsMh8O1kJM&%_`YWJq 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 {T5M&Whuhhe65V+#CqA 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

mCP2w-lG*VDaH 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∋%pQiP4GFMd(6a1VNmJ!^@>I_{f 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

h$A5E4GE8X{_N? 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ɣeAOAQy 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 z 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

+ +*/ + diff --git a/docs/html/LTAPI_8cpp.html b/docs/html/LTAPI_8cpp.html index 80e2955..f8a6871 100644 --- a/docs/html/LTAPI_8cpp.html +++ b/docs/html/LTAPI_8cpp.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: LTAPI.cpp File Reference + + + @@ -16,8 +19,8 @@
- - +
+
LTAPI
API to access LiveTraffic's aircraft information
@@ -27,24 +30,34 @@
- + + +/* @license-end */ + + +
-
-
LTAPI.cpp File Reference
+Variables
+
LTAPI.cpp File Reference
@@ -57,47 +70,42 @@ #include "LTAPI.h"
#include "XPLMPlugin.h"
- - - -

-Namespaces

 LTAPI
 
- - - + + - - + + - - + + - - + +

+

Macros

#define LT_PLUGIN_SIGNATURE   "TwinFan.plugin.LiveTraffic"
 LiveTraffic's plugin signature. More...
#define LT_PLUGIN_SIGNATURE   "TwinFan.plugin.LiveTraffic"
 LiveTraffic's plugin signature.
 
#define ASSIGN_DR_NAME(var, drName, dataRef, type)
 Defines static object to access dataRef and fetches its value into var More...
#define ASSIGN_DR_NAME(var, drName, dataRef, type)
 Defines static object to access dataRef and fetches its value into var
 
#define RETURN_DR(dataRef, type)
 Defines static object LTDataRef to access dataRef and returns its current value. More...
#define RETURN_DR(dataRef, type)
 Defines static object LTDataRef to access dataRef and returns its current value.
 
#define ZERO_TERM(str)   str[sizeof(str)-1] = 0
 Set last element of array = 0, meant to ensure zero-termination of C strings. More...
#define ZERO_TERM(str)
 Set last element of array = 0, meant to ensure zero-termination of C strings.
 
- - - - - - - + + + + + + +

-Functions

time_t LTAPI::timegm (struct tm *_Tm)
 Inverse for gmtime, i.e. converts struct tm to time_t in ZULU timezone. More...
 
std::string LTAPI::hexStr (uint64_t n, unsigned minChars=6)
 Fairly fast conversion to hex string. More...
 

+Variables

constexpr const char * SDR_CAMERA_TCAS_IDX = "sim/multiplayer/camera/tcas_idx"
 shared dataRef for accessing current aircraft under camera
 
constexpr const char * SDR_CAMERA_MODES_ID = "sim/multiplayer/camera/modeS_id"
 shared dataRef for accessing current aircraft under camera
 

Detailed Description

LiveTraffic API.

-

API to access LiveTraffic's aircraft information. Data transfer from LiveTraffic to your plugin is by dataRefs in a fast, efficient way: LiveTraffic copies data of several planes combined into defined structures. LTAPI handles all that in the background and provides you with an array of aircraft information with numerical info like position, heading, speed and textual info like type, registration, call sign, flight number.

See also
https://twinfan.github.io/LTAPI/
+

API to access LiveTraffic's aircraft information. Data transfer from LiveTraffic to your plugin is by dataRefs in a fast, efficient way: LiveTraffic copies data of several planes combined into defined structures. LTAPI handles all that in the background and provides you with an array of aircraft information with numerical info like position, heading, speed and textual info like type, registration, call sign, flight number.

See also
https://twinfan.github.io/LTAPI/
Author
Birger Hoppe
-

Macro Definition Documentation

- -

◆ ASSIGN_DR_NAME

+ +

◆ ASSIGN_DR_NAME

-Value:
static LTDataRef DR##drName(dataRef); \
+Value:
static LTDataRef DR##drName(dataRef); \
var = DR##drName.get##type();
+
Represents a dataRef and covers late binding.
Definition LTAPI.h:462

Defines static object to access dataRef and fetches its value into var

Parameters
@@ -149,8 +149,8 @@

-

◆ LT_PLUGIN_SIGNATURE

+ +

◆ LT_PLUGIN_SIGNATURE

@@ -165,8 +165,8 @@

-

◆ RETURN_DR

+ +

◆ RETURN_DR

-Value:
static LTDataRef DR(dataRef); \
-
return DR.get##type();
+Value:
static LTDataRef DR(dataRef); \
+
return DR.get##type();

Defines static object LTDataRef to access dataRef and returns its current value.

Parameters
@@ -204,8 +197,8 @@

-

◆ ZERO_TERM

+ +

◆ ZERO_TERM

+

Variable Documentation

+
+

◆ SDR_CAMERA_MODES_ID

+ +
+
+ + + + + +
+ + + + +
const char* SDR_CAMERA_MODES_ID = "sim/multiplayer/camera/modeS_id"
+
+constexpr
+
+ +

shared dataRef for accessing current aircraft under camera

+ +
+
+ +

◆ SDR_CAMERA_TCAS_IDX

+ +
+
+ + + + + +
+ + + + +
const char* SDR_CAMERA_TCAS_IDX = "sim/multiplayer/camera/tcas_idx"
+
+constexpr
+
+ +

shared dataRef for accessing current aircraft under camera

+

-
Represents a dataRef and covers late binding.
Definition: LTAPI.h:445
+
diff --git a/docs/html/LTAPI_8h.html b/docs/html/LTAPI_8h.html index cb2cbe8..0c263c2 100644 --- a/docs/html/LTAPI_8h.html +++ b/docs/html/LTAPI_8h.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: LTAPI.h File Reference + + + @@ -16,8 +19,8 @@
- - +
+
LTAPI
API to access LiveTraffic's aircraft information
@@ -27,24 +30,35 @@
- + + +/* @license-end */ + +
+
-
-
LTAPI.h File Reference
+
LTAPI.h File Reference
@@ -61,18 +75,18 @@

Go to the source code of this file.

- - + - + - + @@ -84,47 +98,47 @@

+

Classes

class  LTAPIAircraft
 Represents one aircraft as controlled by LiveTraffic. More...
 
struct  LTAPIAircraft::LTAPIBulkData
 Bulk data transfer structur for communication with LTAPI. More...
 Bulk data transfer structur for communication with LTAPI. More...
 
struct  LTAPIAircraft::LTAPIBulkData::BulkBitsTy
struct  LTAPIAircraft::LTAPIBulkData::BulkBitsTy
 
struct  LTAPIAircraft::LTAPIBulkInfoTexts
 Bulk text transfer structur for communication with LTAPI. More...
 Bulk text transfer structur for communication with LTAPI. More...
 
struct  LTAPIAircraft::LTLights
 Structure to return plane's lights status. More...
 Represents a dataRef and covers late binding. More...
 
- - - + + - - + + - - + +

+

Typedefs

typedef std::shared_ptr< LTAPIAircraftSPtrLTAPIAircraft
 Smart pointer to an TLAPIAircraft object. More...
typedef std::shared_ptr< LTAPIAircraftSPtrLTAPIAircraft
 Smart pointer to an LTAPIAircraft object.
 
typedef std::map< std::string, SPtrLTAPIAircraftMapLTAPIAircraft
 Map of all aircrafts stored as smart pointers to LTAPIAircraft objects. More...
typedef std::map< std::string, SPtrLTAPIAircraftMapLTAPIAircraft
 Map of all aircrafts stored as smart pointers to LTAPIAircraft objects.
 
typedef std::list< SPtrLTAPIAircraftListLTAPIAircraft
 Simple list of smart pointers to LTAPIAircraft objects. More...
typedef std::list< SPtrLTAPIAircraftListLTAPIAircraft
 Simple list of smart pointers to LTAPIAircraft objects.
 
- - - + + - - + + - - + + - + - - + +

+

Variables

constexpr size_t LTAPIBulkData_v120 = 80
 Size of original bulk structure as per LiveTraffic v1.20. More...
constexpr size_t LTAPIBulkData_v120 = 80
 Size of original bulk structure as per LiveTraffic v1.20.
 
constexpr size_t LTAPIBulkData_v122 = sizeof(LTAPIAircraft::LTAPIBulkData)
 Size of current bulk structure. More...
constexpr size_t LTAPIBulkData_v122 = sizeof(LTAPIAircraft::LTAPIBulkData)
 Size of current bulk structure.
 
constexpr size_t LTAPIBulkInfoTexts_v120 = 264
 Size of original bulk info structure as per previous versions of LiveTraffic. More...
constexpr size_t LTAPIBulkInfoTexts_v120 = 264
 Size of original bulk info structure as per previous versions of LiveTraffic.
 
constexpr size_t LTAPIBulkInfoTexts_v122 = 288
constexpr size_t LTAPIBulkInfoTexts_v122 = 288
 
constexpr size_t LTAPIBulkInfoTexts_v240 = sizeof(LTAPIAircraft::LTAPIBulkInfoTexts)
 Size of current bulk info structure. More...
constexpr size_t LTAPIBulkInfoTexts_v240 = sizeof(LTAPIAircraft::LTAPIBulkInfoTexts)
 Size of current bulk info structure.
 

Detailed Description

LiveTraffic API.

-

API to access LiveTraffic's aircraft information. Data transfer from LiveTraffic to your plugin is by dataRefs in a fast, efficient way: LiveTraffic copies data of several planes combined into defined structures. LTAPI handles all that in the background and provides you with an array of aircraft information with numerical info like position, heading, speed and textual info like type, registration, call sign, flight number.

See also
https://twinfan.github.io/LTAPI/
+

API to access LiveTraffic's aircraft information. Data transfer from LiveTraffic to your plugin is by dataRefs in a fast, efficient way: LiveTraffic copies data of several planes combined into defined structures. LTAPI handles all that in the background and provides you with an array of aircraft information with numerical info like position, heading, speed and textual info like type, registration, call sign, flight number.

See also
https://twinfan.github.io/LTAPI/
Author
Birger Hoppe
-

Class Documentation

-

◆ LTAPIAircraft::LTAPIBulkData::BulkBitsTy

+

◆ LTAPIAircraft::LTAPIBulkData::BulkBitsTy

@@ -137,73 +151,73 @@

+bool +bool - - - +unsigned +unsigned +bool + + + +int +bool +bool +LTFlightPhase +bool +bool @@ -289,8 +303,8 @@

-

◆ LTAPIBulkData_v122

+ +

◆ LTAPIBulkData_v122

@@ -299,7 +313,7 @@

Class Members
-bool bcn: 1 beacon light
-bool camera: 1 is LiveTraffic's camera on this aircraft?
-unsigned -filler1: 1 -unused
-unsigned filler2: 8
-unsigned filler3: 32
-bool +hidden: 1 +aircraft not visible?
+bool land: 1 landing lights
-int multiIdx: 8 multiplayer index if plane reported via sim/multiplayer/position dataRefs, 0 if not
-bool nav: 1 navigaton lights
-bool onGnd: 1 Is plane on ground?
-LTFlightPhase phase: 8 flight phase, see LTAircraft::FlightPhase
-bool strb: 1 strobe light
-bool taxi: 1 @@ -213,14 +227,14 @@

Typedef Documentation

- -

◆ ListLTAPIAircraft

+ +

◆ ListLTAPIAircraft

- +
typedef std::list<SPtrLTAPIAircraft> ListLTAPIAircrafttypedef std::list<SPtrLTAPIAircraft> ListLTAPIAircraft
@@ -230,14 +244,14 @@

-

◆ MapLTAPIAircraft

+ +

◆ MapLTAPIAircraft

- +
typedef std::map<std::string,SPtrLTAPIAircraft> MapLTAPIAircrafttypedef std::map<std::string,SPtrLTAPIAircraft> MapLTAPIAircraft
@@ -248,25 +262,25 @@

-

◆ SPtrLTAPIAircraft

+ +

◆ SPtrLTAPIAircraft

- +
typedef std::shared_ptr<LTAPIAircraft> SPtrLTAPIAircrafttypedef std::shared_ptr<LTAPIAircraft> SPtrLTAPIAircraft
-

Smart pointer to an TLAPIAircraft object.

+

Smart pointer to an LTAPIAircraft object.

Variable Documentation

- -

◆ LTAPIBulkData_v120

+ +

◆ LTAPIBulkData_v120

- +
constexpr size_t LTAPIBulkData_v122 = sizeof(LTAPIAircraft::LTAPIBulkData)size_t LTAPIBulkData_v122 = sizeof(LTAPIAircraft::LTAPIBulkData)
@@ -313,8 +327,8 @@

-

◆ LTAPIBulkInfoTexts_v120

+ +

◆ LTAPIBulkInfoTexts_v120

@@ -323,7 +337,7 @@

- +
constexpr size_t LTAPIBulkInfoTexts_v120 = 264size_t LTAPIBulkInfoTexts_v120 = 264
@@ -337,8 +351,8 @@

-

◆ LTAPIBulkInfoTexts_v122

+ +

◆ LTAPIBulkInfoTexts_v122

@@ -347,7 +361,7 @@

- +
constexpr size_t LTAPIBulkInfoTexts_v122 = 288size_t LTAPIBulkInfoTexts_v122 = 288
@@ -359,8 +373,8 @@

-

◆ LTAPIBulkInfoTexts_v240

+ +

◆ LTAPIBulkInfoTexts_v240

diff --git a/docs/html/LTAPI_8h_source.html b/docs/html/LTAPI_8h_source.html index 138bbce..16aa371 100644 --- a/docs/html/LTAPI_8h_source.html +++ b/docs/html/LTAPI_8h_source.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: LTAPI.h Source File + + + @@ -16,8 +19,8 @@
- - +
+
LTAPI
API to access LiveTraffic's aircraft information
@@ -27,532 +30,664 @@
- + + +/* @license-end */ +
+
+
-
-
LTAPI.h
+
LTAPI.h
-Go to the documentation of this file.
1 
-
30 #ifndef LTAPI_h
-
31 #define LTAPI_h
-
32 
-
33 #include <cstring>
-
34 #include <memory>
-
35 #include <string>
-
36 #include <list>
-
37 #include <map>
-
38 #include <chrono>
-
39 
-
40 #include "XPLMDataAccess.h"
-
41 #include "XPLMGraphics.h"
-
42 
-
43 class LTDataRef;
-
44 
- -
52 {
-
53 private:
-
56  unsigned keyNum = 0;
-
58  std::string key;
-
59 
-
60 public:
-
61 
- - -
65  FPH_TAXI = 10,
-
66  FPH_TAKE_OFF = 20,
- - - - -
71  FPH_CLIMB = 30,
-
72  FPH_CRUISE = 40,
-
73  FPH_DESCEND = 50,
-
74  FPH_APPROACH = 60,
- -
76  FPH_LANDING = 70,
- - - - -
81  };
-
82 
-
87  struct LTAPIBulkData {
-
88  public:
-
89  // identification
-
90  uint64_t keyNum = 0;
-
91  // position, attitude
-
92  float lat_f = 0.0f;
-
93  float lon_f = 0.0f;
-
94  float alt_ft_f = 0.0f;
-
95  float heading = 0.0f;
-
96  float track = 0.0f;
-
97  float roll = 0.0f;
-
98  float pitch = 0.0f;
-
99  float speed_kt = 0.0f;
-
100  float vsi_ft = 0.0f;
-
101  float terrainAlt_ft = 0.0f;
-
102  float height_ft = 0.0f;
-
103  // configuration
-
104  float flaps = 0.0f;
-
105  float gear = 0.0f;
-
106  float reversers = 0.0f;
-
107  // simulation
-
108  float bearing = 0.0f;
-
109  float dist_nm = 0.0f;
-
110 
-
111  struct BulkBitsTy {
- -
113  bool onGnd : 1;
-
114  // Lights:
-
115  bool taxi : 1;
-
116  bool land : 1;
-
117  bool bcn : 1;
-
118  bool strb : 1;
-
119  bool nav : 1;
-
120  unsigned filler1 : 1;
-
121  bool camera : 1;
-
122  // Misc
-
123  int multiIdx : 8;
-
124  // Filler for 8-byte alignment
-
125  unsigned filler2 : 8;
-
126  unsigned filler3 : 32;
-
127  } bits;
-
128 
-
129  // V1.22 additions
-
130  double lat = 0.0f;
-
131  double lon = 0.0f;
-
132  double alt_ft = 0.0f;
-
133 
-
134 
- -
137  { memset(&bits, 0, sizeof(bits)); }
-
138  };
-
139 
- -
143  public:
-
144  // identification
-
145  uint64_t keyNum;
-
146  char registration[8];
-
147  // aircraft model/operator
-
148  char modelIcao[8];
-
149  char acClass[4];
-
150  char wtc[4];
-
151  char opIcao[8];
-
152  char man[40];
-
153  char model[40];
-
154  char catDescr[40];
-
155  char op[40];
-
156  // flight data
-
157  char callSign[8];
-
158  char squawk[8];
-
159  char flightNumber[8];
-
160  char origin[8];
-
161  char destination[8];
-
162  char trackedBy[24];
-
163 
-
164  // V1.22 additions, in V2.40 extended from 24 to 40 chars
-
165  char cslModel[40];
-
166 
- -
169  { memset(this, 0, sizeof(*this)); }
-
170  };
-
171 
-
173  struct LTLights {
-
174  bool beacon : 1;
-
175  bool strobe : 1;
-
176  bool nav : 1;
-
177  bool landing : 1;
-
178  bool taxi : 1;
-
179 
- -
182  beacon(b.bcn), strobe(b.strb), nav(b.nav), landing(b.land), taxi(b.taxi){}
-
183  };
-
184 
-
185 protected:
- - -
188 
-
190  bool bUpdated = false;
-
191 
-
192 public:
-
193  LTAPIAircraft();
-
194  virtual ~LTAPIAircraft();
-
195 
-
196  // Updates an aircraft. If our key is defined it first verifies that the
-
197  // key matches with the one currently available in the dataRefs.
-
198  // Returns false if not.
-
199  // If our key is not defined it just accepts anything available.
-
200  // Updates all fields, set bUpdated and returns true.
-
204  virtual bool updateAircraft(const LTAPIBulkData& __bulk, size_t __inSize);
-
208  virtual bool updateAircraft(const LTAPIBulkInfoTexts& __info, size_t __inSize);
-
210  bool isUpdated () const { return bUpdated; }
-
212  void resetUpdated () { bUpdated = false; }
-
213 
-
214  // data access
-
215 public:
-
216  std::string getKey() const { return key; }
-
217  // identification
-
218  std::string getRegistration() const { return info.registration; }
-
219  // aircraft model/operator
-
220  std::string getModelIcao() const { return info.modelIcao; }
-
221  std::string getAcClass() const { return info.acClass; }
-
222  std::string getWtc() const { return info.wtc; }
-
223  std::string getOpIcao() const { return info.opIcao; }
-
224  std::string getMan() const { return info.man; }
-
225  std::string getModel() const { return info.model; }
-
226  std::string getCatDescr() const { return info.catDescr; }
-
227  std::string getOp() const { return info.op; }
-
228  std::string getCslModel() const { return info.cslModel; }
-
229  // flight data
-
230  std::string getCallSign() const { return info.callSign; }
-
231  std::string getSquawk() const { return info.squawk; }
-
232  std::string getFlightNumber() const { return info.flightNumber; }
-
233  std::string getOrigin() const { return info.origin; }
-
234  std::string getDestination() const { return info.destination; }
-
235  std::string getTrackedBy() const { return info.trackedBy; }
-
236  // combined info
-
237  std::string getDescription() const;
-
238  // position, attitude
-
239  double getLat() const { return bulk.lat; }
-
240  double getLon() const { return bulk.lon; }
-
241  double getAltFt() const { return bulk.alt_ft; }
-
242  float getHeading() const { return bulk.heading; }
-
243  float getTrack() const { return bulk.track; }
-
244  float getRoll() const { return bulk.roll; }
-
245  float getPitch() const { return bulk.pitch; }
-
246  float getSpeedKn() const { return bulk.speed_kt; }
-
247  float getVSIft() const { return bulk.vsi_ft; }
-
248  float getTerrainFt() const { return bulk.terrainAlt_ft; }
-
249  float getHeightFt() const { return bulk.height_ft; }
-
250  bool isOnGnd() const { return bulk.bits.onGnd; }
-
251  LTFlightPhase getPhase() const { return bulk.bits.phase; }
-
252  std::string getPhaseStr() const;
-
253  // configuration
-
254  float getFlaps() const { return bulk.flaps; }
-
255  float getGear() const { return bulk.gear; }
-
256  float getReversers() const { return bulk.reversers; }
-
257  LTLights getLights() const { return bulk.bits; }
-
258  bool isOnCamera() const { return bulk.bits.camera; }
-
259  // simulation
-
260  float getBearing() const { return bulk.bearing; }
-
261  float getDistNm() const { return bulk.dist_nm; }
-
262  int getMultiIdx() const { return bulk.bits.multiIdx; }
-
263 
-
264  // calculated
-
270  void getLocalCoord (double& x, double& y, double& z) const
-
271  { XPLMWorldToLocal(bulk.lat,bulk.lon,bulk.alt_ft, &x,&y,&z); }
-
272 
-
273 public:
-
276  static LTAPIAircraft* CreateNewObject() { return new LTAPIAircraft(); }
-
277 };
-
278 
-
279 //
-
280 // MapLTAPIAircraft
-
281 //
-
282 
-
284 typedef std::shared_ptr<LTAPIAircraft> SPtrLTAPIAircraft;
-
285 
-
296 typedef std::map<std::string,SPtrLTAPIAircraft> MapLTAPIAircraft;
-
297 
-
302 typedef std::list<SPtrLTAPIAircraft> ListLTAPIAircraft;
-
303 
- -
308 {
-
309 public:
- -
320 
-
324  std::chrono::seconds sPeriodExpsv = std::chrono::seconds(3);
-
325 
-
326 protected:
-
328  const int iBulkAc = 50;
-
330  std::unique_ptr<LTAPIAircraft::LTAPIBulkData[]> vBulkNum;
-
332  std::unique_ptr<LTAPIAircraft::LTAPIBulkInfoTexts[]> vInfoTexts;
-
333 
-
334 protected:
- -
337 
- -
340 
-
342  std::chrono::time_point<std::chrono::steady_clock> lastExpsvFetch;
-
343 
-
344 public:
- -
350  int numBulkAc = 50);
-
351  virtual ~LTAPIConnect();
-
352 
-
354  static bool isLTAvail ();
-
355 
-
367  static int getLTVerNr();
-
368 
-
373  static int getLTVerDate();
-
374 
-
380  static bool doesLTDisplayAc ();
-
381 
-
383  static int getLTNumAc ();
-
384 
-
392  static bool doesLTControlAI ();
-
393 
-
395  static time_t getLTSimTime ();
-
396 
-
398  static std::chrono::system_clock::time_point getLTSimTimePoint ();
-
399 
-
407  const MapLTAPIAircraft& UpdateAcList (ListLTAPIAircraft* plistRemovedAc = nullptr);
-
408 
-
410  const MapLTAPIAircraft& getAcMap () const { return mapAc; }
-
411 
-
415  SPtrLTAPIAircraft getAcByMultIdx (int multiIdx) const;
-
416 
- -
420 
-
421 protected:
-
429  template <class T>
-
430  bool DoBulkFetch (int numAc, LTDataRef& DR, int& outSizeLT,
-
431  std::unique_ptr<T[]> &vBulk);
-
432 
-
433 };
-
434 
-
435 
-
444 
-
445 class LTDataRef {
-
446 protected:
-
447  std::string sDataRef;
-
448  XPLMDataRef dataRef = NULL;
-
449  XPLMDataTypeID dataTypes = xplmType_Unknown;
-
450  bool bValid = true;
-
451 public:
-
452  LTDataRef (std::string _sDataRef);
-
453  inline bool needsInit () const { return bValid && !dataRef; }
-
455  bool isValid ();
-
457  bool FindDataRef ();
-
458 
-
459  // types
-
461  XPLMDataTypeID getDataRefTypes() const { return dataTypes; }
-
463  bool hasInt () const { return dataTypes & xplmType_Int; }
-
465  bool hasFloat () const { return dataTypes & xplmType_Float; }
-
467  static constexpr XPLMDataTypeID usefulTypes =
-
468  xplmType_Int | xplmType_Float | xplmType_Data;
-
469 
-
472  int getInt();
-
475  float getFloat();
-
477  inline bool getBool() { return getInt() != 0; }
-
479  int getData(void* pOut, int inOffset, int inMaxBytes);
-
480 
-
482  void set(int i);
-
484  void set(float f);
-
485 
-
486 protected:
-
487 };
-
488 
-
489 //
-
490 // Sizes for version compatibility comparison
-
491 //
-
492 
-
494 constexpr size_t LTAPIBulkData_v120 = 80;
- -
497 
-
499 constexpr size_t LTAPIBulkInfoTexts_v120 = 264;
-
500 constexpr size_t LTAPIBulkInfoTexts_v122 = 288;
- -
503 
-
504 #endif /* LTAPI_h */
-
-
LTAPIAircraft()
Definition: LTAPI.cpp:117
-
LTAPIBulkData bulk
numerical plane's data
Definition: LTAPI.h:186
-
char cslModel[40]
name of CSL model used for actual rendering of plane
Definition: LTAPI.h:165
-
char wtc[4]
wake turbulence category like H,M,L/M,L
Definition: LTAPI.h:150
-
std::string getDestination() const
destination airport (IATA or ICAO) like "FRA" or "EDDF"
Definition: LTAPI.h:234
-
float bearing
[°] to current camera position
Definition: LTAPI.h:108
-
float flaps
flap position: 0.0 retracted, 1.0 fully extended
Definition: LTAPI.h:104
-
static bool doesLTControlAI()
Does LiveTaffic control AI planes?
Definition: LTAPI.cpp:342
-
static constexpr XPLMDataTypeID usefulTypes
Defines which types to work with to become valid
Definition: LTAPI.h:467
-
float heading
[°] heading
Definition: LTAPI.h:95
-
std::map< std::string, SPtrLTAPIAircraft > MapLTAPIAircraft
Map of all aircrafts stored as smart pointers to LTAPIAircraft objects.
Definition: LTAPI.h:296
-
float pitch
[°] pitch: positive up
Definition: LTAPI.h:98
-
uint64_t keyNum
a/c id, usually transp hex code, or any other unique id (FLARM etc.)
Definition: LTAPI.h:90
-
@ FPH_LIFT_OFF
Lift-off, until "gear-up" height.
Definition: LTAPI.h:69
-
bool taxi
taxi lights
Definition: LTAPI.h:178
-
float lat_f
deprecated: [°] latitude
Definition: LTAPI.h:92
-
double lon
[°] longitude
Definition: LTAPI.h:131
-
static std::chrono::system_clock::time_point getLTSimTimePoint()
What is current simulated time in LiveTraffic (usually 'now' minus buffering period)?
Definition: LTAPI.cpp:368
-
SPtrLTAPIAircraft getAcInCameraView() const
Returns the aircraft being viewed in LiveTraffic's camera view, if any.
Definition: LTAPI.cpp:463
-
unsigned filler1
unused
Definition: LTAPI.h:120
-
std::chrono::time_point< std::chrono::steady_clock > lastExpsvFetch
Last fetching of expensive data.
Definition: LTAPI.h:342
-
float getTrack() const
[°] track over ground
Definition: LTAPI.h:243
-
float getGear() const
gear position: 0.0 retracted, 1.0 fully extended
Definition: LTAPI.h:255
-
bool beacon
beacon light
Definition: LTAPI.h:174
-
void resetUpdated()
Helper in update loop, resets bUpdated flag.
Definition: LTAPI.h:212
-
float terrainAlt_ft
[ft] terrain altitude beneath plane
Definition: LTAPI.h:101
-
LTLights(const LTAPIBulkData::BulkBitsTy b)
Type conversion constructor.
Definition: LTAPI.h:181
-
const int iBulkAc
Number of aircraft to fetch in one bulk operation.
Definition: LTAPI.h:328
-
LTAPIAircraft * fCreateAcObject()
Callback function type passed in to LTAPIConnect()
Definition: LTAPI.h:319
-
bool bValid
does this object have a valid binding to a dataRef already?
Definition: LTAPI.h:450
-
bool isUpdated() const
Helper in update loop to detected removed aircrafts.
Definition: LTAPI.h:210
-
char flightNumber[8]
flight number like "LH1113"
Definition: LTAPI.h:159
-
float getBearing() const
[°] to current camera position
Definition: LTAPI.h:260
-
std::list< SPtrLTAPIAircraft > ListLTAPIAircraft
Simple list of smart pointers to LTAPIAircraft objects.
Definition: LTAPI.h:302
-
@ FPH_INITIAL_CLIMB
Initial climb, until "flaps-up" height.
Definition: LTAPI.h:70
-
char registration[8]
tail number like "D-AISD"
Definition: LTAPI.h:146
-
static int getLTVerDate()
LiveTraffic's version date.
Definition: LTAPI.cpp:313
-
std::string getOpIcao() const
ICAO-code of operator like "DLH".
Definition: LTAPI.h:223
-
MapLTAPIAircraft mapAc
THE map of aircrafts.
Definition: LTAPI.h:339
-
float getHeightFt() const
[ft] height AGL
Definition: LTAPI.h:249
-
double lat
[°] latitude
Definition: LTAPI.h:130
-
@ FPH_TOUCH_DOWN
The one cycle when plane touches down, don't rely on catching it...it's really one cycle only.
Definition: LTAPI.h:78
-
bool nav
navigaton lights
Definition: LTAPI.h:119
-
char modelIcao[8]
ICAO aircraft type like "A321".
Definition: LTAPI.h:148
-
void set(int i)
Writes an integer value to the dataRef.
Definition: LTAPI.cpp:576
-
float getSpeedKn() const
[kt] ground speed
Definition: LTAPI.h:246
-
std::string getOp() const
human-readable operator like "Lufthansa"
Definition: LTAPI.h:227
-
@ FPH_ROLL_OUT
Roll-out after touch-down until reaching taxi speed or stopping.
Definition: LTAPI.h:79
-
constexpr size_t LTAPIBulkInfoTexts_v122
Definition: LTAPI.h:500
-
float roll
[°] roll: positive right
Definition: LTAPI.h:97
-
char man[40]
human-readable manufacturer like "Airbus"
Definition: LTAPI.h:152
-
static bool isLTAvail()
Is LiveTraffic available? (checks via XPLMFindPluginBySignature)
Definition: LTAPI.cpp:292
-
char trackedBy[24]
name of channel deliverying the underlying tracking data
Definition: LTAPI.h:162
-
@ FPH_CRUISE
Cruising, no altitude change.
Definition: LTAPI.h:72
-
double getAltFt() const
[ft] altitude
Definition: LTAPI.h:241
-
std::string getMan() const
human-readable manufacturer like "Airbus"
Definition: LTAPI.h:224
-
bool taxi
taxi lights
Definition: LTAPI.h:115
-
std::string getModelIcao() const
ICAO aircraft type like "A321".
Definition: LTAPI.h:220
-
Structure to return plane's lights status.
Definition: LTAPI.h:173
-
float height_ft
[ft] height AGL
Definition: LTAPI.h:102
-
std::string getRegistration() const
tail number like "D-AISD"
Definition: LTAPI.h:218
-
std::string getFlightNumber() const
flight number like "LH1113"
Definition: LTAPI.h:232
-
Represents a dataRef and covers late binding.
Definition: LTAPI.h:445
-
bool bcn
beacon light
Definition: LTAPI.h:117
-
virtual ~LTAPIConnect()
Definition: LTAPI.cpp:288
-
@ FPH_TAXI
Taxiing.
Definition: LTAPI.h:65
+Go to the documentation of this file.
1
+
29
+
30#ifndef LTAPI_h
+
31#define LTAPI_h
+
32
+
33#include <cstring>
+
34#include <memory>
+
35#include <string>
+
36#include <list>
+
37#include <map>
+
38#include <chrono>
+
39
+
40#include "XPLMDataAccess.h"
+
41#include "XPLMGraphics.h"
+
42
+
43class LTDataRef;
+
44class LTAPIAircraft;
+
45
+
47typedef std::shared_ptr<LTAPIAircraft> SPtrLTAPIAircraft;
+
48
+
+ +
56{
+
57private:
+
60 unsigned keyNum = 0;
+
62 std::string key;
+
63
+
64public:
+
65
+ +
87
+
+ +
93 public:
+
94 // identification
+
95 uint64_t keyNum = 0;
+
96 // position, attitude
+
97 float lat_f = 0.0f;
+
98 float lon_f = 0.0f;
+
99 float alt_ft_f = 0.0f;
+
100 float heading = 0.0f;
+
101 float track = 0.0f;
+
102 float roll = 0.0f;
+
103 float pitch = 0.0f;
+
104 float speed_kt = 0.0f;
+
105 float vsi_ft = 0.0f;
+
106 float terrainAlt_ft = 0.0f;
+
107 float height_ft = 0.0f;
+
108 // configuration
+
109 float flaps = 0.0f;
+
110 float gear = 0.0f;
+
111 float reversers = 0.0f;
+
112 // simulation
+
113 float bearing = 0.0f;
+
114 float dist_nm = 0.0f;
+
115
+
+
116 struct BulkBitsTy {
+ +
118 bool onGnd : 1;
+
119 // Lights:
+
120 bool taxi : 1;
+
121 bool land : 1;
+
122 bool bcn : 1;
+
123 bool strb : 1;
+
124 bool nav : 1;
+
125 bool hidden : 1;
+
126 bool camera : 1;
+
127 // Misc
+
128 int multiIdx : 8;
+
129 // Filler for 8-byte alignment
+
130 unsigned filler2 : 8;
+
131 unsigned filler3 : 32;
+ +
+
133
+
134 // V1.22 additions
+
135 double lat = 0.0f;
+
136 double lon = 0.0f;
+
137 double alt_ft = 0.0f;
+
138
+
139
+
+ +
142 { memset(&bits, 0, sizeof(bits)); }
+
+
143 };
+
+
144
+
+ +
148 public:
+
149 // identification
+
150 uint64_t keyNum;
+
151 char registration[8];
+
152 // aircraft model/operator
+
153 char modelIcao[8];
+
154 char acClass[4];
+
155 char wtc[4];
+
156 char opIcao[8];
+
157 char man[40];
+
158 char model[40];
+
159 char catDescr[40];
+
160 char op[40];
+
161 // flight data
+
162 char callSign[8];
+
163 char squawk[8];
+
164 char flightNumber[8];
+
165 char origin[8];
+
166 char destination[8];
+
167 char trackedBy[24];
+
168
+
169 // V1.22 additions, in V2.40 extended from 24 to 40 chars
+
170 char cslModel[40];
+
171
+
+ +
174 { memset(this, 0, sizeof(*this)); }
+
+
175 };
+
+
176
+
+
178 struct LTLights {
+
179 bool beacon : 1;
+
180 bool strobe : 1;
+
181 bool nav : 1;
+
182 bool landing : 1;
+
183 bool taxi : 1;
+
184
+
+ +
187 beacon(b.bcn), strobe(b.strb), nav(b.nav), landing(b.land), taxi(b.taxi){}
+
+
188 };
+
+
189
+
190protected:
+ + +
193
+
195 bool bUpdated = false;
+
196
+
197public:
+ +
199 virtual ~LTAPIAircraft();
+
200
+
201 // Updates an aircraft. If our key is defined it first verifies that the
+
202 // key matches with the one currently available in the dataRefs.
+
203 // Returns false if not.
+
204 // If our key is not defined it just accepts anything available.
+
205 // Updates all fields, set bUpdated and returns true.
+
209 virtual bool updateAircraft(const LTAPIBulkData& __bulk, size_t __inSize);
+
213 virtual bool updateAircraft(const LTAPIBulkInfoTexts& __info, size_t __inSize);
+
215 bool isUpdated () const { return bUpdated; }
+
217 void resetUpdated () { bUpdated = false; }
+
218
+
+
222 virtual void toggleCamera ([[maybe_unused]] bool bCameraActive,
+
223 [[maybe_unused]] SPtrLTAPIAircraft spPrevAc) {}
+
+
224
+
226 void setCameraAc ();
+
227
+
228 // data access
+
229public:
+
230 std::string getKey() const { return key; }
+
231 // identification
+
+
232 std::string getRegistration() const { return info.registration; }
+
233 // aircraft model/operator
+
+
234 std::string getModelIcao() const { return info.modelIcao; }
+
+
235 std::string getAcClass() const { return info.acClass; }
+
+
236 std::string getWtc() const { return info.wtc; }
+
+
237 std::string getOpIcao() const { return info.opIcao; }
+
+
238 std::string getMan() const { return info.man; }
+
+
239 std::string getModel() const { return info.model; }
+
+
240 std::string getCatDescr() const { return info.catDescr; }
+
+
241 std::string getOp() const { return info.op; }
+
+
242 std::string getCslModel() const { return info.cslModel; }
+
243 // flight data
+
+
244 std::string getCallSign() const { return info.callSign; }
+
+
245 std::string getSquawk() const { return info.squawk; }
+
+
246 std::string getFlightNumber() const { return info.flightNumber; }
+
+
247 std::string getOrigin() const { return info.origin; }
+
+
248 std::string getDestination() const { return info.destination; }
+
+
249 std::string getTrackedBy() const { return info.trackedBy; }
+
250 // combined info
+
+
251 std::string getDescription() const;
+
252 // position, attitude
+
253 double getLat() const { return bulk.lat; }
+
+
254 double getLon() const { return bulk.lon; }
+
+
255 double getAltFt() const { return bulk.alt_ft; }
+
+
256 float getHeading() const { return bulk.heading; }
+
+
257 float getTrack() const { return bulk.track; }
+
+
258 float getRoll() const { return bulk.roll; }
+
+
259 float getPitch() const { return bulk.pitch; }
+
+
260 float getSpeedKn() const { return bulk.speed_kt; }
+
+
261 float getVSIft() const { return bulk.vsi_ft; }
+
+
262 float getTerrainFt() const { return bulk.terrainAlt_ft; }
+
+
263 float getHeightFt() const { return bulk.height_ft; }
+
+
264 bool isOnGnd() const { return bulk.bits.onGnd; }
+
+
265 LTFlightPhase getPhase() const { return bulk.bits.phase; }
+
+
266 std::string getPhaseStr() const;
+
267 bool isVisible() const { return !bulk.bits.hidden; }
+
268 // configuration
+
+
269 float getFlaps() const { return bulk.flaps; }
+
+
270 float getGear() const { return bulk.gear; }
+
+
271 float getReversers() const { return bulk.reversers; }
+
+
272 LTLights getLights() const { return bulk.bits; }
+
+
273 bool isOnCamera() const { return bulk.bits.camera; }
+
274 // simulation
+
+
275 float getBearing() const { return bulk.bearing; }
+
+
276 float getDistNm() const { return bulk.dist_nm; }
+
+
277 int getMultiIdx() const { return bulk.bits.multiIdx; }
+
278
+
279 // calculated
+
+
285 void getLocalCoord (double& x, double& y, double& z) const
+
286 { XPLMWorldToLocal(bulk.lat,bulk.lon,bulk.alt_ft, &x,&y,&z); }
+
+
287
+
288public:
+
291 static LTAPIAircraft* CreateNewObject() { return new LTAPIAircraft(); }
+
292};
+
293
+
294//
+
295// MapLTAPIAircraft
+
296//
+
297
+
308typedef std::map<std::string,SPtrLTAPIAircraft> MapLTAPIAircraft;
+
309
+
314typedef std::list<SPtrLTAPIAircraft> ListLTAPIAircraft;
+
315
+
+ +
320{
+
321public:
+ +
332
+
336 std::chrono::seconds sPeriodExpsv = std::chrono::seconds(3);
+
337
+
338protected:
+
340 const int iBulkAc = 50;
+
342 std::unique_ptr<LTAPIAircraft::LTAPIBulkData[]> vBulkNum;
+
344 std::unique_ptr<LTAPIAircraft::LTAPIBulkInfoTexts[]> vInfoTexts;
+
345
+
346protected:
+ +
349
+ +
352
+
354 std::chrono::time_point<std::chrono::steady_clock> lastExpsvFetch;
+
355
+
356public:
+ +
362 int numBulkAc = 50);
+
363 virtual ~LTAPIConnect();
+
364
+
366 static bool isLTAvail ();
+
367
+
379 static int getLTVerNr();
+
380
+
385 static int getLTVerDate();
+
386
+
392 static bool doesLTDisplayAc ();
+
393
+
395 static int getLTNumAc ();
+
396
+
404 static bool doesLTControlAI ();
+
405
+
407 static time_t getLTSimTime ();
+
408
+
410 static std::chrono::system_clock::time_point getLTSimTimePoint ();
+
411
+
419 const MapLTAPIAircraft& UpdateAcList (ListLTAPIAircraft* plistRemovedAc = nullptr);
+
420
+
422 const MapLTAPIAircraft& getAcMap () const { return mapAc; }
+
423
+
427 SPtrLTAPIAircraft getAcByMultIdx (int multiIdx) const;
+
428
+ +
432
+ +
435
+
436protected:
+
444 template <class T>
+
445 bool DoBulkFetch (int numAc, LTDataRef& DR, int& outSizeLT,
+
446 std::unique_ptr<T[]> &vBulk);
+
447
+ +
450};
+
+
451
+
452
+
461
+
+ +
463protected:
+
464 std::string sDataRef;
+
465 XPLMDataRef dataRef = NULL;
+
466 XPLMDataTypeID dataTypes = xplmType_Unknown;
+
467 bool bValid = true;
+
468public:
+
469 LTDataRef (std::string _sDataRef);
+
470 inline bool needsInit () const { return bValid && !dataRef; }
+
472 bool isValid ();
+
474 bool FindDataRef ();
+
475
+
476 // types
+
478 XPLMDataTypeID getDataRefTypes() const { return dataTypes; }
+
480 bool hasInt () const { return dataTypes & xplmType_Int; }
+
482 bool hasFloat () const { return dataTypes & xplmType_Float; }
+
484 static constexpr XPLMDataTypeID usefulTypes =
+
485 xplmType_Int | xplmType_Float | xplmType_Data;
+
486
+
489 int getInt();
+
492 float getFloat();
+
494 inline bool getBool() { return getInt() != 0; }
+
496 int getData(void* pOut, int inOffset, int inMaxBytes);
+
497
+
499 void set(int i);
+
501 void set(float f);
+
502
+
503protected:
+
504};
+
+
505
+
506//
+
507// Sizes for version compatibility comparison
+
508//
+
509
+
511constexpr size_t LTAPIBulkData_v120 = 80;
+ +
514
+
516constexpr size_t LTAPIBulkInfoTexts_v120 = 264;
+
517constexpr size_t LTAPIBulkInfoTexts_v122 = 288;
+ +
520
+
521#endif /* LTAPI_h */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
std::map< std::string, SPtrLTAPIAircraft > MapLTAPIAircraft
Map of all aircrafts stored as smart pointers to LTAPIAircraft objects.
Definition LTAPI.h:308
+
constexpr size_t LTAPIBulkData_v122
Size of current bulk structure.
Definition LTAPI.h:513
+
std::list< SPtrLTAPIAircraft > ListLTAPIAircraft
Simple list of smart pointers to LTAPIAircraft objects.
Definition LTAPI.h:314
+
constexpr size_t LTAPIBulkInfoTexts_v120
Size of original bulk info structure as per previous versions of LiveTraffic.
Definition LTAPI.h:516
+
constexpr size_t LTAPIBulkData_v120
Size of original bulk structure as per LiveTraffic v1.20.
Definition LTAPI.h:511
+
std::shared_ptr< LTAPIAircraft > SPtrLTAPIAircraft
Smart pointer to an LTAPIAircraft object.
Definition LTAPI.h:47
+
constexpr size_t LTAPIBulkInfoTexts_v240
Size of current bulk info structure.
Definition LTAPI.h:519
+
constexpr size_t LTAPIBulkInfoTexts_v122
Definition LTAPI.h:517
+
Represents one aircraft as controlled by LiveTraffic.
Definition LTAPI.h:56
+
std::string getKey() const
Unique key for this aircraft, usually ICAO transponder hex code.
Definition LTAPI.h:230
+
float getPitch() const
[°] pitch: positive up
Definition LTAPI.h:259
+
float getFlaps() const
flap position: 0.0 retracted, 1.0 fully extended
Definition LTAPI.h:269
+
bool isOnGnd() const
Is plane on ground?
Definition LTAPI.h:264
+
LTFlightPhase getPhase() const
flight phase
Definition LTAPI.h:265
+
std::string getPhaseStr() const
flight phase as string
+
std::string getDestination() const
destination airport (IATA or ICAO) like "FRA" or "EDDF"
Definition LTAPI.h:248
+
void resetUpdated()
Helper in update loop, resets bUpdated flag.
Definition LTAPI.h:217
+
std::string getOpIcao() const
ICAO-code of operator like "DLH".
Definition LTAPI.h:237
+
float getTrack() const
[°] track over ground
Definition LTAPI.h:257
+
LTAPIBulkInfoTexts info
textual plane's data
Definition LTAPI.h:192
+
void getLocalCoord(double &x, double &y, double &z) const
lat/lon/alt converted to local coordinates
Definition LTAPI.h:285
+
LTLights getLights() const
all plane's lights
Definition LTAPI.h:272
+
void setCameraAc()
Declare the aircraft the one under the camera (e.g. if your plugin is a camera plugin and now views t...
+
std::string getOrigin() const
origin airport (IATA or ICAO) like "MAD" or "LEMD"
Definition LTAPI.h:247
+
std::string getMan() const
human-readable manufacturer like "Airbus"
Definition LTAPI.h:238
+
double getLon() const
[°] longitude
Definition LTAPI.h:254
+
float getTerrainFt() const
[ft] terrain altitude beneath plane
Definition LTAPI.h:262
+
bool isVisible() const
aircraft visible?
Definition LTAPI.h:267
+
std::string getTrackedBy() const
name of channel deliverying the underlying tracking data
Definition LTAPI.h:249
+
std::string getModel() const
human-readable a/c model like "A321-231"
Definition LTAPI.h:239
+
virtual void toggleCamera(bool bCameraActive, SPtrLTAPIAircraft spPrevAc)
Called when LiveTraffic toggles its aircraft camera, override in your class to handle event.
Definition LTAPI.h:222
+
std::string getFlightNumber() const
flight number like "LH1113"
Definition LTAPI.h:246
+
virtual bool updateAircraft(const LTAPIBulkData &__bulk, size_t __inSize)
Updates the aircraft with fresh numerical values, called from LTAPIConnect::UpdateAcList()
+
std::string getSquawk() const
squawk code (as text) like "1000"
Definition LTAPI.h:245
+
float getReversers() const
reversers position: 0.0 closed, 1.0 fully opened
Definition LTAPI.h:271
+
LTFlightPhase
Flight phase, definition copied from LiveTraffic.
Definition LTAPI.h:67
+
@ FPH_TAXI
Taxiing.
Definition LTAPI.h:70
+
@ FPH_LIFT_OFF
Lift-off, until "gear-up" height.
Definition LTAPI.h:74
+
@ FPH_STOPPED_ON_RWY
Stopped on runway because ran out of tracking data, plane will disappear soon.
Definition LTAPI.h:85
+
@ FPH_DESCEND
Descend, more then 100ft/min descend.
Definition LTAPI.h:78
+
@ FPH_FLARE
Flare, when reaching "flare " height.
Definition LTAPI.h:82
+
@ FPH_TOUCH_DOWN
The one cycle when plane touches down, don't rely on catching it...it's really one cycle only.
Definition LTAPI.h:83
+
@ FPH_ROTATE
Rotating.
Definition LTAPI.h:73
+
@ FPH_FINAL
Final, below "gear-down" height.
Definition LTAPI.h:80
+
@ FPH_CRUISE
Cruising, no altitude change.
Definition LTAPI.h:77
+
@ FPH_UNKNOWN
used for initializations
Definition LTAPI.h:68
+
@ FPH_ROLL_OUT
Roll-out after touch-down until reaching taxi speed or stopping.
Definition LTAPI.h:84
+
@ FPH_APPROACH
Approach, below "flaps-down" height.
Definition LTAPI.h:79
+
@ FPH_INITIAL_CLIMB
Initial climb, until "flaps-up" height.
Definition LTAPI.h:75
+
@ FPH_TAKE_OFF
Group of status for take-off:
Definition LTAPI.h:71
+
@ FPH_CLIMB
Regular climbout.
Definition LTAPI.h:76
+
@ FPH_PARKED
Parked at startup position.
Definition LTAPI.h:69
+
@ FPH_TO_ROLL
Take-off roll.
Definition LTAPI.h:72
+
@ FPH_LANDING
Group of status for landing:
Definition LTAPI.h:81
+
float getHeightFt() const
[ft] height AGL
Definition LTAPI.h:263
+
std::string getModelIcao() const
ICAO aircraft type like "A321".
Definition LTAPI.h:234
+
float getGear() const
gear position: 0.0 retracted, 1.0 fully extended
Definition LTAPI.h:270
+
bool isUpdated() const
Helper in update loop to detected removed aircrafts.
Definition LTAPI.h:215
+
std::string getCslModel() const
name of CSL model used for actual rendering of plane
Definition LTAPI.h:242
+
std::string getCatDescr() const
human-readable category description
Definition LTAPI.h:240
+
virtual ~LTAPIAircraft()
+
int getMultiIdx() const
multiplayer index if plane reported via sim/multiplayer/position dataRefs, 0 if not
Definition LTAPI.h:277
+
std::string getAcClass() const
a/c class like "L2J"
Definition LTAPI.h:235
+
std::string getDescription() const
some reasonable descriptive string formed from the above, like an identifier, type,...
+
virtual bool updateAircraft(const LTAPIBulkInfoTexts &__info, size_t __inSize)
Updates the aircraft with fresh textual information, called from LTAPIConnect::UpdateAcList()
+
LTAPIBulkData bulk
numerical plane's data
Definition LTAPI.h:191
+
double getLat() const
[°] latitude
Definition LTAPI.h:253
+
bool bUpdated
update helper, gets reset before updates, set during updates, stays false if not updated
Definition LTAPI.h:195
+ +
static LTAPIAircraft * CreateNewObject()
Standard object creation callback.
Definition LTAPI.h:291
+
std::string getCallSign() const
call sign like "DLH56C"
Definition LTAPI.h:244
+
std::string getRegistration() const
tail number like "D-AISD"
Definition LTAPI.h:232
+
float getVSIft() const
[ft/minute] vertical speed, positive up
Definition LTAPI.h:261
+
float getBearing() const
[°] to current camera position
Definition LTAPI.h:275
+
float getDistNm() const
[nm] distance to current camera
Definition LTAPI.h:276
+
float getRoll() const
[°] roll: positive right
Definition LTAPI.h:258
+
std::string getWtc() const
wake turbulence category like H,M,L/M,L
Definition LTAPI.h:236
+
double getAltFt() const
[ft] altitude
Definition LTAPI.h:255
+
bool isOnCamera() const
is currently seen on LiveTraffic's internal camera view?
Definition LTAPI.h:273
+
float getSpeedKn() const
[kt] ground speed
Definition LTAPI.h:260
+
std::string getOp() const
human-readable operator like "Lufthansa"
Definition LTAPI.h:241
+
float getHeading() const
[°] heading
Definition LTAPI.h:256
+
Connects to LiveTraffic's dataRefs and returns aircraft information.
Definition LTAPI.h:320
+
fCreateAcObject * pfCreateAcObject
Pointer to callback function returning new aircraft objects.
Definition LTAPI.h:348
+
const MapLTAPIAircraft & getAcMap() const
Returns the map of aircraft as it currently stands.
Definition LTAPI.h:422
+
static int getLTNumAc()
How many aircraft does LiveTraffic display right now?
+
bool DoBulkFetch(int numAc, LTDataRef &DR, int &outSizeLT, std::unique_ptr< T[]> &vBulk)
fetch bulk data and create/update aircraft objects
+
std::unique_ptr< LTAPIAircraft::LTAPIBulkInfoTexts[]> vInfoTexts
bulk info text array for communication with LT
Definition LTAPI.h:344
+
std::chrono::seconds sPeriodExpsv
Definition LTAPI.h:336
+
MapLTAPIAircraft mapAc
THE map of aircrafts.
Definition LTAPI.h:351
+
static int getLTVerDate()
LiveTraffic's version date.
+
SPtrLTAPIAircraft getAcInCameraView() const
Returns the aircraft being viewed in LiveTraffic's camera view, if any.
+
static void CameraSharedDataCB(LTAPIConnect *me)
shared DataRef event notification
+
std::unique_ptr< LTAPIAircraft::LTAPIBulkData[]> vBulkNum
bulk data array for communication with LT
Definition LTAPI.h:342
+
LTAPIAircraft * fCreateAcObject()
Callback function type passed in to LTAPIConnect()
Definition LTAPI.h:331
+
static bool doesLTControlAI()
Does LiveTaffic control AI planes?
+
static bool doesLTDisplayAc()
Does LiveTraffic display aircrafts? (Is it activated?)
+
virtual ~LTAPIConnect()
+
static std::chrono::system_clock::time_point getLTSimTimePoint()
What is current simulated time in LiveTraffic (usually 'now' minus buffering period)?
+
static int getLTVerNr()
LiveTraffic's version number.
+
static time_t getLTSimTime()
What is current simulated time in LiveTraffic (usually 'now' minus buffering period)?
+
static bool isLTAvail()
Is LiveTraffic available? (checks via XPLMFindPluginBySignature)
+
LTAPIConnect(fCreateAcObject *_pfCreateAcObject=LTAPIAircraft::CreateNewObject, int numBulkAc=50)
Constructor.
+
const int iBulkAc
Number of aircraft to fetch in one bulk operation.
Definition LTAPI.h:340
+
SPtrLTAPIAircraft getAcByMultIdx(int multiIdx) const
Finds an aircraft for a given multiplayer slot.
+
void clearCameraInfo()
Clear camera information, ie. delcare that no aircraft is currently being viewed.
+
std::chrono::time_point< std::chrono::steady_clock > lastExpsvFetch
Last fetching of expensive data.
Definition LTAPI.h:354
+
const MapLTAPIAircraft & UpdateAcList(ListLTAPIAircraft *plistRemovedAc=nullptr)
Main function: updates map of aircrafts and returns reference to it.
+
Represents a dataRef and covers late binding.
Definition LTAPI.h:462
+
XPLMDataTypeID dataTypes
supported data types
Definition LTAPI.h:466
+
int getData(void *pOut, int inOffset, int inMaxBytes)
Gets dataRef's binary data.
+
bool hasFloat() const
Is float a supported dataRef type?
Definition LTAPI.h:482
+
static constexpr XPLMDataTypeID usefulTypes
Defines which types to work with to become valid
Definition LTAPI.h:484
+
void set(float f)
Writes a float vlue to the dataRef.
+
LTDataRef(std::string _sDataRef)
Constructor, set the dataRef's name.
+
bool hasInt() const
Is int a supported dataRef type?
Definition LTAPI.h:480
+
bool FindDataRef()
Finds the dataRef (and would try again and again, no matter what bValid says)
+
XPLMDataRef dataRef
dataRef identifier returned by X-Plane
Definition LTAPI.h:465
+
bool bValid
does this object have a valid binding to a dataRef already?
Definition LTAPI.h:467
+
XPLMDataTypeID getDataRefTypes() const
Get types supported by the dataRef.
Definition LTAPI.h:478
+
void set(int i)
Writes an integer value to the dataRef.
+
bool needsInit() const
Definition LTAPI.h:470
+
int getInt()
Get dataRef's integer value. Silently returns 0 if dataRef doesn't exist.
+
std::string sDataRef
dataRef name, passed in via constructor
Definition LTAPI.h:464
+
bool isValid()
Found the dataRef and it contains formats we can work with?
+
bool getBool()
Gets dataRef's integer value and returns if it is not zero.
Definition LTAPI.h:494
+
float getFloat()
Get dataRef's float value. Silently returns 0.0f if dataRef doesn't exist.
+
Bulk data transfer structur for communication with LTAPI.
Definition LTAPI.h:92
+
LTFlightPhase phase
flight phase, see LTAircraft::FlightPhase
Definition LTAPI.h:117
+
float alt_ft_f
deprecated: [ft] altitude
Definition LTAPI.h:99
+
float track
[°] track over ground
Definition LTAPI.h:101
+
float gear
gear position: 0.0 retracted, 1.0 fully extended
Definition LTAPI.h:110
+
float terrainAlt_ft
[ft] terrain altitude beneath plane
Definition LTAPI.h:106
+
float pitch
[°] pitch: positive up
Definition LTAPI.h:103
+
float lat_f
deprecated: [°] latitude
Definition LTAPI.h:97
+
double lat
[°] latitude
Definition LTAPI.h:135
+
float reversers
reversers position: 0.0 closed, 1.0 fully opened
Definition LTAPI.h:111
+
unsigned filler2
Definition LTAPI.h:130
+
float height_ft
[ft] height AGL
Definition LTAPI.h:107
+
uint64_t keyNum
a/c id, usually transp hex code, or any other unique id (FLARM etc.)
Definition LTAPI.h:95
+
float speed_kt
[kt] ground speed
Definition LTAPI.h:104
+
float flaps
flap position: 0.0 retracted, 1.0 fully extended
Definition LTAPI.h:109
+
LTAPIBulkData()
Constructor initializes some data without defaults.
Definition LTAPI.h:141
+
float heading
[°] heading
Definition LTAPI.h:100
+
bool camera
is LiveTraffic's camera on this aircraft?
Definition LTAPI.h:126
+
bool hidden
aircraft not visible?
Definition LTAPI.h:125
+
bool strb
strobe light
Definition LTAPI.h:123
+
float vsi_ft
[ft/minute] vertical speed, positive up
Definition LTAPI.h:105
+
double alt_ft
[ft] altitude
Definition LTAPI.h:137
+
float lon_f
deprecated: [°] longitude
Definition LTAPI.h:98
+
bool taxi
taxi lights
Definition LTAPI.h:120
struct LTAPIAircraft::LTAPIBulkData::BulkBitsTy bits
Flights phase, on-ground status, lights.
-
static LTAPIAircraft * CreateNewObject()
Standard object creation callback.
Definition: LTAPI.h:276
-
std::string getSquawk() const
squawk code (as text) like "1000"
Definition: LTAPI.h:231
-
bool strb
strobe light
Definition: LTAPI.h:118
-
float alt_ft_f
deprecated: [ft] altitude
Definition: LTAPI.h:94
-
unsigned filler2
Definition: LTAPI.h:125
-
bool bUpdated
update helper, gets reset before updates, set during updates, stays false if not updated
Definition: LTAPI.h:190
-
float reversers
reversers position: 0.0 closed, 1.0 fully opened
Definition: LTAPI.h:106
-
XPLMDataTypeID getDataRefTypes() const
Get types supported by the dataRef.
Definition: LTAPI.h:461
-
int getData(void *pOut, int inOffset, int inMaxBytes)
Gets dataRef's binary data.
Definition: LTAPI.cpp:570
-
@ FPH_CLIMB
Regular climbout.
Definition: LTAPI.h:71
-
bool camera
is LiveTraffic's camera on this aircraft?
Definition: LTAPI.h:121
-
bool nav
navigaton lights
Definition: LTAPI.h:176
-
char model[40]
human-readable a/c model like "A321-231"
Definition: LTAPI.h:153
-
std::string getPhaseStr() const
flight phase as string
Definition: LTAPI.cpp:250
-
std::unique_ptr< LTAPIAircraft::LTAPIBulkInfoTexts[]> vInfoTexts
bulk info text array for communication with LT
Definition: LTAPI.h:332
-
static bool doesLTDisplayAc()
Does LiveTraffic display aircrafts? (Is it activated?)
Definition: LTAPI.cpp:326
- -
bool land
landing lights
Definition: LTAPI.h:116
-
@ FPH_UNKNOWN
used for initializations
Definition: LTAPI.h:64
-
std::string getWtc() const
wake turbulence category like H,M,L/M,L
Definition: LTAPI.h:222
-
XPLMDataRef dataRef
dataRef identifier returned by X-Plane
Definition: LTAPI.h:448
-
std::string getAcClass() const
a/c class like "L2J"
Definition: LTAPI.h:221
-
char opIcao[8]
ICAO-code of operator like "DLH".
Definition: LTAPI.h:151
-
std::string getCallSign() const
call sign like "DLH56C"
Definition: LTAPI.h:230
-
std::string getTrackedBy() const
name of channel deliverying the underlying tracking data
Definition: LTAPI.h:235
-
XPLMDataTypeID dataTypes
supported data types
Definition: LTAPI.h:449
-
int getInt()
Get dataRef's integer value. Silently returns 0 if dataRef doesn't exist.
Definition: LTAPI.cpp:558
-
fCreateAcObject * pfCreateAcObject
Pointer to callback function returning new aircraft objects.
Definition: LTAPI.h:336
-
bool strobe
strobe light
Definition: LTAPI.h:175
-
bool DoBulkFetch(int numAc, LTDataRef &DR, int &outSizeLT, std::unique_ptr< T[]> &vBulk)
fetch bulk data and create/update aircraft objects
Definition: LTAPI.cpp:478
-
float getTerrainFt() const
[ft] terrain altitude beneath plane
Definition: LTAPI.h:248
-
std::chrono::seconds sPeriodExpsv
Definition: LTAPI.h:324
-
constexpr size_t LTAPIBulkData_v120
Size of original bulk structure as per LiveTraffic v1.20.
Definition: LTAPI.h:494
-
LTFlightPhase
Flight phase, definition copied from LiveTraffic.
Definition: LTAPI.h:63
-
static int getLTNumAc()
How many aircraft does LiveTraffic display right now?
Definition: LTAPI.cpp:336
-
LTDataRef(std::string _sDataRef)
Constructor, set the dataRef's name.
Definition: LTAPI.cpp:537
-
const MapLTAPIAircraft & getAcMap() const
Returns the map of aircraft as it currently stands.
Definition: LTAPI.h:410
-
std::string getCatDescr() const
human-readable category description
Definition: LTAPI.h:226
-
std::unique_ptr< LTAPIAircraft::LTAPIBulkData[]> vBulkNum
bulk data array for communication with LT
Definition: LTAPI.h:330
-
bool needsInit() const
Definition: LTAPI.h:453
-
Bulk text transfer structur for communication with LTAPI.
Definition: LTAPI.h:142
-
char callSign[8]
call sign like "DLH56C"
Definition: LTAPI.h:157
-
@ FPH_DESCEND
Descend, more then 100ft/min descend.
Definition: LTAPI.h:73
-
Represents one aircraft as controlled by LiveTraffic.
Definition: LTAPI.h:52
-
LTAPIBulkInfoTexts()
Constructor initializes all data with zeroes.
Definition: LTAPI.h:168
-
uint64_t keyNum
a/c id, usually transp hex code, or any other unique id (FLARM etc.)
Definition: LTAPI.h:145
-
SPtrLTAPIAircraft getAcByMultIdx(int multiIdx) const
Finds an aircraft for a given multiplayer slot.
Definition: LTAPI.cpp:445
-
double getLon() const
[°] longitude
Definition: LTAPI.h:240
-
bool hasInt() const
Is int a supported dataRef type?
Definition: LTAPI.h:463
-
unsigned filler3
Definition: LTAPI.h:126
-
@ FPH_TAKE_OFF
Group of status for take-off:
Definition: LTAPI.h:66
-
constexpr size_t LTAPIBulkData_v122
Size of current bulk structure.
Definition: LTAPI.h:496
-
int getMultiIdx() const
multiplayer index if plane reported via sim/multiplayer/position dataRefs, 0 if not
Definition: LTAPI.h:262
-
float vsi_ft
[ft/minute] vertical speed, positive up
Definition: LTAPI.h:100
-
constexpr size_t LTAPIBulkInfoTexts_v240
Size of current bulk info structure.
Definition: LTAPI.h:502
-
char acClass[4]
a/c class like "L2J"
Definition: LTAPI.h:149
-
std::shared_ptr< LTAPIAircraft > SPtrLTAPIAircraft
Smart pointer to an TLAPIAircraft object.
Definition: LTAPI.h:284
-
@ FPH_FLARE
Flare, when reaching "flare " height.
Definition: LTAPI.h:77
-
bool hasFloat() const
Is float a supported dataRef type?
Definition: LTAPI.h:465
-
LTAPIConnect(fCreateAcObject *_pfCreateAcObject=LTAPIAircraft::CreateNewObject, int numBulkAc=50)
Constructor.
Definition: LTAPI.cpp:279
-
@ FPH_STOPPED_ON_RWY
Stopped on runway because ran out of tracking data, plane will disappear soon.
Definition: LTAPI.h:80
-
bool FindDataRef()
Finds the dataRef (and would try again and again, no matter what bValid says)
Definition: LTAPI.cpp:550
-
virtual bool updateAircraft(const LTAPIBulkData &__bulk, size_t __inSize)
Updates the aircraft with fresh numerical values, called from LTAPIConnect::UpdateAcList()
Definition: LTAPI.cpp:168
-
std::string getCslModel() const
name of CSL model used for actual rendering of plane
Definition: LTAPI.h:228
-
bool landing
landing lights
Definition: LTAPI.h:177
-
char squawk[8]
squawk code (as text) like "1000"
Definition: LTAPI.h:158
-
@ FPH_ROTATE
Rotating.
Definition: LTAPI.h:68
-
LTAPIBulkData()
Constructor initializes some data without defaults.
Definition: LTAPI.h:136
-
double getLat() const
[°] latitude
Definition: LTAPI.h:239
-
LTFlightPhase phase
flight phase, see LTAircraft::FlightPhase
Definition: LTAPI.h:112
-
@ FPH_FINAL
Final, below "gear-down" height.
Definition: LTAPI.h:75
-
const MapLTAPIAircraft & UpdateAcList(ListLTAPIAircraft *plistRemovedAc=nullptr)
Main function: updates map of aircrafts and returns reference to it.
Definition: LTAPI.cpp:374
-
bool isValid()
Found the dataRef and it contains formats we can work with?
Definition: LTAPI.cpp:543
-
char op[40]
human-readable operator like "Lufthansa"
Definition: LTAPI.h:155
-
constexpr size_t LTAPIBulkInfoTexts_v120
Size of original bulk info structure as per previous versions of LiveTraffic.
Definition: LTAPI.h:499
-
char destination[8]
destination airport (IATA or ICAO) like "FRA" or "EDDF"
Definition: LTAPI.h:161
-
static time_t getLTSimTime()
What is current simulated time in LiveTraffic (usually 'now' minus buffering period)?
Definition: LTAPI.cpp:348
-
float speed_kt
[kt] ground speed
Definition: LTAPI.h:99
-
LTAPIBulkInfoTexts info
textual plane's data
Definition: LTAPI.h:187
-
float getFloat()
Get dataRef's float value. Silently returns 0.0f if dataRef doesn't exist.
Definition: LTAPI.cpp:564
-
float getFlaps() const
flap position: 0.0 retracted, 1.0 fully extended
Definition: LTAPI.h:254
-
@ FPH_LANDING
Group of status for landing:
Definition: LTAPI.h:76
-
float getPitch() const
[°] pitch: positive up
Definition: LTAPI.h:245
-
float getVSIft() const
[ft/minute] vertical speed, positive up
Definition: LTAPI.h:247
-
bool isOnGnd() const
Is plane on ground?
Definition: LTAPI.h:250
-
float getReversers() const
reversers position: 0.0 closed, 1.0 fully opened
Definition: LTAPI.h:256
-
float gear
gear position: 0.0 retracted, 1.0 fully extended
Definition: LTAPI.h:105
-
char origin[8]
origin airport (IATA or ICAO) like "MAD" or "LEMD"
Definition: LTAPI.h:160
-
bool onGnd
Is plane on ground?
Definition: LTAPI.h:113
-
void getLocalCoord(double &x, double &y, double &z) const
lat/lon/alt converted to local coordinates
Definition: LTAPI.h:270
-
std::string sDataRef
dataRef name, passed in via constructor
Definition: LTAPI.h:447
-
double alt_ft
[ft] altitude
Definition: LTAPI.h:132
-
std::string getModel() const
human-readable a/c model like "A321-231"
Definition: LTAPI.h:225
-
LTLights getLights() const
all plane's lights
Definition: LTAPI.h:257
-
int multiIdx
multiplayer index if plane reported via sim/multiplayer/position dataRefs, 0 if not
Definition: LTAPI.h:123
-
Bulk data transfer structur for communication with LTAPI.
Definition: LTAPI.h:87
-
bool isOnCamera() const
is currently seen on LiveTraffic's internal camera view?
Definition: LTAPI.h:258
-
static int getLTVerNr()
LiveTraffic's version number.
Definition: LTAPI.cpp:298
-
virtual ~LTAPIAircraft()
Definition: LTAPI.cpp:120
-
std::string getOrigin() const
origin airport (IATA or ICAO) like "MAD" or "LEMD"
Definition: LTAPI.h:233
-
bool getBool()
Gets dataRef's integer value and returns if it is not zero.
Definition: LTAPI.h:477
-
@ FPH_APPROACH
Approach, below "flaps-down" height.
Definition: LTAPI.h:74
-
float track
[°] track over ground
Definition: LTAPI.h:96
-
std::string getKey() const
Unique key for this aircraft, usually ICAO transponder hex code.
Definition: LTAPI.h:216
-
char catDescr[40]
human-readable category description
Definition: LTAPI.h:154
-
Connects to LiveTraffic's dataRefs and returns aircraft information.
Definition: LTAPI.h:308
-
float getDistNm() const
[nm] distance to current camera
Definition: LTAPI.h:261
-
float getRoll() const
[°] roll: positive right
Definition: LTAPI.h:244
-
@ FPH_TO_ROLL
Take-off roll.
Definition: LTAPI.h:67
-
float lon_f
deprecated: [°] longitude
Definition: LTAPI.h:93
-
float getHeading() const
[°] heading
Definition: LTAPI.h:242
-
float dist_nm
[nm] distance to current camera
Definition: LTAPI.h:109
-
std::string getDescription() const
some reasonable descriptive string formed from the above, like an identifier, type,...
Definition: LTAPI.cpp:128
-
LTFlightPhase getPhase() const
flight phase
Definition: LTAPI.h:251
+
bool land
landing lights
Definition LTAPI.h:121
+
bool nav
navigaton lights
Definition LTAPI.h:124
+
int multiIdx
multiplayer index if plane reported via sim/multiplayer/position dataRefs, 0 if not
Definition LTAPI.h:128
+
float bearing
[°] to current camera position
Definition LTAPI.h:113
+
float dist_nm
[nm] distance to current camera
Definition LTAPI.h:114
+
unsigned filler3
Definition LTAPI.h:131
+
float roll
[°] roll: positive right
Definition LTAPI.h:102
+
bool bcn
beacon light
Definition LTAPI.h:122
+
bool onGnd
Is plane on ground?
Definition LTAPI.h:118
+
double lon
[°] longitude
Definition LTAPI.h:136
+ +
Bulk text transfer structur for communication with LTAPI.
Definition LTAPI.h:147
+
char wtc[4]
wake turbulence category like H,M,L/M,L
Definition LTAPI.h:155
+
char catDescr[40]
human-readable category description
Definition LTAPI.h:159
+
char callSign[8]
call sign like "DLH56C"
Definition LTAPI.h:162
+
char squawk[8]
squawk code (as text) like "1000"
Definition LTAPI.h:163
+
LTAPIBulkInfoTexts()
Constructor initializes all data with zeroes.
Definition LTAPI.h:173
+
uint64_t keyNum
a/c id, usually transp hex code, or any other unique id (FLARM etc.)
Definition LTAPI.h:150
+
char opIcao[8]
ICAO-code of operator like "DLH".
Definition LTAPI.h:156
+
char op[40]
human-readable operator like "Lufthansa"
Definition LTAPI.h:160
+
char modelIcao[8]
ICAO aircraft type like "A321".
Definition LTAPI.h:153
+
char flightNumber[8]
flight number like "LH1113"
Definition LTAPI.h:164
+
char origin[8]
origin airport (IATA or ICAO) like "MAD" or "LEMD"
Definition LTAPI.h:165
+
char registration[8]
tail number like "D-AISD"
Definition LTAPI.h:151
+
char cslModel[40]
name of CSL model used for actual rendering of plane
Definition LTAPI.h:170
+
char man[40]
human-readable manufacturer like "Airbus"
Definition LTAPI.h:157
+
char trackedBy[24]
name of channel deliverying the underlying tracking data
Definition LTAPI.h:167
+
char destination[8]
destination airport (IATA or ICAO) like "FRA" or "EDDF"
Definition LTAPI.h:166
+
char acClass[4]
a/c class like "L2J"
Definition LTAPI.h:154
+
char model[40]
human-readable a/c model like "A321-231"
Definition LTAPI.h:158
+
Structure to return plane's lights status.
Definition LTAPI.h:178
+
bool nav
navigaton lights
Definition LTAPI.h:181
+
LTLights(const LTAPIBulkData::BulkBitsTy b)
Type conversion constructor.
Definition LTAPI.h:186
+
bool strobe
strobe light
Definition LTAPI.h:180
+
bool beacon
beacon light
Definition LTAPI.h:179
+
bool landing
landing lights
Definition LTAPI.h:182
+
bool taxi
taxi lights
Definition LTAPI.h:183
+
+

diff --git a/docs/html/MainPage_8dox.html b/docs/html/MainPage_8dox.html index 4a77db5..e65aedc 100644 --- a/docs/html/MainPage_8dox.html +++ b/docs/html/MainPage_8dox.html @@ -1,14 +1,17 @@ - + - - + + -LTAPI: MainPage.dox File Reference +LTAPI: docs/MainPage.dox File Reference + + + @@ -16,8 +19,8 @@
- - +
+
LTAPI
API to access LiveTraffic's aircraft information
@@ -27,28 +30,38 @@
- + + +/* @license-end */ + +
+
-
-
MainPage.dox File Reference
+
docs/MainPage.dox File Reference
+
diff --git a/docs/html/README_8md.html b/docs/html/README_8md.html new file mode 100644 index 0000000..cc60f00 --- /dev/null +++ b/docs/html/README_8md.html @@ -0,0 +1,67 @@ + + + + + + + +LTAPI: README.md File Reference + + + + + + + + + +
+
+ + + + + + +
+
LTAPI +
+
API to access LiveTraffic's aircraft information
+
+
+ + + + + + + + +
+
+
+
README.md File Reference
+
+
+
+ + +
+ + diff --git a/docs/html/annotated.html b/docs/html/annotated.html index 59a73a0..42b0a14 100644 --- a/docs/html/annotated.html +++ b/docs/html/annotated.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: Class List + + + @@ -16,8 +19,8 @@
- - +
+
LTAPI
API to access LiveTraffic's aircraft information
@@ -27,39 +30,49 @@
- + + +/* @license-end */ +

+
+
-
-
Class List
+
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
-
[detail level 123]
- - +
[detail level 123]
 CLTAPIAircraftRepresents one aircraft as controlled by LiveTraffic
 CLTAPIBulkDataBulk data transfer structur for communication with LTAPI
+ + - + - +
 CLTAPIAircraftRepresents one aircraft as controlled by LiveTraffic
 CLTAPIBulkDataBulk data transfer structur for communication with LTAPI
 CBulkBitsTy
 CLTAPIBulkInfoTextsBulk text transfer structur for communication with LTAPI
 CLTAPIBulkInfoTextsBulk text transfer structur for communication with LTAPI
 CLTLightsStructure to return plane's lights status
 CLTAPIConnectConnects to LiveTraffic's dataRefs and returns aircraft information
 CLTAPIConnectConnects to LiveTraffic's dataRefs and returns aircraft information
 CLTDataRefRepresents a dataRef and covers late binding
+
diff --git a/docs/html/bc_sd.png b/docs/html/bc_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..31ca888dc71049713b35c351933a8d0f36180bf1 GIT binary patch literal 635 zcmV->0)+jEP)Jwi0r1~gdSq#w{Bu1q z`craw(p2!hu$4C_$Oc3X(sI6e=9QSTwPt{G) z=htT&^~&c~L2~e{r5_5SYe7#Is-$ln>~Kd%$F#tC65?{LvQ}8O`A~RBB0N~`2M+waajO;5>3B&-viHGJeEK2TQOiPRa zfDKyqwMc4wfaEh4jt>H`nW_Zidwk@Bowp`}(VUaj-pSI(-1L>FJVsX}Yl9~JsqgsZ zUD9(rMwf23Gez6KPa|wwInZodP-2}9@fK0Ga_9{8SOjU&4l`pH4@qlQp83>>HT$xW zER^U>)MyV%t(Lu=`d=Y?{k1@}&r7ZGkFQ%z%N+sE9BtYjovzxyxCPxN6&@wLK{soQ zSmkj$aLI}miuE^p@~4}mg9OjDfGEkgY4~^XzLRUBB*O{+&vq<3v(E%+k_i%=`~j%{ Vj14gnt9}3g002ovPDHLkV1n!oC4m3{ literal 0 HcmV?d00001 diff --git a/docs/html/bdwn.png b/docs/html/bdwn.png deleted file mode 100644 index 940a0b950443a0bb1b216ac03c45b8a16c955452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T - + - - + + LTAPI: Member List + + + @@ -16,8 +19,8 @@
- - +
+
LTAPI
API to access LiveTraffic's aircraft information
@@ -27,100 +30,114 @@
- + + +/* @license-end */ + +
+
-
-
LTAPIAircraft Member List
+
LTAPIAircraft Member List

This is the complete list of members for LTAPIAircraft, including all inherited members.

- - - + + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + +
bulkLTAPIAircraftprotected
bUpdatedLTAPIAircraftprotected
CreateNewObject()LTAPIAircraftinlinestatic
FPH_APPROACH enum valueLTAPIAircraft
bUpdatedLTAPIAircraftprotected
CreateNewObject()LTAPIAircraftinlinestatic
FPH_APPROACH enum valueLTAPIAircraft
FPH_CLIMB enum valueLTAPIAircraft
FPH_CRUISE enum valueLTAPIAircraft
FPH_CRUISE enum valueLTAPIAircraft
FPH_DESCEND enum valueLTAPIAircraft
FPH_FINAL enum valueLTAPIAircraft
FPH_FINAL enum valueLTAPIAircraft
FPH_FLARE enum valueLTAPIAircraft
FPH_INITIAL_CLIMB enum valueLTAPIAircraft
FPH_INITIAL_CLIMB enum valueLTAPIAircraft
FPH_LANDING enum valueLTAPIAircraft
FPH_LIFT_OFF enum valueLTAPIAircraft
FPH_ROLL_OUT enum valueLTAPIAircraft
FPH_ROTATE enum valueLTAPIAircraft
FPH_STOPPED_ON_RWY enum valueLTAPIAircraft
FPH_TAKE_OFF enum valueLTAPIAircraft
FPH_TAXI enum valueLTAPIAircraft
FPH_TO_ROLL enum valueLTAPIAircraft
FPH_TOUCH_DOWN enum valueLTAPIAircraft
FPH_UNKNOWN enum valueLTAPIAircraft
getAcClass() constLTAPIAircraftinline
getAltFt() constLTAPIAircraftinline
getBearing() constLTAPIAircraftinline
getCallSign() constLTAPIAircraftinline
getCatDescr() constLTAPIAircraftinline
getCslModel() constLTAPIAircraftinline
getDescription() constLTAPIAircraft
getDestination() constLTAPIAircraftinline
getDistNm() constLTAPIAircraftinline
getFlaps() constLTAPIAircraftinline
getFlightNumber() constLTAPIAircraftinline
getGear() constLTAPIAircraftinline
getHeading() constLTAPIAircraftinline
getHeightFt() constLTAPIAircraftinline
getKey() constLTAPIAircraftinline
getLat() constLTAPIAircraftinline
getLights() constLTAPIAircraftinline
getLocalCoord(double &x, double &y, double &z) constLTAPIAircraftinline
getLon() constLTAPIAircraftinline
getMan() constLTAPIAircraftinline
getModel() constLTAPIAircraftinline
getModelIcao() constLTAPIAircraftinline
getMultiIdx() constLTAPIAircraftinline
getOp() constLTAPIAircraftinline
getOpIcao() constLTAPIAircraftinline
getOrigin() constLTAPIAircraftinline
getPhase() constLTAPIAircraftinline
getPhaseStr() constLTAPIAircraft
getPitch() constLTAPIAircraftinline
getRegistration() constLTAPIAircraftinline
getReversers() constLTAPIAircraftinline
getRoll() constLTAPIAircraftinline
getSpeedKn() constLTAPIAircraftinline
getSquawk() constLTAPIAircraftinline
getTerrainFt() constLTAPIAircraftinline
getTrack() constLTAPIAircraftinline
getTrackedBy() constLTAPIAircraftinline
getVSIft() constLTAPIAircraftinline
getWtc() constLTAPIAircraftinline
infoLTAPIAircraftprotected
isOnCamera() constLTAPIAircraftinline
isOnGnd() constLTAPIAircraftinline
isUpdated() constLTAPIAircraftinline
LTAPIAircraft()LTAPIAircraft
FPH_LIFT_OFF enum valueLTAPIAircraft
FPH_PARKED enum valueLTAPIAircraft
FPH_ROLL_OUT enum valueLTAPIAircraft
FPH_ROTATE enum valueLTAPIAircraft
FPH_STOPPED_ON_RWY enum valueLTAPIAircraft
FPH_TAKE_OFF enum valueLTAPIAircraft
FPH_TAXI enum valueLTAPIAircraft
FPH_TO_ROLL enum valueLTAPIAircraft
FPH_TOUCH_DOWN enum valueLTAPIAircraft
FPH_UNKNOWN enum valueLTAPIAircraft
getAcClass() constLTAPIAircraftinline
getAltFt() constLTAPIAircraftinline
getBearing() constLTAPIAircraftinline
getCallSign() constLTAPIAircraftinline
getCatDescr() constLTAPIAircraftinline
getCslModel() constLTAPIAircraftinline
getDescription() constLTAPIAircraft
getDestination() constLTAPIAircraftinline
getDistNm() constLTAPIAircraftinline
getFlaps() constLTAPIAircraftinline
getFlightNumber() constLTAPIAircraftinline
getGear() constLTAPIAircraftinline
getHeading() constLTAPIAircraftinline
getHeightFt() constLTAPIAircraftinline
getKey() constLTAPIAircraftinline
getLat() constLTAPIAircraftinline
getLights() constLTAPIAircraftinline
getLocalCoord(double &x, double &y, double &z) constLTAPIAircraftinline
getLon() constLTAPIAircraftinline
getMan() constLTAPIAircraftinline
getModel() constLTAPIAircraftinline
getModelIcao() constLTAPIAircraftinline
getMultiIdx() constLTAPIAircraftinline
getOp() constLTAPIAircraftinline
getOpIcao() constLTAPIAircraftinline
getOrigin() constLTAPIAircraftinline
getPhase() constLTAPIAircraftinline
getPhaseStr() constLTAPIAircraft
getPitch() constLTAPIAircraftinline
getRegistration() constLTAPIAircraftinline
getReversers() constLTAPIAircraftinline
getRoll() constLTAPIAircraftinline
getSpeedKn() constLTAPIAircraftinline
getSquawk() constLTAPIAircraftinline
getTerrainFt() constLTAPIAircraftinline
getTrack() constLTAPIAircraftinline
getTrackedBy() constLTAPIAircraftinline
getVSIft() constLTAPIAircraftinline
getWtc() constLTAPIAircraftinline
infoLTAPIAircraftprotected
isOnCamera() constLTAPIAircraftinline
isOnGnd() constLTAPIAircraftinline
isUpdated() constLTAPIAircraftinline
isVisible() constLTAPIAircraftinline
LTAPIAircraft()LTAPIAircraft
LTFlightPhase enum nameLTAPIAircraft
resetUpdated()LTAPIAircraftinline
updateAircraft(const LTAPIBulkData &__bulk, size_t __inSize)LTAPIAircraftvirtual
updateAircraft(const LTAPIBulkInfoTexts &__info, size_t __inSize)LTAPIAircraftvirtual
~LTAPIAircraft()LTAPIAircraftvirtual
resetUpdated()LTAPIAircraftinline
setCameraAc()LTAPIAircraft
toggleCamera(bool bCameraActive, SPtrLTAPIAircraft spPrevAc)LTAPIAircraftinlinevirtual
updateAircraft(const LTAPIBulkData &__bulk, size_t __inSize)LTAPIAircraftvirtual
updateAircraft(const LTAPIBulkInfoTexts &__info, size_t __inSize)LTAPIAircraftvirtual
~LTAPIAircraft()LTAPIAircraftvirtual
+
diff --git a/docs/html/classLTAPIAircraft.html b/docs/html/classLTAPIAircraft.html index dd39a4d..32feac8 100644 --- a/docs/html/classLTAPIAircraft.html +++ b/docs/html/classLTAPIAircraft.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: LTAPIAircraft Class Reference + + + @@ -16,8 +19,8 @@
- - +
+
LTAPI
API to access LiveTraffic's aircraft information
@@ -27,17 +30,29 @@
- + + +/* @license-end */ + +
+
-
-
LTAPIAircraft Class Reference
+
LTAPIAircraft Class Reference

Represents one aircraft as controlled by LiveTraffic. - More...

+ More...

#include <LTAPI.h>

- - + - +

+

Classes

struct  LTAPIBulkData
 Bulk data transfer structur for communication with LTAPI. More...
 Bulk data transfer structur for communication with LTAPI. More...
 
struct  LTAPIBulkInfoTexts
 Bulk text transfer structur for communication with LTAPI. More...
 Bulk text transfer structur for communication with LTAPI. More...
 
struct  LTLights
 Structure to return plane's lights status. More...
 
- - - +

+

Public Types

enum  LTFlightPhase {
-  FPH_UNKNOWN = 0, -FPH_TAXI = 10, -FPH_TAKE_OFF = 20, -FPH_TO_ROLL, -
-  FPH_ROTATE, -FPH_LIFT_OFF, -FPH_INITIAL_CLIMB, -FPH_CLIMB = 30, -
-  FPH_CRUISE = 40, -FPH_DESCEND = 50, -FPH_APPROACH = 60, -FPH_FINAL, -
-  FPH_LANDING = 70, -FPH_FLARE, -FPH_TOUCH_DOWN, -FPH_ROLL_OUT, -
-  FPH_STOPPED_ON_RWY +
enum  LTFlightPhase {
+  FPH_UNKNOWN = 0 +, FPH_PARKED = 5 +, FPH_TAXI = 10 +, FPH_TAKE_OFF = 20 +,
+  FPH_TO_ROLL +, FPH_ROTATE +, FPH_LIFT_OFF +, FPH_INITIAL_CLIMB +,
+  FPH_CLIMB = 30 +, FPH_CRUISE = 40 +, FPH_DESCEND = 50 +, FPH_APPROACH = 60 +,
+  FPH_FINAL +, FPH_LANDING = 70 +, FPH_FLARE +, FPH_TOUCH_DOWN +,
+  FPH_ROLL_OUT +, FPH_STOPPED_ON_RWY
}
 Flight phase, definition copied from LiveTraffic. More...
 Flight phase, definition copied from LiveTraffic. More...
 
- - + - - - - - - - - - - + + + + + + + + + + - - + + - - + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +

+

Public Member Functions

 LTAPIAircraft ()
 LTAPIAircraft ()
 
virtual ~LTAPIAircraft ()
 
virtual bool updateAircraft (const LTAPIBulkData &__bulk, size_t __inSize)
 Updates the aircraft with fresh numerical values, called from LTAPIConnect::UpdateAcList() More...
 
virtual bool updateAircraft (const LTAPIBulkInfoTexts &__info, size_t __inSize)
 Updates the aircraft with fresh textual information, called from LTAPIConnect::UpdateAcList() More...
 
bool isUpdated () const
 Helper in update loop to detected removed aircrafts. More...
virtual ~LTAPIAircraft ()
 
virtual bool updateAircraft (const LTAPIBulkData &__bulk, size_t __inSize)
 Updates the aircraft with fresh numerical values, called from LTAPIConnect::UpdateAcList()
 
virtual bool updateAircraft (const LTAPIBulkInfoTexts &__info, size_t __inSize)
 Updates the aircraft with fresh textual information, called from LTAPIConnect::UpdateAcList()
 
bool isUpdated () const
 Helper in update loop to detected removed aircrafts.
 
void resetUpdated ()
 Helper in update loop, resets bUpdated flag. More...
void resetUpdated ()
 Helper in update loop, resets bUpdated flag.
 
std::string getKey () const
 Unique key for this aircraft, usually ICAO transponder hex code. More...
virtual void toggleCamera (bool bCameraActive, SPtrLTAPIAircraft spPrevAc)
 Called when LiveTraffic toggles its aircraft camera, override in your class to handle event.
 
void setCameraAc ()
 Declare the aircraft the one under the camera (e.g. if your plugin is a camera plugin and now views this aircraft)
 
std::string getKey () const
 Unique key for this aircraft, usually ICAO transponder hex code.
 
std::string getRegistration () const
 tail number like "D-AISD" More...
std::string getRegistration () const
 tail number like "D-AISD"
 
std::string getModelIcao () const
 ICAO aircraft type like "A321". More...
std::string getModelIcao () const
 ICAO aircraft type like "A321".
 
std::string getAcClass () const
 a/c class like "L2J" More...
std::string getAcClass () const
 a/c class like "L2J"
 
std::string getWtc () const
 wake turbulence category like H,M,L/M,L More...
std::string getWtc () const
 wake turbulence category like H,M,L/M,L
 
std::string getOpIcao () const
 ICAO-code of operator like "DLH". More...
std::string getOpIcao () const
 ICAO-code of operator like "DLH".
 
std::string getMan () const
 human-readable manufacturer like "Airbus" More...
std::string getMan () const
 human-readable manufacturer like "Airbus"
 
std::string getModel () const
 human-readable a/c model like "A321-231" More...
std::string getModel () const
 human-readable a/c model like "A321-231"
 
std::string getCatDescr () const
 human-readable category description More...
std::string getCatDescr () const
 human-readable category description
 
std::string getOp () const
 human-readable operator like "Lufthansa" More...
std::string getOp () const
 human-readable operator like "Lufthansa"
 
std::string getCslModel () const
 name of CSL model used for actual rendering of plane More...
std::string getCslModel () const
 name of CSL model used for actual rendering of plane
 
std::string getCallSign () const
 call sign like "DLH56C" More...
std::string getCallSign () const
 call sign like "DLH56C"
 
std::string getSquawk () const
 squawk code (as text) like "1000" More...
std::string getSquawk () const
 squawk code (as text) like "1000"
 
std::string getFlightNumber () const
 flight number like "LH1113" More...
std::string getFlightNumber () const
 flight number like "LH1113"
 
std::string getOrigin () const
 origin airport (IATA or ICAO) like "MAD" or "LEMD" More...
std::string getOrigin () const
 origin airport (IATA or ICAO) like "MAD" or "LEMD"
 
std::string getDestination () const
 destination airport (IATA or ICAO) like "FRA" or "EDDF" More...
std::string getDestination () const
 destination airport (IATA or ICAO) like "FRA" or "EDDF"
 
std::string getTrackedBy () const
 name of channel deliverying the underlying tracking data More...
std::string getTrackedBy () const
 name of channel deliverying the underlying tracking data
 
std::string getDescription () const
 some reasonable descriptive string formed from the above, like an identifier, type, form/to More...
std::string getDescription () const
 some reasonable descriptive string formed from the above, like an identifier, type, form/to
 
double getLat () const
 [°] latitude More...
double getLat () const
 [°] latitude
 
double getLon () const
 [°] longitude More...
double getLon () const
 [°] longitude
 
double getAltFt () const
 [ft] altitude More...
double getAltFt () const
 [ft] altitude
 
float getHeading () const
 [°] heading More...
float getHeading () const
 [°] heading
 
float getTrack () const
 [°] track over ground More...
float getTrack () const
 [°] track over ground
 
float getRoll () const
 [°] roll: positive right More...
float getRoll () const
 [°] roll: positive right
 
float getPitch () const
 [°] pitch: positive up More...
float getPitch () const
 [°] pitch: positive up
 
float getSpeedKn () const
 [kt] ground speed More...
float getSpeedKn () const
 [kt] ground speed
 
float getVSIft () const
 [ft/minute] vertical speed, positive up More...
float getVSIft () const
 [ft/minute] vertical speed, positive up
 
float getTerrainFt () const
 [ft] terrain altitude beneath plane More...
float getTerrainFt () const
 [ft] terrain altitude beneath plane
 
float getHeightFt () const
 [ft] height AGL More...
float getHeightFt () const
 [ft] height AGL
 
bool isOnGnd () const
 Is plane on ground? More...
bool isOnGnd () const
 Is plane on ground?
 
LTFlightPhase getPhase () const
 flight phase More...
LTFlightPhase getPhase () const
 flight phase
 
std::string getPhaseStr () const
 flight phase as string More...
std::string getPhaseStr () const
 flight phase as string
 
float getFlaps () const
 flap position: 0.0 retracted, 1.0 fully extended More...
bool isVisible () const
 aircraft visible?
 
float getFlaps () const
 flap position: 0.0 retracted, 1.0 fully extended
 
float getGear () const
 gear position: 0.0 retracted, 1.0 fully extended More...
float getGear () const
 gear position: 0.0 retracted, 1.0 fully extended
 
float getReversers () const
 reversers position: 0.0 closed, 1.0 fully opened More...
float getReversers () const
 reversers position: 0.0 closed, 1.0 fully opened
 
LTLights getLights () const
 all plane's lights More...
LTLights getLights () const
 all plane's lights
 
bool isOnCamera () const
 is currently seen on LiveTraffic's internal camera view? More...
bool isOnCamera () const
 is currently seen on LiveTraffic's internal camera view?
 
float getBearing () const
 [°] to current camera position More...
float getBearing () const
 [°] to current camera position
 
float getDistNm () const
 [nm] distance to current camera More...
float getDistNm () const
 [nm] distance to current camera
 
int getMultiIdx () const
 multiplayer index if plane reported via sim/multiplayer/position dataRefs, 0 if not More...
int getMultiIdx () const
 multiplayer index if plane reported via sim/multiplayer/position dataRefs, 0 if not
 
void getLocalCoord (double &x, double &y, double &z) const
 lat/lon/alt converted to local coordinates More...
void getLocalCoord (double &x, double &y, double &z) const
 lat/lon/alt converted to local coordinates
 
- - - - + + +

+

Static Public Member Functions

static LTAPIAircraftCreateNewObject ()
 Standard object creation callback. More...
 
static LTAPIAircraftCreateNewObject ()
 Standard object creation callback.
 
- - - + + - - + + - - + +

+

Protected Attributes

LTAPIBulkData bulk
 numerical plane's data More...
LTAPIBulkData bulk
 numerical plane's data
 
LTAPIBulkInfoTexts info
 textual plane's data More...
LTAPIBulkInfoTexts info
 textual plane's data
 
bool bUpdated = false
 update helper, gets reset before updates, set during updates, stays false if not updated More...
bool bUpdated = false
 update helper, gets reset before updates, set during updates, stays false if not updated
 

Detailed Description

Represents one aircraft as controlled by LiveTraffic.

You can derive subclasses from this class if you want to add information specific to you app. Then you would need to provide a callback function fCreateAcObject to LTAPIConnect so that you create new aircraft objects when required by LTAPIConnect.

Member Enumeration Documentation

- -

◆ LTFlightPhase

+ +

◆ LTFlightPhase

Flight phase, definition copied from LiveTraffic.

- + - - - - - - - - - - - - - - - -
Enumerator
FPH_UNKNOWN 

used for initializations

+
Enumerator
FPH_UNKNOWN 

used for initializations

+
FPH_PARKED 

Parked at startup position.

FPH_TAXI 

Taxiing.

+
FPH_TAXI 

Taxiing.

FPH_TAKE_OFF 

Group of status for take-off:

+
FPH_TAKE_OFF 

Group of status for take-off:

FPH_TO_ROLL 

Take-off roll.

+
FPH_TO_ROLL 

Take-off roll.

FPH_ROTATE 

Rotating.

+
FPH_ROTATE 

Rotating.

FPH_LIFT_OFF 

Lift-off, until "gear-up" height.

+
FPH_LIFT_OFF 

Lift-off, until "gear-up" height.

FPH_INITIAL_CLIMB 

Initial climb, until "flaps-up" height.

+
FPH_INITIAL_CLIMB 

Initial climb, until "flaps-up" height.

FPH_CLIMB 

Regular climbout.

+
FPH_CLIMB 

Regular climbout.

FPH_CRUISE 

Cruising, no altitude change.

+
FPH_CRUISE 

Cruising, no altitude change.

FPH_DESCEND 

Descend, more then 100ft/min descend.

+
FPH_DESCEND 

Descend, more then 100ft/min descend.

FPH_APPROACH 

Approach, below "flaps-down" height.

+
FPH_APPROACH 

Approach, below "flaps-down" height.

FPH_FINAL 

Final, below "gear-down" height.

+
FPH_FINAL 

Final, below "gear-down" height.

FPH_LANDING 

Group of status for landing:

+
FPH_LANDING 

Group of status for landing:

FPH_FLARE 

Flare, when reaching "flare " height.

+
FPH_FLARE 

Flare, when reaching "flare " height.

FPH_TOUCH_DOWN 

The one cycle when plane touches down, don't rely on catching it...it's really one cycle only.

+
FPH_TOUCH_DOWN 

The one cycle when plane touches down, don't rely on catching it...it's really one cycle only.

FPH_ROLL_OUT 

Roll-out after touch-down until reaching taxi speed or stopping.

+
FPH_ROLL_OUT 

Roll-out after touch-down until reaching taxi speed or stopping.

FPH_STOPPED_ON_RWY 

Stopped on runway because ran out of tracking data, plane will disappear soon.

+
FPH_STOPPED_ON_RWY 

Stopped on runway because ran out of tracking data, plane will disappear soon.

Constructor & Destructor Documentation

- -

◆ LTAPIAircraft()

+ +

◆ LTAPIAircraft()

@@ -323,7 +349,7 @@

LTAPIAircraft::LTAPIAircraft ( - ) + ) @@ -331,8 +357,8 @@

-

◆ ~LTAPIAircraft()

+ +

◆ ~LTAPIAircraft()

@@ -341,9 +367,9 @@

- + - +
LTAPIAircraft::~LTAPIAircraft virtual LTAPIAircraft::~LTAPIAircraft ())
@@ -357,8 +383,8 @@

Member Function Documentation

- -

◆ CreateNewObject()

+ +

◆ CreateNewObject()

@@ -367,9 +393,9 @@

- + - +
static LTAPIAircraft* LTAPIAircraft::CreateNewObject static LTAPIAircraft * LTAPIAircraft::CreateNewObject ())
@@ -385,8 +411,8 @@

-

◆ getAcClass()

+ +

◆ getAcClass()

@@ -397,7 +423,7 @@

std::string LTAPIAircraft::getAcClass ( - ) + ) const @@ -412,8 +438,8 @@

-

◆ getAltFt()

+ +

◆ getAltFt()

@@ -424,7 +450,7 @@

double LTAPIAircraft::getAltFt ( - ) + ) const @@ -439,8 +465,8 @@

-

◆ getBearing()

+ +

◆ getBearing()

@@ -451,7 +477,7 @@

float LTAPIAircraft::getBearing ( - ) + ) const @@ -466,8 +492,8 @@

-

◆ getCallSign()

+ +

◆ getCallSign()

@@ -478,7 +504,7 @@

std::string LTAPIAircraft::getCallSign ( - ) + ) const @@ -493,8 +519,8 @@

-

◆ getCatDescr()

+ +

◆ getCatDescr()

@@ -505,7 +531,7 @@

std::string LTAPIAircraft::getCatDescr ( - ) + ) const @@ -520,8 +546,8 @@

-

◆ getCslModel()

+ +

◆ getCslModel()

@@ -532,7 +558,7 @@

std::string LTAPIAircraft::getCslModel ( - ) + ) const @@ -547,8 +573,8 @@

-

◆ getDescription()

+ +

◆ getDescription()

- -

◆ getDestination()

+ +

◆ getDestination()

@@ -584,7 +604,7 @@

std::string LTAPIAircraft::getDestination ( - ) + ) const @@ -599,8 +619,8 @@

-

◆ getDistNm()

+ +

◆ getDistNm()

@@ -611,7 +631,7 @@

float LTAPIAircraft::getDistNm ( - ) + ) const @@ -626,8 +646,8 @@

-

◆ getFlaps()

+ +

◆ getFlaps()

@@ -638,7 +658,7 @@

float LTAPIAircraft::getFlaps ( - ) + ) const @@ -653,8 +673,8 @@

-

◆ getFlightNumber()

+ +

◆ getFlightNumber()

@@ -665,7 +685,7 @@

std::string LTAPIAircraft::getFlightNumber ( - ) + ) const @@ -680,8 +700,8 @@

-

◆ getGear()

+ +

◆ getGear()

@@ -692,7 +712,7 @@

float LTAPIAircraft::getGear ( - ) + ) const @@ -707,8 +727,8 @@

-

◆ getHeading()

+ +

◆ getHeading()

@@ -719,7 +739,7 @@

float LTAPIAircraft::getHeading ( - ) + ) const @@ -734,8 +754,8 @@

-

◆ getHeightFt()

+ +

◆ getHeightFt()

@@ -746,7 +766,7 @@

float LTAPIAircraft::getHeightFt ( - ) + ) const @@ -761,8 +781,8 @@

-

◆ getKey()

+ +

◆ getKey()

@@ -773,7 +793,7 @@

std::string LTAPIAircraft::getKey ( - ) + ) const @@ -788,8 +808,8 @@

-

◆ getLat()

+ +

◆ getLat()

@@ -800,7 +820,7 @@

double LTAPIAircraft::getLat ( - ) + ) const @@ -815,8 +835,8 @@

-

◆ getLights()

+ +

◆ getLights()

@@ -827,7 +847,7 @@

LTLights LTAPIAircraft::getLights ( - ) + ) const @@ -842,8 +862,8 @@

-

◆ getLocalCoord()

+ +

◆ getLocalCoord()

@@ -854,25 +874,17 @@

void LTAPIAircraft::getLocalCoord ( - double &  - x, + double & x, - double &  - y, + double & y, - double &  - z  - - - - ) - const + double & z ) const @@ -895,8 +907,8 @@

-

◆ getLon()

+ +

◆ getLon()

@@ -907,7 +919,7 @@

double LTAPIAircraft::getLon ( - ) + ) const @@ -922,8 +934,8 @@

-

◆ getMan()

+ +

◆ getMan()

@@ -934,7 +946,7 @@

std::string LTAPIAircraft::getMan ( - ) + ) const @@ -949,8 +961,8 @@

-

◆ getModel()

+ +

◆ getModel()

@@ -961,7 +973,7 @@

std::string LTAPIAircraft::getModel ( - ) + ) const @@ -976,8 +988,8 @@

-

◆ getModelIcao()

+ +

◆ getModelIcao()

@@ -988,7 +1000,7 @@

std::string LTAPIAircraft::getModelIcao ( - ) + ) const @@ -1003,8 +1015,8 @@

-

◆ getMultiIdx()

+ +

◆ getMultiIdx()

@@ -1015,7 +1027,7 @@

int LTAPIAircraft::getMultiIdx ( - ) + ) const @@ -1030,8 +1042,8 @@

-

◆ getOp()

+ +

◆ getOp()

@@ -1042,7 +1054,7 @@

std::string LTAPIAircraft::getOp ( - ) + ) const @@ -1057,8 +1069,8 @@

-

◆ getOpIcao()

+ +

◆ getOpIcao()

@@ -1069,7 +1081,7 @@

std::string LTAPIAircraft::getOpIcao ( - ) + ) const @@ -1084,8 +1096,8 @@

-

◆ getOrigin()

+ +

◆ getOrigin()

@@ -1096,7 +1108,7 @@

std::string LTAPIAircraft::getOrigin ( - ) + ) const @@ -1111,8 +1123,8 @@

-

◆ getPhase()

+ +

◆ getPhase()

@@ -1121,9 +1133,9 @@

- + - +
LTFlightPhase LTAPIAircraft::getPhase LTFlightPhase LTAPIAircraft::getPhase ()) const
@@ -1138,8 +1150,8 @@

-

◆ getPhaseStr()

+ +

◆ getPhaseStr()

- -

◆ getPitch()

+ +

◆ getPitch()

@@ -1170,7 +1181,7 @@

float LTAPIAircraft::getPitch ( - ) + ) const @@ -1185,8 +1196,8 @@

-

◆ getRegistration()

+ +

◆ getRegistration()

@@ -1197,7 +1208,7 @@

std::string LTAPIAircraft::getRegistration ( - ) + ) const @@ -1212,8 +1223,8 @@

-

◆ getReversers()

+ +

◆ getReversers()

@@ -1224,7 +1235,7 @@

float LTAPIAircraft::getReversers ( - ) + ) const @@ -1239,8 +1250,8 @@

-

◆ getRoll()

+ +

◆ getRoll()

@@ -1251,7 +1262,7 @@

float LTAPIAircraft::getRoll ( - ) + ) const @@ -1266,8 +1277,8 @@

-

◆ getSpeedKn()

+ +

◆ getSpeedKn()

@@ -1278,7 +1289,7 @@

float LTAPIAircraft::getSpeedKn ( - ) + ) const @@ -1293,8 +1304,8 @@

-

◆ getSquawk()

+ +

◆ getSquawk()

@@ -1305,7 +1316,7 @@

std::string LTAPIAircraft::getSquawk ( - ) + ) const @@ -1320,8 +1331,8 @@

-

◆ getTerrainFt()

+ +

◆ getTerrainFt()

@@ -1332,7 +1343,7 @@

float LTAPIAircraft::getTerrainFt ( - ) + ) const @@ -1347,8 +1358,8 @@

-

◆ getTrack()

+ +

◆ getTrack()

@@ -1359,7 +1370,7 @@

float LTAPIAircraft::getTrack ( - ) + ) const @@ -1374,8 +1385,8 @@

-

◆ getTrackedBy()

+ +

◆ getTrackedBy()

@@ -1386,7 +1397,7 @@

std::string LTAPIAircraft::getTrackedBy ( - ) + ) const @@ -1401,8 +1412,8 @@

-

◆ getVSIft()

+ +

◆ getVSIft()

@@ -1413,7 +1424,7 @@

float LTAPIAircraft::getVSIft ( - ) + ) const @@ -1428,8 +1439,8 @@

-

◆ getWtc()

+ +

◆ getWtc()

@@ -1440,7 +1451,7 @@

std::string LTAPIAircraft::getWtc ( - ) + ) const @@ -1455,8 +1466,8 @@

-

◆ isOnCamera()

+ +

◆ isOnCamera()

@@ -1467,7 +1478,7 @@

bool LTAPIAircraft::isOnCamera ( - ) + ) const @@ -1482,8 +1493,8 @@

-

◆ isOnGnd()

+ +

◆ isOnGnd()

@@ -1494,7 +1505,7 @@

bool LTAPIAircraft::isOnGnd ( - ) + ) const @@ -1509,8 +1520,8 @@

-

◆ isUpdated()

+ +

◆ isUpdated()

@@ -1521,7 +1532,7 @@

bool LTAPIAircraft::isUpdated ( - ) + ) const @@ -1536,8 +1547,35 @@

-

◆ resetUpdated()

+ +

◆ isVisible()

+ +
+
+ + + + + +
+ + + + + + + +
bool LTAPIAircraft::isVisible () const
+
+inline
+
+ +

aircraft visible?

+ +
+
+ +

◆ resetUpdated()

@@ -1548,7 +1586,7 @@

void LTAPIAircraft::resetUpdated ( - ) + ) @@ -1563,8 +1601,27 @@

-

◆ updateAircraft() [1/2]

+ +

◆ setCameraAc()

+ +
+
+ + + + + + + +
void LTAPIAircraft::setCameraAc ()
+
+ +

Declare the aircraft the one under the camera (e.g. if your plugin is a camera plugin and now views this aircraft)

+ +
+
+ +

◆ toggleCamera()

+ +

◆ updateAircraft() [1/2]

+ +
+
+ + + @@ -1601,16 +1689,15 @@

Parameters

+ + + + + + - - +
virtual bool LTAPIAircraft::updateAircraft (const LTAPIBulkData & __bulk,
)size_t __inSize )
- +
__bulkA structure with updated numeric aircraft data
__inSizeNumber of bytes returned by LiveTraffic
__inSizeNumber of bytes returned by LiveTraffic

-

Copies the provided bulk data and sets bUpdated to true if the provided data matches this aircraft.

Note
This function can set this object's key for the first and only time.
- -

◆ updateAircraft() [2/2]

+ +

◆ updateAircraft() [2/2]

Member Data Documentation

- -

◆ bulk

+ +

◆ bulk

@@ -1680,8 +1759,8 @@

-

◆ bUpdated

+ +

◆ bUpdated

@@ -1704,8 +1783,8 @@

-

◆ info

+ +

◆ info

@@ -1728,16 +1807,14 @@

LTAPI.h -
  • LTAPI.cpp
  • +
    diff --git a/docs/html/classLTAPIConnect-members.html b/docs/html/classLTAPIConnect-members.html index 1daeb96..12096f3 100644 --- a/docs/html/classLTAPIConnect-members.html +++ b/docs/html/classLTAPIConnect-members.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: Member List + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,54 +30,66 @@
    - + + +/* @license-end */ + +

    +
    -
    -
    LTAPIConnect Member List
    +
    LTAPIConnect Member List

    This is the complete list of members for LTAPIConnect, including all inherited members.

    + + - - - + + + - - - - - - - + + + + + + + - + - + - + - + - - + +
    CameraSharedDataCB(LTAPIConnect *me)LTAPIConnectprotectedstatic
    clearCameraInfo()LTAPIConnect
    DoBulkFetch(int numAc, LTDataRef &DR, int &outSizeLT, std::unique_ptr< T[]> &vBulk)LTAPIConnectprotected
    doesLTControlAI()LTAPIConnectstatic
    doesLTDisplayAc()LTAPIConnectstatic
    fCreateAcObject typedefLTAPIConnect
    doesLTControlAI()LTAPIConnectstatic
    doesLTDisplayAc()LTAPIConnectstatic
    fCreateAcObject typedefLTAPIConnect
    getAcByMultIdx(int multiIdx) constLTAPIConnect
    getAcInCameraView() constLTAPIConnect
    getAcMap() constLTAPIConnectinline
    getLTNumAc()LTAPIConnectstatic
    getLTSimTime()LTAPIConnectstatic
    getLTSimTimePoint()LTAPIConnectstatic
    getLTVerDate()LTAPIConnectstatic
    getLTVerNr()LTAPIConnectstatic
    getAcInCameraView() constLTAPIConnect
    getAcMap() constLTAPIConnectinline
    getLTNumAc()LTAPIConnectstatic
    getLTSimTime()LTAPIConnectstatic
    getLTSimTimePoint()LTAPIConnectstatic
    getLTVerDate()LTAPIConnectstatic
    getLTVerNr()LTAPIConnectstatic
    iBulkAcLTAPIConnectprotected
    isLTAvail()LTAPIConnectstatic
    isLTAvail()LTAPIConnectstatic
    lastExpsvFetchLTAPIConnectprotected
    LTAPIConnect(fCreateAcObject *_pfCreateAcObject=LTAPIAircraft::CreateNewObject, int numBulkAc=50)LTAPIConnect
    LTAPIConnect(fCreateAcObject *_pfCreateAcObject=LTAPIAircraft::CreateNewObject, int numBulkAc=50)LTAPIConnect
    mapAcLTAPIConnectprotected
    pfCreateAcObjectLTAPIConnectprotected
    pfCreateAcObjectLTAPIConnectprotected
    sPeriodExpsvLTAPIConnect
    UpdateAcList(ListLTAPIAircraft *plistRemovedAc=nullptr)LTAPIConnect
    UpdateAcList(ListLTAPIAircraft *plistRemovedAc=nullptr)LTAPIConnect
    vBulkNumLTAPIConnectprotected
    vInfoTextsLTAPIConnectprotected
    ~LTAPIConnect()LTAPIConnectvirtual
    vInfoTextsLTAPIConnectprotected
    ~LTAPIConnect()LTAPIConnectvirtual
    +
    diff --git a/docs/html/classLTAPIConnect.html b/docs/html/classLTAPIConnect.html index 520c361..cffee25 100644 --- a/docs/html/classLTAPIConnect.html +++ b/docs/html/classLTAPIConnect.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: LTAPIConnect Class Reference + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,17 +30,29 @@
    - + + +/* @license-end */ + +
    +
    -
    -
    LTAPIConnect Class Reference
    +
    LTAPIConnect Class Reference

    Connects to LiveTraffic's dataRefs and returns aircraft information. - More...

    + More...

    #include <LTAPI.h>

    - - - - + + +

    +

    Public Types

    typedef LTAPIAircraftfCreateAcObject()
     Callback function type passed in to LTAPIConnect() More...
     
    typedef LTAPIAircraftfCreateAcObject()
     Callback function type passed in to LTAPIConnect()
     
    - - - + + - - - - + + + + - - - - - + + + + + - - + + + + +

    +

    Public Member Functions

     LTAPIConnect (fCreateAcObject *_pfCreateAcObject=LTAPIAircraft::CreateNewObject, int numBulkAc=50)
     Constructor. More...
     LTAPIConnect (fCreateAcObject *_pfCreateAcObject=LTAPIAircraft::CreateNewObject, int numBulkAc=50)
     Constructor.
     
    virtual ~LTAPIConnect ()
     
    const MapLTAPIAircraftUpdateAcList (ListLTAPIAircraft *plistRemovedAc=nullptr)
     Main function: updates map of aircrafts and returns reference to it. More...
    virtual ~LTAPIConnect ()
     
    const MapLTAPIAircraftUpdateAcList (ListLTAPIAircraft *plistRemovedAc=nullptr)
     Main function: updates map of aircrafts and returns reference to it.
     
    const MapLTAPIAircraftgetAcMap () const
     Returns the map of aircraft as it currently stands. More...
     
    SPtrLTAPIAircraft getAcByMultIdx (int multiIdx) const
     Finds an aircraft for a given multiplayer slot. More...
    const MapLTAPIAircraftgetAcMap () const
     Returns the map of aircraft as it currently stands.
     
    SPtrLTAPIAircraft getAcByMultIdx (int multiIdx) const
     Finds an aircraft for a given multiplayer slot.
     
    SPtrLTAPIAircraft getAcInCameraView () const
     Returns the aircraft being viewed in LiveTraffic's camera view, if any. More...
    SPtrLTAPIAircraft getAcInCameraView () const
     Returns the aircraft being viewed in LiveTraffic's camera view, if any.
     
    void clearCameraInfo ()
     Clear camera information, ie. delcare that no aircraft is currently being viewed.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +

    +

    Static Public Member Functions

    static bool isLTAvail ()
     Is LiveTraffic available? (checks via XPLMFindPluginBySignature) More...
     
    static int getLTVerNr ()
     LiveTraffic's version number. More...
     
    static int getLTVerDate ()
     LiveTraffic's version date. More...
     
    static bool doesLTDisplayAc ()
     Does LiveTraffic display aircrafts? (Is it activated?) More...
     
    static int getLTNumAc ()
     How many aircraft does LiveTraffic display right now? More...
     
    static bool doesLTControlAI ()
     Does LiveTaffic control AI planes? More...
     
    static time_t getLTSimTime ()
     What is current simulated time in LiveTraffic (usually 'now' minus buffering period)? More...
     
    static std::chrono::system_clock::time_point getLTSimTimePoint ()
     What is current simulated time in LiveTraffic (usually 'now' minus buffering period)? More...
     
    static bool isLTAvail ()
     Is LiveTraffic available? (checks via XPLMFindPluginBySignature)
     
    static int getLTVerNr ()
     LiveTraffic's version number.
     
    static int getLTVerDate ()
     LiveTraffic's version date.
     
    static bool doesLTDisplayAc ()
     Does LiveTraffic display aircrafts? (Is it activated?)
     
    static int getLTNumAc ()
     How many aircraft does LiveTraffic display right now?
     
    static bool doesLTControlAI ()
     Does LiveTaffic control AI planes?
     
    static time_t getLTSimTime ()
     What is current simulated time in LiveTraffic (usually 'now' minus buffering period)?
     
    static std::chrono::system_clock::time_point getLTSimTimePoint ()
     What is current simulated time in LiveTraffic (usually 'now' minus buffering period)?
     
    - - +

    +

    Public Attributes

    std::chrono::seconds sPeriodExpsv = std::chrono::seconds(3)
    std::chrono::seconds sPeriodExpsv = std::chrono::seconds(3)
     
    - - - - + + +

    +

    Protected Member Functions

    template<class T >
    bool DoBulkFetch (int numAc, LTDataRef &DR, int &outSizeLT, std::unique_ptr< T[]> &vBulk)
     fetch bulk data and create/update aircraft objects More...
    template<class T >
    bool DoBulkFetch (int numAc, LTDataRef &DR, int &outSizeLT, std::unique_ptr< T[]> &vBulk)
     fetch bulk data and create/update aircraft objects
     
    - + + + +

    +

    +Static Protected Member Functions

    static void CameraSharedDataCB (LTAPIConnect *me)
     shared DataRef event notification
     
    + - - + + - - + + - - + + - - + + - - + + - - + +

    Protected Attributes

    const int iBulkAc = 50
     Number of aircraft to fetch in one bulk operation. More...
    const int iBulkAc = 50
     Number of aircraft to fetch in one bulk operation.
     
    std::unique_ptr< LTAPIAircraft::LTAPIBulkData[]> vBulkNum
     bulk data array for communication with LT More...
    std::unique_ptr< LTAPIAircraft::LTAPIBulkData[]> vBulkNum
     bulk data array for communication with LT
     
    std::unique_ptr< LTAPIAircraft::LTAPIBulkInfoTexts[]> vInfoTexts
     bulk info text array for communication with LT More...
    std::unique_ptr< LTAPIAircraft::LTAPIBulkInfoTexts[]> vInfoTexts
     bulk info text array for communication with LT
     
    fCreateAcObjectpfCreateAcObject = nullptr
     Pointer to callback function returning new aircraft objects. More...
    fCreateAcObjectpfCreateAcObject = nullptr
     Pointer to callback function returning new aircraft objects.
     
    MapLTAPIAircraft mapAc
     THE map of aircrafts. More...
    MapLTAPIAircraft mapAc
     THE map of aircrafts.
     
    std::chrono::time_point< std::chrono::steady_clock > lastExpsvFetch
     Last fetching of expensive data. More...
    std::chrono::time_point< std::chrono::steady_clock > lastExpsvFetch
     Last fetching of expensive data.
     

    Detailed Description

    Connects to LiveTraffic's dataRefs and returns aircraft information.

    Typically, exactly one instance of this class is used.

    Member Typedef Documentation

    - -

    ◆ fCreateAcObject

    + +

    ◆ fCreateAcObject

    - +
    typedef LTAPIAircraft* LTAPIConnect::fCreateAcObject()LTAPIAircraft * LTAPIConnect::fCreateAcObject()
    -

    Callback function type passed in to LTAPIConnect()

    +

    Callback function type passed in to LTAPIConnect()

    Returns
    New LTAPIAircraft object or derived class' object
    -

    The callback is actually called by UpdateAcList().

    -

    If you use a class derived from LTAPIAircraft, then you pass in a pointer to a callback function, which returns new empty objects of your derived class whenever UpdateAcList() needs to create a new aircraft object.

    +

    The callback is actually called by UpdateAcList().

    +

    If you use a class derived from LTAPIAircraft, then you pass in a pointer to a callback function, which returns new empty objects of your derived class whenever UpdateAcList() needs to create a new aircraft object.

    Constructor & Destructor Documentation

    - -

    ◆ LTAPIConnect()

    + +

    ◆ LTAPIConnect()

    @@ -176,19 +200,12 @@

    LTAPIConnect::LTAPIConnect ( - fCreateAcObject *  - _pfCreateAcObject = LTAPIAircraft::CreateNewObject, + fCreateAcObject * _pfCreateAcObject = LTAPIAircraft::CreateNewObject, - int  - numBulkAc = 50  - - - - ) - + int numBulkAc = 50 )

    @@ -196,7 +213,7 @@

    Parameters
    - +
    _pfCreateAcObject(Optional) Poitner to callback function, which returns new aircraft objects, see typedef fCreateAcObject()
    _pfCreateAcObject(Optional) Poitner to callback function, which returns new aircraft objects, see typedef fCreateAcObject()
    numBulkAcNumber of aircraft to fetch in one bulk operation
    @@ -204,8 +221,8 @@

    -

    ◆ ~LTAPIConnect()

    + +

    ◆ ~LTAPIConnect()

    @@ -214,9 +231,9 @@

    - + - +
    LTAPIConnect::~LTAPIConnect virtual LTAPIConnect::~LTAPIConnect ())
    @@ -230,8 +247,54 @@

    Member Function Documentation

    - -

    ◆ DoBulkFetch()

    + +

    ◆ CameraSharedDataCB()

    + +
    +
    + + + + + +
    + + + + + + + +
    static void LTAPIConnect::CameraSharedDataCB (LTAPIConnect * me)
    +
    +staticprotected
    +
    + +

    shared DataRef event notification

    + +
    +
    + +

    ◆ clearCameraInfo()

    + +
    +
    + + + + + + + +
    void LTAPIConnect::clearCameraInfo ()
    +
    + +

    Clear camera information, ie. delcare that no aircraft is currently being viewed.

    + +
    +
    + +

    ◆ DoBulkFetch()

    @@ -244,31 +307,22 @@

    bool LTAPIConnect::DoBulkFetch ( - int  - numAc, + int numAc, - LTDataRef &  - DR, + LTDataRef & DR, - int &  - outSizeLT, + int & outSizeLT, - std::unique_ptr< T[]> &  - vBulk  - - - - ) - + std::unique_ptr< T[]> & vBulk ) @@ -298,8 +352,8 @@

    -

    ◆ doesLTControlAI()

    + +

    ◆ doesLTControlAI()

    @@ -308,9 +362,9 @@

    - + - +
    bool LTAPIConnect::doesLTControlAI static bool LTAPIConnect::doesLTControlAI ())
    @@ -322,12 +376,12 @@

    Does LiveTaffic control AI planes?

    -
    Note
    If your plugin usually deals with AI/multiplayer planes, then you don't need to check for AI/multiplayer planes if doesLTControlAI() returns true: In this case the planes returned in the AI/multiplayer dataRefs are just a subset selected by LiveTraffic of what you get via UpdateAcList() anyway. Avoid duplicates, just use LTAPI if doesLTControlAI() is true.
    +
    Note
    If your plugin usually deals with AI/multiplayer planes, then you don't need to check for AI/multiplayer planes if doesLTControlAI() returns true: In this case the planes returned in the AI/multiplayer dataRefs are just a subset selected by LiveTraffic of what you get via UpdateAcList() anyway. Avoid duplicates, just use LTAPI if doesLTControlAI() is true.

    - -

    ◆ doesLTDisplayAc()

    + +

    ◆ doesLTDisplayAc()

    @@ -336,9 +390,9 @@

    - + - +
    bool LTAPIConnect::doesLTDisplayAc static bool LTAPIConnect::doesLTDisplayAc ())
    @@ -354,8 +408,8 @@

    -

    ◆ getAcByMultIdx()

    + +

    ◆ getAcByMultIdx()

    @@ -363,8 +417,7 @@

    SPtrLTAPIAircraft LTAPIConnect::getAcByMultIdx ( - int  - multiIdx) + int multiIdx) const @@ -381,8 +434,8 @@

    -

    ◆ getAcInCameraView()

    + +

    ◆ getAcInCameraView()

    @@ -390,7 +443,7 @@

    SPtrLTAPIAircraft LTAPIConnect::getAcInCameraView ( - ) + ) const @@ -401,8 +454,8 @@

    -

    ◆ getAcMap()

    + +

    ◆ getAcMap()

    @@ -411,9 +464,9 @@

    - + - +
    const MapLTAPIAircraft& LTAPIConnect::getAcMap const MapLTAPIAircraft & LTAPIConnect::getAcMap ()) const
    @@ -428,8 +481,8 @@

    -

    ◆ getLTNumAc()

    + +

    ◆ getLTNumAc()

    @@ -438,9 +491,9 @@

    - + - +
    int LTAPIConnect::getLTNumAc static int LTAPIConnect::getLTNumAc ())
    @@ -455,8 +508,8 @@

    -

    ◆ getLTSimTime()

    + +

    ◆ getLTSimTime()

    @@ -465,9 +518,9 @@

    - + - +
    time_t LTAPIConnect::getLTSimTime static time_t LTAPIConnect::getLTSimTime ())
    @@ -482,8 +535,8 @@

    -

    ◆ getLTSimTimePoint()

    + +

    ◆ getLTSimTimePoint()

    @@ -492,9 +545,9 @@

    - + - +
    std::chrono::system_clock::time_point LTAPIConnect::getLTSimTimePoint static std::chrono::system_clock::time_point LTAPIConnect::getLTSimTimePoint ())
    @@ -509,8 +562,8 @@

    -

    ◆ getLTVerDate()

    + +

    ◆ getLTVerDate()

    @@ -519,9 +572,9 @@

    - + - +
    int LTAPIConnect::getLTVerDate static int LTAPIConnect::getLTVerDate ())
    @@ -537,8 +590,8 @@

    -

    ◆ getLTVerNr()

    + +

    ◆ getLTVerNr()

    - -

    ◆ isLTAvail()

    + +

    ◆ isLTAvail()

    @@ -577,9 +630,9 @@

    - + - +
    bool LTAPIConnect::isLTAvail static bool LTAPIConnect::isLTAvail ())
    @@ -594,8 +647,8 @@

    -

    ◆ UpdateAcList()

    + +

    ◆ UpdateAcList()

    @@ -603,8 +656,7 @@

    const MapLTAPIAircraft & LTAPIConnect::UpdateAcList ( - ListLTAPIAircraft *  - plistRemovedAc = nullptr) + ListLTAPIAircraft * plistRemovedAc = nullptr) @@ -613,7 +665,7 @@

    Parameters
    - +
    plistRemovedAc(Optional) If you want to know which a/c are removed during this call (because the disappeared from LiveTraffic) then pass a ListLTAPIAircraft object: LTAPI will transfer otherwise removed objects there and management of them is then up to you. LTAPI will only emplace_back to the list, never remove anything.
    plistRemovedAc(Optional) If you want to know which a/c are removed during this call (because the disappeared from LiveTraffic) then pass a ListLTAPIAircraft object: LTAPI will transfer otherwise removed objects there and management of them is then up to you. LTAPI will only emplace_back to the list, never remove anything.
    @@ -621,8 +673,8 @@

    Member Data Documentation

    - -

    ◆ iBulkAc

    + +

    ◆ iBulkAc

    @@ -645,8 +697,8 @@

    -

    ◆ lastExpsvFetch

    + +

    ◆ lastExpsvFetch

    @@ -669,8 +721,8 @@

    -

    ◆ mapAc

    + +

    ◆ mapAc

    @@ -693,8 +745,8 @@

    -

    ◆ pfCreateAcObject

    + +

    ◆ pfCreateAcObject

    @@ -703,7 +755,7 @@

    - +
    fCreateAcObject* LTAPIConnect::pfCreateAcObject = nullptrfCreateAcObject* LTAPIConnect::pfCreateAcObject = nullptr
    @@ -717,8 +769,8 @@

    -

    ◆ sPeriodExpsv

    + +

    ◆ sPeriodExpsv

    @@ -732,8 +784,8 @@

    -

    ◆ vBulkNum

    + +

    ◆ vBulkNum

    @@ -756,8 +808,8 @@

    -

    ◆ vInfoTexts

    + +

    ◆ vInfoTexts

    @@ -780,16 +832,14 @@

    LTAPI.h -
  • LTAPI.cpp
  • +
    diff --git a/docs/html/classLTDataRef-members.html b/docs/html/classLTDataRef-members.html index 7b85536..f7f584b 100644 --- a/docs/html/classLTDataRef-members.html +++ b/docs/html/classLTDataRef-members.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: Member List + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,49 +30,59 @@
    - + + +/* @license-end */ + +

    +
    -
    -
    LTDataRef Member List
    +
    LTDataRef Member List

    This is the complete list of members for LTDataRef, including all inherited members.

    - + - + - + - + - + - + - + - + - +
    bValidLTDataRefprotected
    dataRefLTDataRefprotected
    dataRefLTDataRefprotected
    dataTypesLTDataRefprotected
    FindDataRef()LTDataRef
    FindDataRef()LTDataRef
    getBool()LTDataRefinline
    getData(void *pOut, int inOffset, int inMaxBytes)LTDataRef
    getData(void *pOut, int inOffset, int inMaxBytes)LTDataRef
    getDataRefTypes() constLTDataRefinline
    getFloat()LTDataRef
    getFloat()LTDataRef
    getInt()LTDataRef
    hasFloat() constLTDataRefinline
    hasFloat() constLTDataRefinline
    hasInt() constLTDataRefinline
    isValid()LTDataRef
    isValid()LTDataRef
    LTDataRef(std::string _sDataRef)LTDataRef
    needsInit() constLTDataRefinline
    needsInit() constLTDataRefinline
    sDataRefLTDataRefprotected
    set(int i)LTDataRef
    set(int i)LTDataRef
    set(float f)LTDataRef
    usefulTypesLTDataRefstatic
    usefulTypesLTDataRefstatic
    +
    diff --git a/docs/html/classLTDataRef.html b/docs/html/classLTDataRef.html index 20e84a0..6780b51 100644 --- a/docs/html/classLTDataRef.html +++ b/docs/html/classLTDataRef.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: LTDataRef Class Reference + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,101 +30,112 @@
    - + + +/* @license-end */ + +
    +
    -
    -
    LTDataRef Class Reference
    +
    LTDataRef Class Reference

    Represents a dataRef and covers late binding. - More...

    + More...

    #include <LTAPI.h>

    - - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +

    +

    Public Member Functions

     LTDataRef (std::string _sDataRef)
     Constructor, set the dataRef's name. More...
     LTDataRef (std::string _sDataRef)
     Constructor, set the dataRef's name.
     
    bool needsInit () const
    bool needsInit () const
     
    bool isValid ()
     Found the dataRef and it contains formats we can work with? More...
    bool isValid ()
     Found the dataRef and it contains formats we can work with?
     
    bool FindDataRef ()
     Finds the dataRef (and would try again and again, no matter what bValid says) More...
    bool FindDataRef ()
     Finds the dataRef (and would try again and again, no matter what bValid says)
     
    XPLMDataTypeID getDataRefTypes () const
     Get types supported by the dataRef. More...
    XPLMDataTypeID getDataRefTypes () const
     Get types supported by the dataRef.
     
    bool hasInt () const
     Is int a supported dataRef type? More...
    bool hasInt () const
     Is int a supported dataRef type?
     
    bool hasFloat () const
     Is float a supported dataRef type? More...
    bool hasFloat () const
     Is float a supported dataRef type?
     
    int getInt ()
     Get dataRef's integer value. Silently returns 0 if dataRef doesn't exist. More...
    int getInt ()
     Get dataRef's integer value. Silently returns 0 if dataRef doesn't exist.
     
    float getFloat ()
     Get dataRef's float value. Silently returns 0.0f if dataRef doesn't exist. More...
    float getFloat ()
     Get dataRef's float value. Silently returns 0.0f if dataRef doesn't exist.
     
    bool getBool ()
     Gets dataRef's integer value and returns if it is not zero. More...
    bool getBool ()
     Gets dataRef's integer value and returns if it is not zero.
     
    int getData (void *pOut, int inOffset, int inMaxBytes)
     Gets dataRef's binary data. More...
    int getData (void *pOut, int inOffset, int inMaxBytes)
     Gets dataRef's binary data.
     
    void set (int i)
     Writes an integer value to the dataRef. More...
    void set (int i)
     Writes an integer value to the dataRef.
     
    void set (float f)
     Writes a float vlue to the dataRef. More...
    void set (float f)
     Writes a float vlue to the dataRef.
     
    - - - + +

    +

    Static Public Attributes

    static constexpr XPLMDataTypeID usefulTypes
     Defines which types to work with to become valid More...
    static constexpr XPLMDataTypeID usefulTypes
     Defines which types to work with to become valid
     
    - - - + + - - + + - - + + - - + +

    +

    Protected Attributes

    std::string sDataRef
     dataRef name, passed in via constructor More...
    std::string sDataRef
     dataRef name, passed in via constructor
     
    XPLMDataRef dataRef = NULL
     dataRef identifier returned by X-Plane More...
    XPLMDataRef dataRef = NULL
     dataRef identifier returned by X-Plane
     
    XPLMDataTypeID dataTypes = xplmType_Unknown
     supported data types More...
    XPLMDataTypeID dataTypes = xplmType_Unknown
     supported data types
     
    bool bValid = true
     does this object have a valid binding to a dataRef already? More...
    bool bValid = true
     does this object have a valid binding to a dataRef already?
     

    Detailed Description

    Represents a dataRef and covers late binding.

    Late binding is important: We read another plugin's dataRefs. The other plugin (here: LiveTraffic) needs to register the dataRefs first before we can find them. So we would potentially fail if we search for them during startup (like when declaring statically). With this wrapper we still can do static declaration because the actual call to XPLMFindDataRef happens only the first time we actually access it.

    Constructor & Destructor Documentation

    - -

    ◆ LTDataRef()

    + +

    ◆ LTDataRef()

    @@ -129,8 +143,7 @@

    LTDataRef::LTDataRef ( - std::string  - _sDataRef) + std::string _sDataRef) @@ -141,8 +154,8 @@

    Member Function Documentation

    - -

    ◆ FindDataRef()

    + +

    ◆ FindDataRef()

    @@ -150,7 +163,7 @@

    bool LTDataRef::FindDataRef ( - ) + ) @@ -160,8 +173,8 @@

    -

    ◆ getBool()

    + +

    ◆ getBool()

    @@ -172,7 +185,7 @@

    bool LTDataRef::getBool ( - ) + ) @@ -187,8 +200,8 @@

    -

    ◆ getData()

    + +

    ◆ getData()

    @@ -223,8 +228,8 @@

    -

    ◆ getDataRefTypes()

    + +

    ◆ getDataRefTypes()

    @@ -235,7 +240,7 @@

    XPLMDataTypeID LTDataRef::getDataRefTypes ( - ) + ) const @@ -250,8 +255,8 @@

    -

    ◆ getFloat()

    + +

    ◆ getFloat()

    @@ -259,7 +264,7 @@

    float LTDataRef::getFloat ( - ) + ) @@ -269,8 +274,8 @@

    -

    ◆ getInt()

    + +

    ◆ getInt()

    @@ -278,7 +283,7 @@

    int LTDataRef::getInt ( - ) + ) @@ -288,8 +293,8 @@

    -

    ◆ hasFloat()

    + +

    ◆ hasFloat()

    @@ -300,7 +305,7 @@

    bool LTDataRef::hasFloat ( - ) + ) const @@ -315,8 +320,8 @@

    -

    ◆ hasInt()

    + +

    ◆ hasInt()

    @@ -327,7 +332,7 @@

    bool LTDataRef::hasInt ( - ) + ) const @@ -342,8 +347,8 @@

    -

    ◆ isValid()

    + +

    ◆ isValid()

    - -

    ◆ needsInit()

    + +

    ◆ needsInit()

    @@ -374,7 +378,7 @@

    bool LTDataRef::needsInit ( - ) + ) const @@ -387,8 +391,8 @@

    -

    ◆ set() [1/2]

    + +

    ◆ set() [1/2]

    @@ -396,8 +400,7 @@

    void LTDataRef::set ( - float  - f) + float f) @@ -407,8 +410,8 @@

    -

    ◆ set() [2/2]

    + +

    ◆ set() [2/2]

    @@ -416,8 +419,7 @@

    void LTDataRef::set ( - int  - i) + int i) @@ -428,8 +430,8 @@

    Member Data Documentation

    - -

    ◆ bValid

    + +

    ◆ bValid

    @@ -452,8 +454,8 @@

    -

    ◆ dataRef

    + +

    ◆ dataRef

    @@ -476,8 +478,8 @@

    -

    ◆ dataTypes

    + +

    ◆ dataTypes

    @@ -500,8 +502,8 @@

    -

    ◆ sDataRef

    + +

    ◆ sDataRef

    @@ -524,8 +526,8 @@

    -

    ◆ usefulTypes

    + +

    ◆ usefulTypes

    diff --git a/docs/html/classes.html b/docs/html/classes.html index 0ea582e..571f83c 100644 --- a/docs/html/classes.html +++ b/docs/html/classes.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: Class Index + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,47 +30,47 @@
    - + + +/* @license-end */ +

    +
    +
    -
    -
    Class Index
    +
    Class Index
    +
    diff --git a/docs/html/clipboard.js b/docs/html/clipboard.js new file mode 100644 index 0000000..42c1fb0 --- /dev/null +++ b/docs/html/clipboard.js @@ -0,0 +1,61 @@ +/** + +The code below is based on the Doxygen Awesome project, see +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +let clipboard_title = "Copy to clipboard" +let clipboard_icon = `` +let clipboard_successIcon = `` +let clipboard_successDuration = 1000 + +$(function() { + if(navigator.clipboard) { + const fragments = document.getElementsByClassName("fragment") + for(const fragment of fragments) { + const clipboard_div = document.createElement("div") + clipboard_div.classList.add("clipboard") + clipboard_div.innerHTML = clipboard_icon + clipboard_div.title = clipboard_title + $(clipboard_div).click(function() { + const content = this.parentNode.cloneNode(true) + // filter out line number and folded fragments from file listings + content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() }) + let text = content.textContent + // remove trailing newlines and trailing spaces from empty lines + text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'') + navigator.clipboard.writeText(text); + this.classList.add("success") + this.innerHTML = clipboard_successIcon + window.setTimeout(() => { // switch back to normal icon after timeout + this.classList.remove("success") + this.innerHTML = clipboard_icon + }, clipboard_successDuration); + }) + fragment.insertBefore(clipboard_div, fragment.firstChild) + } + } +}) diff --git a/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html b/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html new file mode 100644 index 0000000..2feecec --- /dev/null +++ b/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html @@ -0,0 +1,71 @@ + + + + + + + +LTAPI: docs Directory Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    LTAPI +
    +
    API to access LiveTraffic's aircraft information
    +
    +
    + + + + + + + + + +
    +
    +
    +
    docs Directory Reference
    +
    +
    +
    + + +
    + + diff --git a/docs/html/doc.png b/docs/html/doc.png deleted file mode 100644 index 17edabff95f7b8da13c9516a04efe05493c29501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t diff --git a/docs/html/doc.svg b/docs/html/doc.svg new file mode 100644 index 0000000..0b928a5 --- /dev/null +++ b/docs/html/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docs/html/docd.svg b/docs/html/docd.svg new file mode 100644 index 0000000..ac18b27 --- /dev/null +++ b/docs/html/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css index 5e35db3..574b333 100644 --- a/docs/html/doxygen.css +++ b/docs/html/doxygen.css @@ -1,29 +1,422 @@ -/* The standard CSS for doxygen 1.8.18 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; +/* The standard CSS for doxygen 1.12.0*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--fragment-copy-ok-color: #2EC82E; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; +--fold-line-color: #808080; +--fold-minus-image: url('minus.svg'); +--fold-plus-image: url('plus.svg'); +--fold-minus-image-relpath: url('../../minus.svg'); +--fold-plus-image-relpath: url('../../plus.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #f8d1cc; +--warning-color-hl: #b61825; +--warning-color-text: #75070f; +--note-color-bg: #faf3d8; +--note-color-hl: #f3a600; +--note-color-text: #5f4204; +--todo-color-bg: #e4f3ff; +--todo-color-hl: #1879C4; +--todo-color-text: #274a5c; +--test-color-bg: #e8e8ff; +--test-color-hl: #3939C4; +--test-color-text: #1a1a5c; +--deprecated-color-bg: #ecf0f3; +--deprecated-color-hl: #5b6269; +--deprecated-color-text: #43454a; +--bug-color-bg: #e4dafd; +--bug-color-hl: #5b2bdd; +--bug-color-text: #2a0d72; +--invariant-color-bg: #d8f1e3; +--invariant-color-hl: #44b86f; +--invariant-color-text: #265532; +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: #090D16; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--fragment-copy-ok-color: #0EA80E; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; +--fold-line-color: #808080; +--fold-minus-image: url('minusd.svg'); +--fold-plus-image: url('plusd.svg'); +--fold-minus-image-relpath: url('../../minusd.svg'); +--fold-plus-image-relpath: url('../../plusd.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #2e1917; +--warning-color-hl: #ad2617; +--warning-color-text: #f5b1aa; +--note-color-bg: #3b2e04; +--note-color-hl: #f1b602; +--note-color-text: #ceb670; +--todo-color-bg: #163750; +--todo-color-hl: #1982D2; +--todo-color-text: #dcf0fa; +--test-color-bg: #121258; +--test-color-hl: #4242cf; +--test-color-text: #c0c0da; +--deprecated-color-bg: #2e323b; +--deprecated-color-hl: #738396; +--deprecated-color-text: #abb0bd; +--bug-color-bg: #2a2536; +--bug-color-hl: #7661b3; +--bug-color-text: #ae9ed6; +--invariant-color-bg: #303a35; +--invariant-color-hl: #76ce96; +--invariant-color-text: #cceed5; +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); } -p.reference, p.definition { - font: 400 14px/22px Roboto,sans-serif; +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; } /* @group Heading Levels */ -h1.groupheader { - font-size: 150%; -} - .title { - font: 400 14px/28px Roboto,sans-serif; + font-family: var(--font-family-normal); + line-height: 28px; font-size: 150%; font-weight: bold; margin: 10px 2px; } +h1.groupheader { + font-size: 150%; +} + h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); font-size: 150%; font-weight: normal; margin-top: 1.75em; @@ -46,27 +439,18 @@ h1, h2, h3, h4, h5, h6 { } h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; + text-shadow: 0 0 15px var(--glow-color); } dt { font-weight: bold; } -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; -} - p.startli, p.startdd { margin-top: 2px; } -th p.starttd, p.intertd, p.endtd { +th p.starttd, th p.intertd, th p.endtd { font-size: 100%; font-weight: 700; } @@ -103,59 +487,126 @@ caption { } span.legend { - font-size: 70%; - text-align: center; + font-size: 70%; + text-align: center; } h3.version { - font-size: 90%; - text-align: center; + font-size: 90%; + text-align: center; } -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); } -div.qindex, div.navpath { +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; width: 100%; line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); } -div.navtab { - margin-right: 15px; +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; } +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + /* @group Link Styling */ a { - color: #3D578C; + color: var(--page-link-color); font-weight: normal; text-decoration: none; } .contents a:visited { - color: #4665A2; + color: var(--page-visited-link-color); } a:hover { - text-decoration: underline; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #FFFFFF; - border: 1px double #869DCA; + text-decoration: none; + background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); } -.contents a.qindexHL:visited { - color: #FFFFFF; +a:hover > span.arrow { + text-decoration: none; + background : var(--nav-background-color); } a.el { @@ -166,12 +617,39 @@ a.elRef { } a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; + color: var(--code-link-color); } a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } /* @end */ @@ -179,8 +657,35 @@ dl.el { margin-left: -1cm; } +ul.check { + list-style:none; + text-indent: -16px; + padding-left: 38px; +} +li.unchecked:before { + content: "\2610\A0"; +} +li.checked:before { + content: "\2611\A0"; +} + +ol { + text-indent: 0px; +} + ul { - overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ + text-indent: 0px; + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; } #side-nav ul { @@ -194,35 +699,70 @@ ul { .fragment { text-align: left; direction: ltr; - overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-x: auto; overflow-y: hidden; + position: relative; + min-height: 12px; + margin: 10px 0px; + padding: 10px 10px; + border: 1px solid var(--fragment-border-color); + border-radius: 4px; + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); } pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; + word-wrap: break-word; + font-size: 10pt; + line-height: 125%; + font-family: var(--font-family-monospace); +} + +.clipboard { + width: 24px; + height: 24px; + right: 5px; + top: 5px; + opacity: 0; + position: absolute; + display: inline; overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; + fill: var(--fragment-foreground-color); + justify-content: center; + align-items: center; + cursor: pointer; +} + +.clipboard.success { + border: 1px solid var(--fragment-foreground-color); + border-radius: 4px; +} + +.fragment:hover .clipboard, .clipboard.success { + opacity: .28; +} + +.clipboard:hover, .clipboard.success { + opacity: 1 !important; } -div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; +.clipboard:active:not([class~=success]) svg { + transform: scale(.91); +} + +.clipboard.success svg { + fill: var(--fragment-copy-ok-color); +} + +.clipboard.success { + border-color: var(--fragment-copy-ok-color); } div.line { - font-family: monospace, fixed; + font-family: var(--font-family-monospace); font-size: 13px; min-height: 13px; - line-height: 1.0; + line-height: 1.2; text-wrap: unrestricted; white-space: -moz-pre-wrap; /* Moz */ white-space: -pre-wrap; /* Opera 4-6 */ @@ -251,24 +791,40 @@ div.line:after { } div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); } +span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; + display: inline-block; + width: 12px; + height: 12px; + background-repeat:no-repeat; + background-position:center; +} span.lineno { padding-right: 4px; + margin-right: 9px; text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); white-space: pre; } -span.lineno a { - background-color: #D8D8D8; +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); } span.lineno a:hover { - background-color: #C8C8C8; + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); } .lineno { @@ -280,24 +836,6 @@ span.lineno a:hover { user-select: none; } -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #FFFFFF; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); -} - div.classindex ul { list-style: none; padding-left: 0; @@ -319,8 +857,7 @@ div.groupText { } body { - background-color: white; - color: black; + color: var(--page-foreground-color); margin: 0; } @@ -330,33 +867,15 @@ div.contents { margin-right: 8px; } -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - p.formulaDsp { text-align: center; } -img.formulaDsp { - +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; } img.formulaInl, img.inline { @@ -382,89 +901,74 @@ address.footer { img.footer { border: 0px; vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; } /* @group Code Colorization */ span.keyword { - color: #008000 + color: var(--code-keyword-color); } span.keywordtype { - color: #604020 + color: var(--code-type-keyword-color); } span.keywordflow { - color: #e08000 + color: var(--code-flow-keyword-color); } span.comment { - color: #800000 + color: var(--code-comment-color); } span.preprocessor { - color: #806020 + color: var(--code-preprocessor-color); } span.stringliteral { - color: #002080 + color: var(--code-string-literal-color); } span.charliteral { - color: #008080 + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); } span.vhdldigit { - color: #ff00ff + color: var(--code-vhdl-digit-color); } span.vhdlchar { - color: #000000 + color: var(--code-vhdl-char-color); } span.vhdlkeyword { - color: #700070 + color: var(--code-vhdl-keyword-color); } span.vhdllogic { - color: #ff0000 + color: var(--code-vhdl-logic-color); } blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); margin: 0 24px 0 4px; padding: 0 12px 0 16px; } -blockquote.DocNodeRTL { - border-left: 0; - border-right: 2px solid #9CAFD4; - margin: 0 4px 0 24px; - padding: 0 16px 0 12px; -} - /* @end */ -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - td.tiny { font-size: 75%; } @@ -472,18 +976,19 @@ td.tiny { .dirtab { padding: 4px; border-collapse: collapse; - border: 1px solid #A3B4D7; + border: 1px solid var(--table-cell-border-color); } th.dirtab { - background: #EBEFF6; + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); font-weight: bold; } hr { height: 0px; border: none; - border-top: 1px solid #4A6AAA; + border-top: 1px solid var(--separator-color); } hr.footer { @@ -511,14 +1016,14 @@ table.memberdecls { } .memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; + background-color: var(--memdecl-background-color); border: none; margin: 4px; padding: 1px 0 0 8px; @@ -526,11 +1031,11 @@ table.memberdecls { .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; - color: #555; + color: var(--memdecl-foreground-color); } .memSeparator { - border-bottom: 1px solid #DEE4F0; + border-bottom: 1px solid var(--memdecl-separator-color); line-height: 1px; margin: 0px; padding: 0px; @@ -545,7 +1050,7 @@ table.memberdecls { } .memTemplParams { - color: #4665A2; + color: var(--memdecl-template-color); white-space: nowrap; font-size: 80%; } @@ -558,15 +1063,15 @@ table.memberdecls { .memtitle { padding: 8px; - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); border-top-right-radius: 4px; border-top-left-radius: 4px; margin-bottom: -1px; - background-image: url('nav_f.png'); + background-image: var(--memdef-title-gradient-image); background-repeat: repeat-x; - background-color: #E2E8F2; + background-color: var(--memdef-title-background-color); line-height: 1.25; font-weight: 300; float:left; @@ -581,20 +1086,11 @@ table.memberdecls { .memtemplate { font-size: 80%; - color: #4665A2; + color: var(--memdef-template-color); font-weight: normal; margin-left: 9px; } -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - .mempage { width: 100%; } @@ -613,7 +1109,7 @@ table.memberdecls { } .memitem.glow { - box-shadow: 0 0 15px cyan; + box-shadow: 0 0 15px var(--glow-color); } .memname { @@ -626,41 +1122,32 @@ table.memberdecls { } .memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); padding: 6px 0px 6px 0px; - color: #253555; + color: var(--memdef-proto-text-color); font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-color: #DFE5F1; - /* opera specific markup */ + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - } .overload { - font-family: "courier new",courier,monospace; + font-family: var(--font-family-monospace); font-size: 65%; } .memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); padding: 6px 10px 2px 10px; - background-color: #FBFCFD; border-top-width: 0; background-image:url('nav_g.png'); background-repeat:repeat-x; - background-color: #FFFFFF; + background-color: var(--memdef-doc-background-color); /* opera specific markup */ border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; @@ -690,36 +1177,44 @@ dl.reflist dd { .paramtype { white-space: nowrap; + padding: 0px; + padding-bottom: 1px; } .paramname { - color: #602020; white-space: nowrap; + padding: 0px; + padding-bottom: 1px; + margin-left: 2px; } + .paramname em { + color: var(--memdef-param-name-color); font-style: normal; + margin-right: 1px; } -.paramname code { - line-height: 14px; + +.paramname .paramdefval { + font-family: var(--font-family-monospace); } .params, .retval, .exception, .tparams { margin-left: 0px; padding-left: 0px; -} +} .params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { font-weight: bold; vertical-align: top; } - + .params .paramtype, .tparams .paramtype { font-style: italic; vertical-align: top; -} - +} + .params .paramdir, .tparams .paramdir { - font-family: "courier new",courier,monospace; + font-family: var(--font-family-monospace); vertical-align: top; } @@ -743,13 +1238,13 @@ span.mlabels { } span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); text-shadow: none; - color: white; + color: var(--label-foreground-color); margin-right: 4px; padding: 2px 3px; border-radius: 3px; @@ -766,8 +1261,8 @@ span.mlabel { div.directory { margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); width: 100%; } @@ -803,9 +1298,14 @@ div.directory { border-left: 1px solid rgba(0,0,0,0.05); } +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + .directory tr.even { padding-left: 6px; - background-color: #F7F8FB; + background-color: var(--index-even-item-bg-color); } .directory img { @@ -823,11 +1323,11 @@ div.directory { cursor: pointer; padding-left: 2px; padding-right: 2px; - color: #3D578C; + color: var(--page-link-color); } .arrow { - color: #9CAFD4; + color: var(--nav-arrow-color); -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; @@ -841,14 +1341,15 @@ div.directory { } .icon { - font-family: Arial, Helvetica; + font-family: var(--font-family-icon); + line-height: normal; font-weight: bold; font-size: 12px; height: 14px; width: 16px; display: inline-block; - background-color: #728DC1; - color: white; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); text-align: center; border-radius: 4px; margin-left: 2px; @@ -865,8 +1366,7 @@ div.directory { width: 24px; height: 18px; margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; + background-image:var(--icon-folder-open-image); background-repeat: repeat-y; vertical-align:top; display: inline-block; @@ -876,8 +1376,7 @@ div.directory { width: 24px; height: 18px; margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; + background-image:var(--icon-folder-closed-image); background-repeat: repeat-y; vertical-align:top; display: inline-block; @@ -887,17 +1386,13 @@ div.directory { width: 24px; height: 18px; margin-bottom: 4px; - background-image:url('doc.png'); + background-image:var(--icon-doc-image); background-position: 0px -4px; background-repeat: repeat-y; vertical-align:top; display: inline-block; } -table.directory { - font: 400 14px Roboto,sans-serif; -} - /* @end */ div.dynheader { @@ -912,7 +1407,7 @@ div.dynheader { address { font-style: normal; - color: #2A3D61; + color: var(--footer-foreground-color); } table.doxtable caption { @@ -926,28 +1421,23 @@ table.doxtable { } table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; + border: 1px solid var(--table-cell-border-color); padding: 3px 7px 2px; } table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); font-size: 110%; padding-bottom: 4px; padding-top: 5px; } table.fieldtable { - /*width: 100%;*/ margin-bottom: 10px; - border: 1px solid #A8B8D9; + border: 1px solid var(--memdef-border-color); border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); } @@ -955,10 +1445,10 @@ table.fieldtable { padding: 3px 7px 2px; } -.fieldtable td.fieldtype, .fieldtable td.fieldname { +.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fieldinit { white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); vertical-align: top; } @@ -966,15 +1456,20 @@ table.fieldtable { padding-top: 3px; } +.fieldtable td.fieldinit { + padding-top: 3px; + text-align: right; +} + + .fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ + border-bottom: 1px solid var(--memdef-border-color); } .fieldtable td.fielddoc p:first-child { margin-top: 0px; -} - +} + .fieldtable td.fielddoc p:last-child { margin-bottom: 2px; } @@ -984,22 +1479,18 @@ table.fieldtable { } .fieldtable th { - background-image:url('nav_f.png'); + background-image: var(--memdef-title-gradient-image); background-repeat:repeat-x; - background-color: #E2E8F2; + background-color: var(--memdef-title-background-color); font-size: 90%; - color: #253555; + color: var(--memdef-proto-text-color); padding-bottom: 4px; padding-top: 5px; text-align:left; font-weight: 400; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; + border-bottom: 1px solid var(--memdef-border-color); } @@ -1007,7 +1498,7 @@ table.fieldtable { top: 0px; left: 10px; height: 36px; - background-image: url('tab_b.png'); + background-image: var(--nav-gradient-image); z-index: 101; overflow: hidden; font-size: 13px; @@ -1016,13 +1507,13 @@ table.fieldtable { .navpath ul { font-size: 11px; - background-image:url('tab_b.png'); + background-image: var(--nav-gradient-image); background-repeat:repeat-x; background-position: 0 -5px; height:30px; line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); overflow:hidden; margin:0px; padding:0px; @@ -1034,27 +1525,27 @@ table.fieldtable { float:left; padding-left:10px; padding-right:15px; - background-image:url('bc_s.png'); + background-image:var(--nav-breadcrumb-image); background-repeat:no-repeat; background-position:right; - color:#364D7C; + color: var(--nav-foreground-color); } .navpath li.navelem a { height:32px; display:block; - text-decoration: none; outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; } .navpath li.navelem a:hover { - color:#6884BD; + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); } .navpath li.footer @@ -1066,7 +1557,7 @@ table.fieldtable { background-image:none; background-repeat:no-repeat; background-position:right; - color:#364D7C; + color: var(--footer-foreground-color); font-size: 8pt; } @@ -1078,7 +1569,7 @@ div.summary padding-right: 5px; width: 50%; text-align: right; -} +} div.summary a { @@ -1093,7 +1584,7 @@ table.classindex margin-right: 3%; width: 94%; border: 0; - border-spacing: 0; + border-spacing: 0; padding: 0; } @@ -1111,11 +1602,11 @@ div.ingroups a div.header { - background-image:url('nav_h.png'); + background-image: var(--header-gradient-image); background-repeat:repeat-x; - background-color: #F9FAFC; + background-color: var(--header-background-color); margin: 0px; - border-bottom: 1px solid #C4CFE5; + border-bottom: 1px solid var(--header-separator-color); } div.headertitle @@ -1132,17 +1623,13 @@ dl { padding: 0 0 0 0; } -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +/* + dl.section { margin-left: 0px; padding-left: 0px; } -dl.section.DocNodeRTL { - margin-right: 0px; - padding-right: 0px; -} - dl.note { margin-left: -7px; padding-left: 3px; @@ -1150,33 +1637,13 @@ dl.note { border-color: #D0C000; } -dl.note.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention { +dl.warning, dl.attention, dl.important { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #FF0000; } -dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #FF0000; -} - dl.pre, dl.post, dl.invariant { margin-left: -7px; padding-left: 3px; @@ -1184,16 +1651,6 @@ dl.pre, dl.post, dl.invariant { border-color: #00D000; } -dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00D000; -} - dl.deprecated { margin-left: -7px; padding-left: 3px; @@ -1201,16 +1658,6 @@ dl.deprecated { border-color: #505050; } -dl.deprecated.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #505050; -} - dl.todo { margin-left: -7px; padding-left: 3px; @@ -1218,16 +1665,6 @@ dl.todo { border-color: #00C0E0; } -dl.todo.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00C0E0; -} - dl.test { margin-left: -7px; padding-left: 3px; @@ -1235,16 +1672,6 @@ dl.test { border-color: #3030E0; } -dl.test.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #3030E0; -} - dl.bug { margin-left: -7px; padding-left: 3px; @@ -1252,20 +1679,110 @@ dl.bug { border-color: #C08050; } -dl.bug.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #C08050; +*/ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.important, dl.note, dl.deprecated, dl.bug, +dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; + border-radius: 4px; } dl.section dd { - margin-bottom: 6px; + margin-bottom: 2px; } +dl.warning, dl.attention, dl.important { + background: var(--warning-color-bg); + border-left: 8px solid var(--warning-color-hl); + color: var(--warning-color-text); +} + +dl.warning dt, dl.attention dt, dl.important dt { + color: var(--warning-color-hl); +} + +dl.note, dl.remark { + background: var(--note-color-bg); + border-left: 8px solid var(--note-color-hl); + color: var(--note-color-text); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-hl); +} + +dl.todo { + background: var(--todo-color-bg); + border-left: 8px solid var(--todo-color-hl); + color: var(--todo-color-text); +} + +dl.todo dt { + color: var(--todo-color-hl); +} + +dl.test { + background: var(--test-color-bg); + border-left: 8px solid var(--test-color-hl); + color: var(--test-color-text); +} + +dl.test dt { + color: var(--test-color-hl); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.bug { + background: var(--bug-color-bg); + border-left: 8px solid var(--bug-color-hl); + color: var(--bug-color-text); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.deprecated { + background: var(--deprecated-color-bg); + border-left: 8px solid var(--deprecated-color-hl); + color: var(--deprecated-color-text); +} + +dl.deprecated dt a { + color: var(--deprecated-color-hl) !important; +} + +dl.note dd, dl.warning dd, dl.pre dd, dl.post dd, +dl.remark dd, dl.attention dd, dl.important dd, dl.invariant dd, +dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color-bg); + border-left: 8px solid var(--invariant-color-hl); + color: var(--invariant-color-text); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-hl); +} + + +#projectrow +{ + height: 56px; +} #projectlogo { @@ -1273,34 +1790,38 @@ dl.section dd { vertical-align: bottom; border-collapse: separate; } - + #projectlogo img -{ +{ border: 0px none; } - + #projectalign { vertical-align: middle; + padding-left: 0.5em; } #projectname { - font: 300% Tahoma, Arial,sans-serif; + font-size: 200%; + font-family: var(--font-family-title); margin: 0px; padding: 2px 0px; } - + #projectbrief { - font: 120% Tahoma, Arial,sans-serif; + font-size: 90%; + font-family: var(--font-family-title); margin: 0px; padding: 0px; } #projectnumber { - font: 50% Tahoma, Arial,sans-serif; + font-size: 50%; + font-family: 50% var(--font-family-title); margin: 0px; padding: 0px; } @@ -1310,7 +1831,8 @@ dl.section dd { padding: 0px; margin: 0px; width: 100%; - border-bottom: 1px solid #5373B4; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); } .image @@ -1343,32 +1865,29 @@ dl.section dd { font-weight: bold; } -div.zoom -{ - border: 1px solid #90A5CE; -} - dl.citelist { margin-bottom:50px; } dl.citelist dt { - color:#334975; + color:var(--citation-label-color); float:left; font-weight:bold; margin-right:10px; padding:5px; + text-align:right; + width:52px; } dl.citelist dd { - margin:2px 0; + margin:2px 0 2px 72px; padding:5px 0; } div.toc { padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); border-radius: 7px 7px 7px 7px; float: right; height: auto; @@ -1376,28 +1895,17 @@ div.toc { width: 200px; } -.PageDocRTL-title div.toc { - float: left !important; - text-align: right; -} - div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); margin-top: 5px; padding-left: 10px; padding-top: 2px; } -.PageDocRTL-title div.toc li { - background-position-x: right !important; - padding-left: 0 !important; - padding-right: 10px; -} - div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); border-bottom: 0 none; margin: 0; } @@ -1406,47 +1914,34 @@ div.toc ul { list-style: none outside none; border: medium none; padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; } -div.toc li.level2 { +div.toc li[class^='level'] { margin-left: 15px; } -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -.PageDocRTL-title div.toc li.level1 { - margin-left: 0 !important; - margin-right: 0; +div.toc li.level1 { + margin-left: 0px; } -.PageDocRTL-title div.toc li.level2 { - margin-left: 0 !important; - margin-right: 15px; +div.toc li.empty { + background-image: none; + margin-top: 0px; } -.PageDocRTL-title div.toc li.level3 { - margin-left: 0 !important; - margin-right: 30px; +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ } -.PageDocRTL-title div.toc li.level4 { - margin-left: 0 !important; - margin-right: 45px; +span.obfuscator { + display: none; } .inherit_header { font-weight: bold; - color: gray; + color: var(--inherit-header-color); cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; @@ -1478,11 +1973,12 @@ tr.heading h2 { #powerTip { cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; + box-shadow: var(--tooltip-shadow); display: none; font-size: smaller; max-width: 80%; @@ -1493,7 +1989,7 @@ tr.heading h2 { } #powerTip div.ttdoc { - color: grey; + color: var(--tooltip-doc-color); font-style: italic; } @@ -1501,18 +1997,24 @@ tr.heading h2 { font-weight: bold; } +#powerTip a { + color: var(--tooltip-link-color); +} + #powerTip div.ttname { font-weight: bold; } #powerTip div.ttdeci { - color: #006318; + color: var(--tooltip-declaration-color); } #powerTip div { margin: 0px; padding: 0px; - font: 12px/16px Roboto,sans-serif; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; } #powerTip:before, #powerTip:after { @@ -1557,12 +2059,12 @@ tr.heading h2 { } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #FFFFFF; + border-top-color: var(--tooltip-background-color); border-width: 10px; margin: 0px -10px; } -#powerTip.n:before { - border-top-color: #808080; +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); border-width: 11px; margin: 0px -11px; } @@ -1585,13 +2087,13 @@ tr.heading h2 { } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #FFFFFF; + border-bottom-color: var(--tooltip-background-color); border-width: 10px; margin: 0px -10px; } #powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; + border-bottom-color: var(--tooltip-border-color); border-width: 11px; margin: 0px -11px; } @@ -1612,13 +2114,13 @@ tr.heading h2 { left: 100%; } #powerTip.e:after { - border-left-color: #FFFFFF; + border-left-color: var(--tooltip-border-color); border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.e:before { - border-left-color: #808080; + border-left-color: var(--tooltip-border-color); border-width: 11px; top: 50%; margin-top: -11px; @@ -1628,13 +2130,13 @@ tr.heading h2 { right: 100%; } #powerTip.w:after { - border-right-color: #FFFFFF; + border-right-color: var(--tooltip-border-color); border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.w:before { - border-right-color: #808080; + border-right-color: var(--tooltip-border-color); border-width: 11px; top: 50%; margin-top: -11px; @@ -1668,7 +2170,7 @@ table.markdownTable { } table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; + border: 1px solid var(--table-cell-border-color); padding: 3px 7px 2px; } @@ -1676,8 +2178,8 @@ table.markdownTable tr { } th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); font-size: 110%; padding-bottom: 4px; padding-top: 5px; @@ -1695,36 +2197,51 @@ th.markdownTableHeadCenter, td.markdownTableBodyCenter { text-align: center } -.DocNodeRTL { - text-align: right; - direction: rtl; +tt, code, kbd, samp +{ + display: inline-block; } +/* @end */ -.DocNodeLTR { - text-align: left; - direction: ltr; +u { + text-decoration: underline; } -table.DocNodeRTL { - width: auto; - margin-right: 0; - margin-left: auto; +details>summary { + list-style-type: none; } -table.DocNodeLTR { - width: auto; - margin-right: auto; - margin-left: 0; +details > summary::-webkit-details-marker { + display: none; } -tt, code, kbd, samp -{ - display: inline-block; - direction:ltr; +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; } -/* @end */ -u { - text-decoration: underline; +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +body { + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); } diff --git a/docs/html/doxygen.png b/docs/html/doxygen.png deleted file mode 100644 index 3ff17d807fd8aa003bed8bb2a69e8f0909592fd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3779 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 diff --git a/docs/html/doxygen.svg b/docs/html/doxygen.svg new file mode 100644 index 0000000..79a7635 --- /dev/null +++ b/docs/html/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/doxygen_crawl.html b/docs/html/doxygen_crawl.html new file mode 100644 index 0000000..4ff909c --- /dev/null +++ b/docs/html/doxygen_crawl.html @@ -0,0 +1,322 @@ + + + +Validator / crawler helper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dynsections.js b/docs/html/dynsections.js index 3174bd7..b05f4c8 100644 --- a/docs/html/dynsections.js +++ b/docs/html/dynsections.js @@ -22,100 +22,177 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); +function toggleVisibility(linkObj) { + return dynsection.toggleVisibility(linkObj); } -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + const id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + const start = $(this).attr('data-start'); + const end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + const line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',codefold.plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); + }, +}; /* @license-end */ diff --git a/docs/html/files.html b/docs/html/files.html index 2ab60c7..669232f 100644 --- a/docs/html/files.html +++ b/docs/html/files.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: File List + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,34 +30,45 @@
    - + + +/* @license-end */ +
    +
    +
    -
    -
    File List
    +
    File List
    Here is a list of all files with brief descriptions:
    - - + + +
     LTAPI.cppLiveTraffic API
     LTAPI.hLiveTraffic API
     docs
     LTAPI.cppLiveTraffic API
     LTAPI.hLiveTraffic API
    +
    diff --git a/docs/html/folderclosed.png b/docs/html/folderclosed.png deleted file mode 100644 index bb8ab35edce8e97554e360005ee9fc5bffb36e66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000 + + + + + + + + + diff --git a/docs/html/folderclosedd.svg b/docs/html/folderclosedd.svg new file mode 100644 index 0000000..52f0166 --- /dev/null +++ b/docs/html/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/docs/html/folderopen.png b/docs/html/folderopen.png deleted file mode 100644 index d6c7f676a3b3ef8c2c307d319dff3c6a604eb227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA diff --git a/docs/html/folderopen.svg b/docs/html/folderopen.svg new file mode 100644 index 0000000..f6896dd --- /dev/null +++ b/docs/html/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/docs/html/folderopend.svg b/docs/html/folderopend.svg new file mode 100644 index 0000000..2d1f06e --- /dev/null +++ b/docs/html/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docs/html/functions.html b/docs/html/functions.html index 22135eb..fe11427 100644 --- a/docs/html/functions.html +++ b/docs/html/functions.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: Class Members + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,600 +30,288 @@
    - + + +/* @license-end */ +

    +
    +
    Here is a list of all class members with links to the classes they belong to:
    -

    - a -

    +
    diff --git a/docs/html/functions_enum.html b/docs/html/functions_enum.html index 081bad3..069e851 100644 --- a/docs/html/functions_enum.html +++ b/docs/html/functions_enum.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: Class Members - Enumerations + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,29 +30,38 @@
    - + + +/* @license-end */ +
    +
    +
      -
    • LTFlightPhase -: LTAPIAircraft -
    • +
      Here is a list of all enums with links to the classes they belong to:
    +
    diff --git a/docs/html/functions_eval.html b/docs/html/functions_eval.html index 24a6620..53178be 100644 --- a/docs/html/functions_eval.html +++ b/docs/html/functions_eval.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: Class Members - Enumerator + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,77 +30,55 @@
    - + + +/* @license-end */ +

    +
    +
    +
    diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html index 5f7d558..78c9962 100644 --- a/docs/html/functions_func.html +++ b/docs/html/functions_func.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: Class Members - Functions + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,303 +30,169 @@
    - + + +/* @license-end */ +
    +
    +
    -  +
    Here is a list of all functions with links to the classes they belong to:
    + +

    - c -

    + -

    - c -

    +
    diff --git a/docs/html/functions_type.html b/docs/html/functions_type.html index ac2de74..b9935d4 100644 --- a/docs/html/functions_type.html +++ b/docs/html/functions_type.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: Class Members - Typedefs + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,29 +30,38 @@
    - + + +/* @license-end */ +

    +
    +
      -
    • fCreateAcObject -: LTAPIConnect -
    • +
      Here is a list of all typedefs with links to the classes they belong to:
    +
    diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html index ae87a85..170e5ea 100644 --- a/docs/html/functions_vars.html +++ b/docs/html/functions_vars.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: Class Members - Variables + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,308 +30,182 @@
    - + + +/* @license-end */ +
    +
    +
    -  - -

    - a -

    +
    diff --git a/docs/html/globals.html b/docs/html/globals.html index b1e4158..59e6ecd 100644 --- a/docs/html/globals.html +++ b/docs/html/globals.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: File Members + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,62 +30,51 @@
    - + + +/* @license-end */ +

    +
    +
    Here is a list of all file members with links to the files they belong to:
    +
    diff --git a/docs/html/globals_defs.html b/docs/html/globals_defs.html index 648c393..fd23c41 100644 --- a/docs/html/globals_defs.html +++ b/docs/html/globals_defs.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: File Members + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,38 +30,41 @@
    - + + +/* @license-end */ +
    +
    +
    +
    diff --git a/docs/html/globals_type.html b/docs/html/globals_type.html index fa17195..9ee808e 100644 --- a/docs/html/globals_type.html +++ b/docs/html/globals_type.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: File Members + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,35 +30,40 @@
    - + + +/* @license-end */ +

    +
    +
      -
    • ListLTAPIAircraft -: LTAPI.h -
    • -
    • MapLTAPIAircraft -: LTAPI.h -
    • -
    • SPtrLTAPIAircraft -: LTAPI.h -
    • +
      Here is a list of all typedefs with links to the files they belong to:
    +
    diff --git a/docs/html/globals_vars.html b/docs/html/globals_vars.html index 72a9378..60801a4 100644 --- a/docs/html/globals_vars.html +++ b/docs/html/globals_vars.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: File Members + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,41 +30,44 @@
    - + + +/* @license-end */ +
    +
    +
      -
    • LTAPIBulkData_v120 -: LTAPI.h -
    • -
    • LTAPIBulkData_v122 -: LTAPI.h -
    • -
    • LTAPIBulkInfoTexts_v120 -: LTAPI.h -
    • -
    • LTAPIBulkInfoTexts_v122 -: LTAPI.h -
    • -
    • LTAPIBulkInfoTexts_v240 -: LTAPI.h -
    • +
      Here is a list of all variables with links to the files they belong to:
    +
    diff --git a/docs/html/index.html b/docs/html/index.html index 7173ec5..22cd093 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: LTAPI - LiveTraffic API + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,34 +30,49 @@
    - + + +/* @license-end */ +

    -
    -
    -
    LTAPI - LiveTraffic API
    +
    + +
    +
    LTAPI - LiveTraffic API
    -

    X-Plane plugin to find LiveATC strAPI to access LiveTraffic's aircraft information.

    +

    API to access LiveTraffic's aircraft information.

    +
    +
    diff --git a/docs/html/jquery.js b/docs/html/jquery.js index 103c32d..875ada7 100644 --- a/docs/html/jquery.js +++ b/docs/html/jquery.js @@ -1,18 +1,143 @@ -/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp( +"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType +}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c +)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){ +return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll( +":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id") +)&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push( +"\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test( +a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null, +null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne +).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for( +var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n; +return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0, +r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r] +,C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each( +function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r, +"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})} +),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each( +"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
    ",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
    "),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
    ").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
    "),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
    "),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element -},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** +* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(y){"use strict";y.ui=y.ui||{};y.ui.version="1.13.2";var n,i=0,h=Array.prototype.hasOwnProperty,a=Array.prototype.slice;y.cleanData=(n=y.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=y._data(i,"events"))&&e.remove&&y(i).triggerHandler("remove");n(t)}),y.widget=function(t,i,e){var s,n,o,h={},a=t.split(".")[0],r=a+"-"+(t=t.split(".")[1]);return e||(e=i,i=y.Widget),Array.isArray(e)&&(e=y.extend.apply(null,[{}].concat(e))),y.expr.pseudos[r.toLowerCase()]=function(t){return!!y.data(t,r)},y[a]=y[a]||{},s=y[a][t],n=y[a][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},y.extend(n,s,{version:e.version,_proto:y.extend({},e),_childConstructors:[]}),(o=new i).options=y.widget.extend({},o.options),y.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)} +function o(t){return i.prototype[e].apply(this,t)}h[e]="function"==typeof s?function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:s}),n.prototype=y.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},h,{constructor:n,namespace:a,widgetName:t,widgetFullName:r}),s?(y.each(s._childConstructors,function(t,e){var i=e.prototype;y.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),y.widget.bridge(t,n),n},y.widget.extend=function(t){for(var e,i,s=a.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t +){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t +]=y.widget.extend({},this.options[t]),n=0;n
    "),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i}, +getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within, +s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n
    ").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})), +this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t +).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split( +","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add( +this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{ +width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(), +!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){ +this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height +,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e
    ").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e, +i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left +)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e +){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0), +i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth( +)-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e, +function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0 +]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right-1){ +targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se", +"n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if( +session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)} +closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if( +session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE, +function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset); +tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList, +finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight())); +return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")} +function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(), +elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight, +viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + */!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b, +"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery); +/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)), +mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend( +$.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy( +this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData( +"smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id" +).indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?( +this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for( +var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){ +return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if(( +!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&( +this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0 +]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass( +"highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){ +t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]" +)||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){ +t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"), +a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i, +downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2) +)&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t +)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0), +canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}}, +rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})} +return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1, +bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); diff --git a/docs/html/md_README.html b/docs/html/md_README.html new file mode 100644 index 0000000..236acaf --- /dev/null +++ b/docs/html/md_README.html @@ -0,0 +1,130 @@ + + + + + + + +LTAPI: LTAPI + + + + + + + + + +
    +
    + + + + + + +
    +
    LTAPI +
    +
    API to access LiveTraffic's aircraft information
    +
    +
    + + + + + + + + +
    +
    +
    +
    LTAPI
    +
    +
    +

    API to access LiveTraffic's aircraft information. Data transfer from LiveTraffic to your plugin is by dataRefs in a fast, efficient way: LiveTraffic copies data of several planes combined into defined structures. LTAPI handles all that in the background and provides you with an array of aircraft information with numerical info like position, heading, speed and textual info like type, registration, call sign, flight number.

    +

    LTAPI files and Documentation

    +

    You only need to include 2 files into your own projects:

    + +

    Both files include lots of comments in Doxygen style as documentation. The generated Doxygen documentation is available in docs/html/index.html or on GitHub pages.

    +

    Example Plugin Implementation

    +

    Build all Platforms

    +

    The Example folder includes an example X-Plane plugin (based on the Hello World plugin), which demonstrates the most simplistic usage as well as an enhanced way of using the API by subclassing the provided LTAPIAircraft class.

    +

    The plugin just opens two windows and shows information about LiveTraffic's aircrafts as text.

    +

    Simple Example

    +

    ...starts at around line 195 of LTAPIExample.xpp. Look for MARK: LTAPI Simple Example. It just

    +
      +
    • uses a static LTAPIConnect object,
    • +
    • calls its function UpdateAcList() every second via a flight loop callback, and
    • +
    • loops the resulting map of aircrafts for display of textual information in the output window.
    • +
    +

    Enhanced Example

    +

    ...starts at around line 269 of LTAPIExample.xpp. Look for MARK: LTAPI Enhanced Example. This demonstrates how to use LTAPIAircraft as a base class for some own class. Often, you have your own way of representing aircrafts in your app already. You can add LTAPIAircraft as a base class and then don't need to copy information back and forth but have access to it right from within your own class.

    +

    For this to work you

    +
      +
    • need to subclass LTAPIAircraft,
    • +
    • may want to do init/cleanup work in the constructor and destructor,
    • +
    • may want to override virtual bool updateAircraft() so that you can do some own work whenever a/c information changes,
    • +
    • must provide a callback for creating new empty objects when LTAPIConnect::UpdateAcList() finds a new aircraft in the sky.
    • +
    • most likely want to handle the list of removed aircrafts (before they are destroyed) similar to what LoopCBUpdateAcListEnhanced does.
    • +
    +

    All the rest of the code deals with the example's functionality, which is:

    +
      +
    • The class EnhAircraft also manages the line number in the output display, i.e. once it found a line it stays there. Also allows to show text "---removed---" for some time when a/c was removed.
    • +
    • Each line provides more information as the simple example and renders that info in fairly well aligned columns.
    • +
    +

    Building the Example

    +

    IDEs

    +
      +
    • Mac: Open the XCode project LTAPI.xcodeproj. There might be paths you way want to check: In the Build Settings there is a user-defined setting XPLANE11_ROOT pointing to the root folder of your X-Plane 11 installation. If that is set correctly then the resulting plugin is installed there correctly in the plugins folder.
    • +
    • Windows: Open the Visual Studio solution LTAPI.sln. Also here you might need to check directories. There is a copy command to my X-Plane installation in the Post Build Event.
    • +
    +

    Docker

    +

    As I don't have a Linux environment myself I provide a Docker environment to build the Linux version as well as the Windows and the Mac version based on a CMakeList. I have not tested the resulting Linux binary.

      +
    • You need Docker installed. Then, with the Docker app running:
    • +
    • cd Example/docker
    • +
    • make
    • +
    +

    You will find the resulting binaries as build-<platform>/<platform>_x64/LTAPIExample.xpl.

    +

    Github Actions

    +

    The LTAPI Example builds on Github, see .github/workflows/build.yml.

    +

    Installation of the Example

    +

    The LTAPI Example plugin is just one small binary file to be installed like any other X-Plane plugin under <X-Plane>/Resources/plugins. For all 3 platforms you end up with the following folder and file structure:

    +
    <X-Plane>/Resources/plugins/
    +
    LTAPIExample/
    +
    lin_x64/
    +
    LTAPIExample.xpl
    +
    mac_x64/
    +
    LTAPIExample.xpl
    +
    win_x64/
    +
    LTAPIExample.xpl
    +

    What it looks like

    +

    This is a screenshot taken from the Example plugin included in this project:

    +

    LTAPI Example Screenshot

    +
    +
    + + +
    + + diff --git a/docs/html/menu.js b/docs/html/menu.js index d18a2fe..0fd1e99 100644 --- a/docs/html/menu.js +++ b/docs/html/menu.js @@ -22,13 +22,20 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { +function initMenu(relPath,searchEnabled,serverSide,searchPage,search,treeview) { function makeTree(data,relPath) { - var result=''; + let result=''; if ('children' in data) { result+='
      '; - for (var i in data.children) { - result+='
    • '+ + for (let i in data.children) { + let url; + const link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
    • '+ data.children[i].text+''+ makeTree(data.children[i],relPath)+'
    • '; } @@ -36,15 +43,91 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { } return result; } - - $('#main-nav').append(makeTree(menudata,relPath)); - $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + let searchBoxHtml; if (searchEnabled) { if (serverSide) { - $('#main-menu').append('
    • '); + searchBoxHtml='
      '+ + '
      '+ + '
       '+ + ''+ + '
      '+ + '
      '+ + '
      '+ + '
      '; } else { - $('#main-menu').append('
    • '); + searchBoxHtml='
      '+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
      '; + } + } + + $('#main-nav').before('
      '+ + ''+ + ''+ + '
      '); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
    • '); + } + const $mainMenuState = $('#main-menu-state'); + let prevWidth = 0; + if ($mainMenuState.length) { + const initResizableIfExists = function() { + if (typeof initResizable==='function') initResizable(treeview); + } + // animate mobile menu + $mainMenuState.change(function() { + const $menu = $('#main-menu'); + let options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = () => $menu.css('display', 'block'); + $menu.hide().slideDown(options); + } else { + options['complete'] = () => $menu.css('display', 'none'); + $menu.show().slideUp(options); + } + }); + // set default menu visibility + const resetState = function() { + const $menu = $('#main-menu'); + const newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); } $('#main-menu').smartmenus(); } diff --git a/docs/html/menudata.js b/docs/html/menudata.js index f79cda5..84dfff2 100644 --- a/docs/html/menudata.js +++ b/docs/html/menudata.js @@ -24,11 +24,7 @@ */ var menudata={children:[ {text:"Main Page",url:"index.html"}, -{text:"Namespaces",url:"namespaces.html",children:[ -{text:"Namespace List",url:"namespaces.html"}, -{text:"Namespace Members",url:"namespacemembers.html",children:[ -{text:"All",url:"namespacemembers.html"}, -{text:"Functions",url:"namespacemembers_func.html"}]}]}, +{text:"Related Pages",url:"pages.html"}, {text:"Classes",url:"annotated.html",children:[ {text:"Class List",url:"annotated.html"}, {text:"Class Index",url:"classes.html"}, @@ -66,6 +62,7 @@ var menudata={children:[ {text:"n",url:"functions_func.html#index_n"}, {text:"r",url:"functions_func.html#index_r"}, {text:"s",url:"functions_func.html#index_s"}, +{text:"t",url:"functions_func.html#index_t"}, {text:"u",url:"functions_func.html#index_u"}, {text:"~",url:"functions_func.html#index__7E"}]}, {text:"Variables",url:"functions_vars.html",children:[ diff --git a/docs/html/minus.svg b/docs/html/minus.svg new file mode 100644 index 0000000..f70d0c1 --- /dev/null +++ b/docs/html/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/html/minusd.svg b/docs/html/minusd.svg new file mode 100644 index 0000000..5f8e879 --- /dev/null +++ b/docs/html/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/html/namespaceLTAPI.html b/docs/html/namespaceLTAPI.html deleted file mode 100644 index 32f45bf..0000000 --- a/docs/html/namespaceLTAPI.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - -LTAPI: LTAPI Namespace Reference - - - - - - -
      -
      - - - - - - -
      -
      LTAPI -
      -
      API to access LiveTraffic's aircraft information
      -
      -
      - - - - - - -
      -
      - -
      -
      LTAPI Namespace Reference
      -
      -
      - - - - - - - - -

      -Functions

      time_t timegm (struct tm *_Tm)
       Inverse for gmtime, i.e. converts struct tm to time_t in ZULU timezone. More...
       
      std::string hexStr (uint64_t n, unsigned minChars=6)
       Fairly fast conversion to hex string. More...
       
      -

      Function Documentation

      - -

      ◆ hexStr()

      - -
      -
      - - - - - - - - - - - - - - - - - - -
      std::string LTAPI::hexStr (uint64_t n,
      unsigned minChars = 6 
      )
      -
      - -

      Fairly fast conversion to hex string.

      -
      Parameters
      - - - -
      nThe number to convert
      minChars(optional, defaults to 6) minimum number of hex digits, pre-filled with 0 @return Upper-case hex string with at leastminDigits` characters
      -
      -
      -

      Idea is taken from std::to_chars implementation available with C++ 17

      - -
      -
      - -

      ◆ timegm()

      - -
      -
      - - - - - - - - -
      time_t LTAPI::timegm (struct tm * _Tm)
      -
      - -

      Inverse for gmtime, i.e. converts struct tm to time_t in ZULU timezone.

      -
      Parameters
      - - -
      _TmDate/time structure to convert
      -
      -
      -
      Returns
      Same Date/time, converted to time_tin ZULU timezone
      - -
      -
      -
      - - - - diff --git a/docs/html/namespacemembers.html b/docs/html/namespacemembers.html deleted file mode 100644 index 7127e63..0000000 --- a/docs/html/namespacemembers.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - -LTAPI: Namespace Members - - - - - - -
      -
      - - - - - - -
      -
      LTAPI -
      -
      API to access LiveTraffic's aircraft information
      -
      -
      - - - - - - -
      -
      -
      Here is a list of all namespace members with links to the namespace documentation for each member:
      -
      - - - - diff --git a/docs/html/namespacemembers_func.html b/docs/html/namespacemembers_func.html deleted file mode 100644 index ecbdd7d..0000000 --- a/docs/html/namespacemembers_func.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - -LTAPI: Namespace Members - - - - - - -
      -
      - - - - - - -
      -
      LTAPI -
      -
      API to access LiveTraffic's aircraft information
      -
      -
      - - - - - - -
      -
      -
      - - - - diff --git a/docs/html/namespaces.html b/docs/html/namespaces.html deleted file mode 100644 index 82b5be2..0000000 --- a/docs/html/namespaces.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -LTAPI: Namespace List - - - - - - -
      -
      - - - - - - -
      -
      LTAPI -
      -
      API to access LiveTraffic's aircraft information
      -
      -
      - - - - - - -
      -
      -
      -
      Namespace List
      -
      -
      -
      Here is a list of all namespaces with brief descriptions:
      - - -
       NLTAPI
      -
      -
      - - - - diff --git a/docs/html/nav_fd.png b/docs/html/nav_fd.png new file mode 100644 index 0000000000000000000000000000000000000000..032fbdd4c54f54fa9a2e6423b94ef4b2ebdfaceb GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQU#tajv*C{Z|C~*H7f|XvG1G8 zt7aS*L7xwMeS}!z6R#{C5tIw-s~AJ==F^i}x3XyJseHR@yF& zerFf(Zf;Dd{+(0lDIROL@Sj-Ju2JQ8&-n%4%q?>|^bShc&lR?}7HeMo@BDl5N(aHY Uj$gdr1MOz;boFyt=akR{0D!zeaR2}S literal 0 HcmV?d00001 diff --git a/docs/html/nav_hd.png b/docs/html/nav_hd.png new file mode 100644 index 0000000000000000000000000000000000000000..de80f18ad6488b9990303f267a76fdc83f0ffd80 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr8!2~3AUOE6t21`#D$B+ufw|9379#G(63FK{W z5s6W-eg#Jd_@e6*DPn)w;=|1H}Zvm9l6xXXB%>yL=NQU;mg M>FVdQ&MBb@0Bdt1Qvd(} literal 0 HcmV?d00001 diff --git a/docs/html/navtree.css b/docs/html/navtree.css new file mode 100644 index 0000000..69211d4 --- /dev/null +++ b/docs/html/navtree.css @@ -0,0 +1,149 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: var(--nav-text-active-color); + text-shadow: var(--nav-text-active-shadow); +} + +#nav-tree .selected .arrow { + color: var(--nav-arrow-selected-color); + text-shadow: none; +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px var(--font-family-nav); +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:var(--nav-text-active-color); +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: $width; + overflow : hidden; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:var(--nav-splitbar-image); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-repeat:repeat-x; + background-color: var(--nav-background-color); + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/docs/html/pages.html b/docs/html/pages.html new file mode 100644 index 0000000..7d88e13 --- /dev/null +++ b/docs/html/pages.html @@ -0,0 +1,72 @@ + + + + + + + +LTAPI: Related Pages + + + + + + + + + +
      +
      + + + + + + +
      +
      LTAPI +
      +
      API to access LiveTraffic's aircraft information
      +
      +
      + + + + + + + +
      +
      + +
      +
      Related Pages
      +
      +
      +
      Here is a list of all related documentation pages:
      + + +
       LTAPI
      +
      +
      + + +
      + + diff --git a/docs/html/plus.svg b/docs/html/plus.svg new file mode 100644 index 0000000..0752016 --- /dev/null +++ b/docs/html/plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/html/plusd.svg b/docs/html/plusd.svg new file mode 100644 index 0000000..0c65bfe --- /dev/null +++ b/docs/html/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/html/resize.js b/docs/html/resize.js new file mode 100644 index 0000000..178d03b --- /dev/null +++ b/docs/html/resize.js @@ -0,0 +1,147 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function initResizable(treeview) { + let sidenav,navtree,content,header,footer,barWidth=6; + const RESIZE_COOKIE_NAME = ''+'width'; + + function resizeWidth() { + const sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); + } + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + } + + function restoreWidth(navWidth) { + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + } + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight(treeview) { + const headerHeight = header.outerHeight(); + const windowHeight = $(window).height(); + let contentHeight; + if (treeview) + { + const footerHeight = footer.outerHeight(); + let navtreeHeight,sideNavHeight; + if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ + contentHeight = windowHeight - headerHeight - footerHeight; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (page_layout==1) { /* DISABLE_INDEX=YES */ + contentHeight = windowHeight - footerHeight; + navtreeHeight = windowHeight - headerHeight; + sideNavHeight = windowHeight; + } + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + } + else + { + contentHeight = windowHeight - headerHeight; + } + content.css({height:contentHeight + "px"}); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + function collapseExpand() { + let newWidth; + if (sidenav.width()>0) { + newWidth=0; + } else { + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + newWidth = (width>250 && width<$(window).width()) ? width : 250; + } + restoreWidth(newWidth); + const sidenavWidth = $(sidenav).outerWidth(); + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + } + + header = $("#top"); + content = $("#doc-content"); + footer = $("#nav-path"); + sidenav = $("#side-nav"); + if (!treeview) { +// title = $("#titlearea"); +// titleH = $(title).height(); +// let animating = false; +// content.on("scroll", function() { +// slideOpts = { duration: 200, +// step: function() { +// contentHeight = $(window).height() - header.outerHeight(); +// content.css({ height : contentHeight + "px" }); +// }, +// done: function() { animating=false; } +// }; +// if (content.scrollTop()>titleH && title.css('display')!='none' && !animating) { +// title.slideUp(slideOpts); +// animating=true; +// } else if (content.scrollTop()<=titleH && title.css('display')=='none' && !animating) { +// title.slideDown(slideOpts); +// animating=true; +// } +// }); + } else { + navtree = $("#nav-tree"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + } + $(window).resize(function() { resizeHeight(treeview); }); + if (treeview) + { + const device = navigator.userAgent.toLowerCase(); + const touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + if (width) { restoreWidth(width); } else { resizeWidth(); } + } + resizeHeight(treeview); + const url = location.href; + const i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + const _preventDefault = function(evt) { evt.preventDefault(); }; + if (treeview) + { + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + // workaround for firefox + $("body").css({overflow: "hidden"}); + } + $(window).on('load',function() { resizeHeight(treeview); }); +} +/* @license-end */ diff --git a/docs/html/splitbard.png b/docs/html/splitbard.png new file mode 100644 index 0000000000000000000000000000000000000000..8367416d757fd7b6dc4272b6432dc75a75abd068 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@VhhFKy35^fiT zT~&lUj3=cDh^%3HDY9k5CEku}PHXNoNC(_$U3XPb&Q*ME25pT;2(*BOgAf<+R$lzakPG`kF31()Fx{L5Wrac|GQzjeE= zueY1`Ze{#x<8=S|`~MgGetGce)#vN&|J{Cd^tS%;tBYTo?+^d68<#n_Y_xx`J||4O V@QB{^CqU0Kc)I$ztaD0e0svEzbJzd? literal 0 HcmV?d00001 diff --git a/docs/html/structLTAPIAircraft_1_1LTAPIBulkData-members.html b/docs/html/structLTAPIAircraft_1_1LTAPIBulkData-members.html index 0aad649..f0c438c 100644 --- a/docs/html/structLTAPIAircraft_1_1LTAPIBulkData-members.html +++ b/docs/html/structLTAPIAircraft_1_1LTAPIBulkData-members.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: Member List + + + @@ -16,8 +19,8 @@
      - - +
      +
      LTAPI
      API to access LiveTraffic's aircraft information
      @@ -27,57 +30,67 @@
      - + + +/* @license-end */ + +
    + diff --git a/docs/html/structLTAPIAircraft_1_1LTAPIBulkData.html b/docs/html/structLTAPIAircraft_1_1LTAPIBulkData.html index 90751c8..13e36c6 100644 --- a/docs/html/structLTAPIAircraft_1_1LTAPIBulkData.html +++ b/docs/html/structLTAPIAircraft_1_1LTAPIBulkData.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: LTAPIAircraft::LTAPIBulkData Struct Reference + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,120 +30,131 @@
    - + + +/* @license-end */ + +
    +
    -
    -
    LTAPIAircraft::LTAPIBulkData Struct Reference
    +
    LTAPIAircraft::LTAPIBulkData Struct Reference
    -

    Bulk data transfer structur for communication with LTAPI. - More...

    +

    Bulk data transfer structur for communication with LTAPI. + More...

    #include <LTAPI.h>

    - - +

    +

    Classes

    struct  BulkBitsTy
    struct  BulkBitsTy
     
    - - - + +

    +

    Public Member Functions

     LTAPIBulkData ()
     Constructor initializes some data without defaults. More...
     LTAPIBulkData ()
     Constructor initializes some data without defaults.
     
    - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +

    +

    Public Attributes

    uint64_t keyNum = 0
     a/c id, usually transp hex code, or any other unique id (FLARM etc.) More...
    uint64_t keyNum = 0
     a/c id, usually transp hex code, or any other unique id (FLARM etc.)
     
    float lat_f = 0.0f
     deprecated: [°] latitude More...
    float lat_f = 0.0f
     deprecated: [°] latitude
     
    float lon_f = 0.0f
     deprecated: [°] longitude More...
    float lon_f = 0.0f
     deprecated: [°] longitude
     
    float alt_ft_f = 0.0f
     deprecated: [ft] altitude More...
    float alt_ft_f = 0.0f
     deprecated: [ft] altitude
     
    float heading = 0.0f
     [°] heading More...
    float heading = 0.0f
     [°] heading
     
    float track = 0.0f
     [°] track over ground More...
    float track = 0.0f
     [°] track over ground
     
    float roll = 0.0f
     [°] roll: positive right More...
    float roll = 0.0f
     [°] roll: positive right
     
    float pitch = 0.0f
     [°] pitch: positive up More...
    float pitch = 0.0f
     [°] pitch: positive up
     
    float speed_kt = 0.0f
     [kt] ground speed More...
    float speed_kt = 0.0f
     [kt] ground speed
     
    float vsi_ft = 0.0f
     [ft/minute] vertical speed, positive up More...
    float vsi_ft = 0.0f
     [ft/minute] vertical speed, positive up
     
    float terrainAlt_ft = 0.0f
     [ft] terrain altitude beneath plane More...
    float terrainAlt_ft = 0.0f
     [ft] terrain altitude beneath plane
     
    float height_ft = 0.0f
     [ft] height AGL More...
    float height_ft = 0.0f
     [ft] height AGL
     
    float flaps = 0.0f
     flap position: 0.0 retracted, 1.0 fully extended More...
    float flaps = 0.0f
     flap position: 0.0 retracted, 1.0 fully extended
     
    float gear = 0.0f
     gear position: 0.0 retracted, 1.0 fully extended More...
    float gear = 0.0f
     gear position: 0.0 retracted, 1.0 fully extended
     
    float reversers = 0.0f
     reversers position: 0.0 closed, 1.0 fully opened More...
    float reversers = 0.0f
     reversers position: 0.0 closed, 1.0 fully opened
     
    float bearing = 0.0f
     [°] to current camera position More...
    float bearing = 0.0f
     [°] to current camera position
     
    float dist_nm = 0.0f
     [nm] distance to current camera More...
    float dist_nm = 0.0f
     [nm] distance to current camera
     
    struct LTAPIAircraft::LTAPIBulkData::BulkBitsTy bits
     Flights phase, on-ground status, lights. More...
    struct LTAPIAircraft::LTAPIBulkData::BulkBitsTy bits
     Flights phase, on-ground status, lights.
     
    double lat = 0.0f
     [°] latitude More...
    double lat = 0.0f
     [°] latitude
     
    double lon = 0.0f
     [°] longitude More...
    double lon = 0.0f
     [°] longitude
     
    double alt_ft = 0.0f
     [ft] altitude More...
    double alt_ft = 0.0f
     [ft] altitude
     

    Detailed Description

    -

    Bulk data transfer structur for communication with LTAPI.

    +

    Bulk data transfer structur for communication with LTAPI.

    Note
    Structure needs to be in synch with LiveTraffic, version differences are handled using a struct size "negotiation", but order of fields must match.

    Class Documentation

    -

    ◆ LTAPIAircraft::LTAPIBulkData::BulkBitsTy

    +

    ◆ LTAPIAircraft::LTAPIBulkData::BulkBitsTy

    @@ -153,73 +167,73 @@

    +bool +bool - - - +unsigned +unsigned +bool + + + +int +bool +bool +LTFlightPhase +bool +bool - +
    Class Members
    -bool bcn: 1 beacon light
    -bool camera: 1 is LiveTraffic's camera on this aircraft?
    -unsigned -filler1: 1 -unused
    -unsigned filler2: 8
    -unsigned filler3: 32
    -bool +hidden: 1 +aircraft not visible?
    +bool land: 1 landing lights
    -int multiIdx: 8 multiplayer index if plane reported via sim/multiplayer/position dataRefs, 0 if not
    -bool nav: 1 navigaton lights
    -bool onGnd: 1 Is plane on ground?
    -LTFlightPhase phase: 8 flight phase, see LTAircraft::FlightPhase
    -bool strb: 1 strobe light
    -bool taxi: 1 @@ -229,8 +243,8 @@

    Constructor & Destructor Documentation

    - -

    ◆ LTAPIBulkData()

    + +

    ◆ LTAPIBulkData()

    ())
    @@ -257,8 +271,8 @@

    Member Data Documentation

    - -

    ◆ alt_ft

    + +

    ◆ alt_ft

    @@ -273,8 +287,8 @@

    -

    ◆ alt_ft_f

    + +

    ◆ alt_ft_f

    @@ -289,8 +303,8 @@

    -

    ◆ bearing

    + +

    ◆ bearing

    @@ -305,14 +319,14 @@

    -

    ◆ bits

    + +

    ◆ bits

    - +
    struct LTAPIAircraft::LTAPIBulkData::BulkBitsTy LTAPIAircraft::LTAPIBulkData::bitsstruct LTAPIAircraft::LTAPIBulkData::BulkBitsTy LTAPIAircraft::LTAPIBulkData::bits
    @@ -321,8 +335,8 @@

    -

    ◆ dist_nm

    + +

    ◆ dist_nm

    @@ -337,8 +351,8 @@

    -

    ◆ flaps

    + +

    ◆ flaps

    @@ -353,8 +367,8 @@

    -

    ◆ gear

    + +

    ◆ gear

    @@ -369,8 +383,8 @@

    -

    ◆ heading

    + +

    ◆ heading

    @@ -385,8 +399,8 @@

    -

    ◆ height_ft

    + +

    ◆ height_ft

    @@ -401,8 +415,8 @@

    -

    ◆ keyNum

    + +

    ◆ keyNum

    @@ -417,8 +431,8 @@

    -

    ◆ lat

    + +

    ◆ lat

    @@ -433,8 +447,8 @@

    -

    ◆ lat_f

    + +

    ◆ lat_f

    @@ -449,8 +463,8 @@

    -

    ◆ lon

    + +

    ◆ lon

    @@ -465,8 +479,8 @@

    -

    ◆ lon_f

    + +

    ◆ lon_f

    @@ -481,8 +495,8 @@

    -

    ◆ pitch

    + +

    ◆ pitch

    @@ -497,8 +511,8 @@

    -

    ◆ reversers

    + +

    ◆ reversers

    @@ -513,8 +527,8 @@

    -

    ◆ roll

    + +

    ◆ roll

    @@ -529,8 +543,8 @@

    -

    ◆ speed_kt

    + +

    ◆ speed_kt

    @@ -545,8 +559,8 @@

    -

    ◆ terrainAlt_ft

    + +

    ◆ terrainAlt_ft

    @@ -561,8 +575,8 @@

    -

    ◆ track

    + +

    ◆ track

    @@ -577,8 +591,8 @@

    -

    ◆ vsi_ft

    + +

    ◆ vsi_ft

    @@ -599,9 +613,8 @@

    +

    diff --git a/docs/html/structLTAPIAircraft_1_1LTAPIBulkInfoTexts-members.html b/docs/html/structLTAPIAircraft_1_1LTAPIBulkInfoTexts-members.html index fababaf..d61e4d1 100644 --- a/docs/html/structLTAPIAircraft_1_1LTAPIBulkInfoTexts-members.html +++ b/docs/html/structLTAPIAircraft_1_1LTAPIBulkInfoTexts-members.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: Member List + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,53 +30,63 @@
    - + + +/* @license-end */ + +
    + diff --git a/docs/html/structLTAPIAircraft_1_1LTAPIBulkInfoTexts.html b/docs/html/structLTAPIAircraft_1_1LTAPIBulkInfoTexts.html index d2a9883..9aa7fa6 100644 --- a/docs/html/structLTAPIAircraft_1_1LTAPIBulkInfoTexts.html +++ b/docs/html/structLTAPIAircraft_1_1LTAPIBulkInfoTexts.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: LTAPIAircraft::LTAPIBulkInfoTexts Struct Reference + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,102 +30,113 @@
    - + + +/* @license-end */ + +

    +
    -
    -
    LTAPIAircraft::LTAPIBulkInfoTexts Struct Reference
    +
    LTAPIAircraft::LTAPIBulkInfoTexts Struct Reference
    -

    Bulk text transfer structur for communication with LTAPI. - More...

    +

    Bulk text transfer structur for communication with LTAPI. + More...

    #include <LTAPI.h>

    - - - + +

    +

    Public Member Functions

     LTAPIBulkInfoTexts ()
     Constructor initializes all data with zeroes. More...
     LTAPIBulkInfoTexts ()
     Constructor initializes all data with zeroes.
     
    - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +

    +

    Public Attributes

    uint64_t keyNum
     a/c id, usually transp hex code, or any other unique id (FLARM etc.) More...
    uint64_t keyNum
     a/c id, usually transp hex code, or any other unique id (FLARM etc.)
     
    char registration [8]
     tail number like "D-AISD" More...
    char registration [8]
     tail number like "D-AISD"
     
    char modelIcao [8]
     ICAO aircraft type like "A321". More...
    char modelIcao [8]
     ICAO aircraft type like "A321".
     
    char acClass [4]
     a/c class like "L2J" More...
    char acClass [4]
     a/c class like "L2J"
     
    char wtc [4]
     wake turbulence category like H,M,L/M,L More...
    char wtc [4]
     wake turbulence category like H,M,L/M,L
     
    char opIcao [8]
     ICAO-code of operator like "DLH". More...
    char opIcao [8]
     ICAO-code of operator like "DLH".
     
    char man [40]
     human-readable manufacturer like "Airbus" More...
    char man [40]
     human-readable manufacturer like "Airbus"
     
    char model [40]
     human-readable a/c model like "A321-231" More...
    char model [40]
     human-readable a/c model like "A321-231"
     
    char catDescr [40]
     human-readable category description More...
    char catDescr [40]
     human-readable category description
     
    char op [40]
     human-readable operator like "Lufthansa" More...
    char op [40]
     human-readable operator like "Lufthansa"
     
    char callSign [8]
     call sign like "DLH56C" More...
    char callSign [8]
     call sign like "DLH56C"
     
    char squawk [8]
     squawk code (as text) like "1000" More...
    char squawk [8]
     squawk code (as text) like "1000"
     
    char flightNumber [8]
     flight number like "LH1113" More...
    char flightNumber [8]
     flight number like "LH1113"
     
    char origin [8]
     origin airport (IATA or ICAO) like "MAD" or "LEMD" More...
    char origin [8]
     origin airport (IATA or ICAO) like "MAD" or "LEMD"
     
    char destination [8]
     destination airport (IATA or ICAO) like "FRA" or "EDDF" More...
    char destination [8]
     destination airport (IATA or ICAO) like "FRA" or "EDDF"
     
    char trackedBy [24]
     name of channel deliverying the underlying tracking data More...
    char trackedBy [24]
     name of channel deliverying the underlying tracking data
     
    char cslModel [40]
     name of CSL model used for actual rendering of plane More...
    char cslModel [40]
     name of CSL model used for actual rendering of plane
     

    Detailed Description

    -

    Bulk text transfer structur for communication with LTAPI.

    +

    Bulk text transfer structur for communication with LTAPI.

    Note
    To avoid alignment issues with arrays we keep this struct 8-byte-aligned

    Constructor & Destructor Documentation

    - -

    ◆ LTAPIBulkInfoTexts()

    + +

    ◆ LTAPIBulkInfoTexts()

    @@ -133,7 +147,7 @@

    LTAPIAircraft::LTAPIBulkInfoTexts::LTAPIBulkInfoTexts ( - ) + ) @@ -149,8 +163,8 @@

    Member Data Documentation

    - -

    ◆ acClass

    + +

    ◆ acClass

    @@ -165,8 +179,8 @@

    -

    ◆ callSign

    + +

    ◆ callSign

    @@ -181,8 +195,8 @@

    -

    ◆ catDescr

    + +

    ◆ catDescr

    @@ -197,8 +211,8 @@

    -

    ◆ cslModel

    + +

    ◆ cslModel

    @@ -213,8 +227,8 @@

    -

    ◆ destination

    + +

    ◆ destination

    @@ -229,8 +243,8 @@

    -

    ◆ flightNumber

    + +

    ◆ flightNumber

    @@ -245,8 +259,8 @@

    -

    ◆ keyNum

    + +

    ◆ keyNum

    @@ -261,8 +275,8 @@

    -

    ◆ man

    + +

    ◆ man

    @@ -277,8 +291,8 @@

    -

    ◆ model

    + +

    ◆ model

    @@ -293,8 +307,8 @@

    -

    ◆ modelIcao

    + +

    ◆ modelIcao

    @@ -309,8 +323,8 @@

    -

    ◆ op

    + +

    ◆ op

    @@ -325,8 +339,8 @@

    -

    ◆ opIcao

    + +

    ◆ opIcao

    @@ -341,8 +355,8 @@

    -

    ◆ origin

    + +

    ◆ origin

    @@ -357,8 +371,8 @@

    -

    ◆ registration

    + +

    ◆ registration

    @@ -373,8 +387,8 @@

    -

    ◆ squawk

    + +

    ◆ squawk

    @@ -389,8 +403,8 @@

    -

    ◆ trackedBy

    + +

    ◆ trackedBy

    @@ -405,8 +419,8 @@

    -

    ◆ wtc

    + +

    ◆ wtc

    @@ -427,9 +441,8 @@

    +

    diff --git a/docs/html/structLTAPIAircraft_1_1LTLights-members.html b/docs/html/structLTAPIAircraft_1_1LTLights-members.html index b96b3d8..75b4fa7 100644 --- a/docs/html/structLTAPIAircraft_1_1LTLights-members.html +++ b/docs/html/structLTAPIAircraft_1_1LTLights-members.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: Member List + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,41 +30,51 @@
    - + + +/* @license-end */ + +
    +
    -
    -
    LTAPIAircraft::LTLights Member List
    +
    LTAPIAircraft::LTLights Member List
    +
    diff --git a/docs/html/structLTAPIAircraft_1_1LTLights.html b/docs/html/structLTAPIAircraft_1_1LTLights.html index e703653..f8e5eb4 100644 --- a/docs/html/structLTAPIAircraft_1_1LTLights.html +++ b/docs/html/structLTAPIAircraft_1_1LTLights.html @@ -1,14 +1,17 @@ - + - - + + LTAPI: LTAPIAircraft::LTLights Struct Reference + + + @@ -16,8 +19,8 @@
    - - +
    +
    LTAPI
    API to access LiveTraffic's aircraft information
    @@ -27,65 +30,76 @@
    - + + +/* @license-end */ + +

    +
    -
    -
    LTAPIAircraft::LTLights Struct Reference
    +
    LTAPIAircraft::LTLights Struct Reference

    Structure to return plane's lights status. - More...

    + More...

    #include <LTAPI.h>

    - - - + +

    +

    Public Member Functions

     LTLights (const LTAPIBulkData::BulkBitsTy b)
     Type conversion constructor. More...
     LTLights (const LTAPIBulkData::BulkBitsTy b)
     Type conversion constructor.
     
    - - - + + - - + + - - + + - - + + - - + +

    +

    Public Attributes

    bool beacon: 1
     beacon light More...
    bool beacon: 1
     beacon light
     
    bool strobe: 1
     strobe light More...
    bool strobe: 1
     strobe light
     
    bool nav: 1
     navigaton lights More...
    bool nav: 1
     navigaton lights
     
    bool landing: 1
     landing lights More...
    bool landing: 1
     landing lights
     
    bool taxi: 1
     taxi lights More...
    bool taxi: 1
     taxi lights
     

    Detailed Description

    Structure to return plane's lights status.

    Constructor & Destructor Documentation

    - -

    ◆ LTLights()

    + +

    ◆ LTLights()

    @@ -96,8 +110,7 @@

    LTAPIAircraft::LTLights::LTLights ( - const LTAPIBulkData::BulkBitsTy  - b) + const LTAPIBulkData::BulkBitsTy b) @@ -113,8 +126,8 @@

    Member Data Documentation

    - -

    ◆ beacon

    + +

    ◆ beacon

    @@ -129,8 +142,8 @@

    -

    ◆ landing

    + +

    ◆ landing

    @@ -145,8 +158,8 @@

    -

    ◆ nav

    + +

    ◆ nav

    @@ -161,8 +174,8 @@

    -

    ◆ strobe

    + +

    ◆ strobe

    @@ -177,8 +190,8 @@

    -

    ◆ taxi

    + +

    ◆ taxi

    @@ -199,9 +212,8 @@

    +

    diff --git a/docs/html/tab_ad.png b/docs/html/tab_ad.png new file mode 100644 index 0000000000000000000000000000000000000000..e34850acfc24be58da6d2fd1ccc6b29cc84fe34d GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QhuH;jv*C{Z|5d*H3V=pKi{In zd2jxLclDRPylmD}^l7{QOtL{vUjO{-WqItb5sQp2h-99b8^^Scr-=2mblCdZuUm?4 jzOJvgvt3{(cjKLW5(A@0qPS@<&}0TrS3j3^P6y&q2{!U5bk+Tso_B!YCpDh>v z{CM*1U8YvQRyBUHt^Ju0W_sq-?;9@_4equ-bavTs=gk796zopr0EBT&m;e9( literal 0 HcmV?d00001 diff --git a/docs/html/tab_sd.png b/docs/html/tab_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..757a565ced4730f85c833fb2547d8e199ae68f19 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qq7(&jv*C{Z|_!fH5o7*c=%9% zcILh!EA=pAQKdx-Cdiev=v{eg{8Ht<{e8_NAN~b=)%W>-WDCE0PyDHGemi$BoXwcK z{>e9^za6*c1ilttWw&V+U;WCPlV9{LdC~Ey%_H(qj`xgfES(4Yz5jSTZfCt`4E$0YRsR*S^mTCR^;V&sxC8{l_Cp7w8-YPgg&ebxsLQ00$vXK>z>% literal 0 HcmV?d00001 diff --git a/docs/html/tabs.css b/docs/html/tabs.css index 85a0cd5..7fa4268 100644 --- a/docs/html/tabs.css +++ b/docs/html/tabs.css @@ -1 +1 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 78a1954..0000000 --- a/docs/index.md +++ /dev/null @@ -1,54 +0,0 @@ -# LTAPI - -API to access LiveTraffic's aircraft information. -Data transfer from LiveTraffic to your plugin is by dataRefs in a fast, efficient way: LiveTraffic copies data of several planes combined into defined structures. LTAPI handles all that in the background and provides you with an array of aircraft information with numerical info like position, heading, speed and textual info like type, registration, call sign, flight number. - -## LTAPI files and Documentation - -You only need to include 2 files into your own projects: - -- `LTAPI.cpp` -- `LTAPI.h` - -Both files include lots of comments in Doxygen style as **documentation**. The generated Doxygen documentation is available in `docs/html/index.html` or on -[GitHub pages](https://twinfan.github.io/LTAPI/html/index.html). - -## Example Plugin Implementation - -The `Example` folder includes an example X-Plane plugin (based on the [Hello World plugin](https://developer.x-plane.com/code-sample/hello-world-sdk-3/)), which demonstrates the most simplistic usage as well as an enhanced way of using the API by subclassing the provided `LTAPIAircraft` class. - -The plugin just opens two windows and shows information about LiveTraffic's aircrafts as text. - -### Simple Example - -...starts at around line 195 of `LTAPIExample.xpp`. Look for `MARK: LTAPI Simple Example`. It just - -- uses a static `LTAPIConnect` object, -- calls its function `UpdateAcList()` every second via a flight loop callback, and -- loops the resulting map of aircrafts for display of textual information in the output window. - -### Enhanced Example - -...starts at around line 269 of `LTAPIExample.xpp`. Look for `MARK: LTAPI Enhanced Example`. This demonstrates how to use `LTAPIAircraft` as a base class for some own class. Often, you have your own way of representing aircrafts in your app already. You can add `LTAPIAircraft` as a base class and then don't need to copy information back and forth but have access to it right from within your own class. - -For this to work you - -- need to subclass `LTAPIAircraft`, -- may want to do init/cleanup work in the constructor and destructor, -- may want to override `virtual bool updateAircraft()` so that you can do some own work whenever a/c information changes, -- must provide a callback for creating new empty objects when `LTAPIConnect::UpdateAcList()` finds a new aircraft in the sky. -- most likely want to handle the list of removed aircrafts (before they are destroyed) similar to what `LoopCBUpdateAcListEnhanced` does. - -All the rest of the code deals with the example's functionality, which is: - -- The class `EnhAircraft` also manages the line number in the output display, i.e. once it found a line it stays there. Also allows to show text "---removed---" for some time when a/c was removed. -- Each line provides more information as the simple example and renders that info in fairly well aligned columns. - -## Building the Example - -- Mac: Open the XCode project `LTAPI.xcodeproj`. There might be paths you way want to check: In the Build Settings there is a user-defined setting `XPLANE11_ROOT` pointing to the root folder of your X-Plane 11 installation. If that is set correctly then the resulting plugin is installed there correctly in the `plugins` folder. -- Windows: Open the Visual Studio solution `LTAPI.sln`. Also here you might need to check directories. There is a copy command to my X-Plane installation in the _Post Build Event_. -- Linux: As I don't have a Linux environment myself I provide a Docker environment to build the Linux version based on a `CMakeList`. I have not tested the resulting binary `LTAPIExample-lin.xpl`. Can't even say if it starts. - - You need [Docker](https://www.docker.com/get-started) installed. The, with Docker app running: - - `cd Example/docker` - - `make`

    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 IB)hf$0|^e91^@s6 literal 0 HcmV?d00001 diff --git a/Example/Lib/SDK/Libraries/Lin/XPWidgets_64.so b/Example/Lib/SDK/Libraries/Lin/XPWidgets_64.so new file mode 100755 index 0000000000000000000000000000000000000000..6eaca3cf05be8dc55393b11e608cdf567637aa33 GIT binary patch literal 529136 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 *f9ZVUyN#cLKgfA5ea^d#&qMtt{PAXb=t4sM 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ƦX2=iPx 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ⅆvUZyH{)Wxb|ct(1tW}voF*Afe-j3> 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 literal 0 HcmV?d00001 diff --git a/Example/Lib/SDK/Libraries/Mac/XPLM.framework/Resources b/Example/Lib/SDK/Libraries/Mac/XPLM.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/Example/Lib/SDK/Libraries/Mac/XPLM.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/C/Resources/Info.plist b/Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/C/Resources/Info.plist new file mode 100644 index 0000000..53b5610 --- /dev/null +++ b/Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/C/Resources/Info.plist @@ -0,0 +1,42 @@ + + + + + BuildMachineOSBuild + 22C65 + CFBundleDevelopmentRegion + English + CFBundleExecutable + XPLM + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CSResourcesFileMapped + + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 14C18 + DTPlatformName + macosx + DTPlatformVersion + 13.1 + DTSDKBuild + 22C55 + DTSDKName + macosx13.1 + DTXcode + 1420 + DTXcodeBuild + 14C18 + LSMinimumSystemVersion + 10.15 + + diff --git a/Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/C/XPLM b/Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/C/XPLM new file mode 100755 index 0000000000000000000000000000000000000000..1ea059ff0bbc251dda300c3459056b53a8fa85c3 GIT binary patch literal 692320 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 literal 0 HcmV?d00001 diff --git a/Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/C/_CodeSignature/CodeResources b/Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/C/_CodeSignature/CodeResources new file mode 100644 index 0000000..1e37a64 --- /dev/null +++ b/Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/C/_CodeSignature/CodeResources @@ -0,0 +1,128 @@ + + + + + files + + Resources/Info.plist + + voAQ/IDgQqHZqcOEgtUnY+ZQ4Vo= + + + files2 + + Resources/Info.plist + + hash2 + + cbolIMR2jzM1jeru8QBpXnyfepv6PMzWJfroq2E2Coo= + + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/Current b/Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/Current new file mode 120000 index 0000000..96d80cd --- /dev/null +++ b/Example/Lib/SDK/Libraries/Mac/XPLM.framework/Versions/Current @@ -0,0 +1 @@ +C \ No newline at end of file diff --git a/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Resources b/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/C/Resources/Info.plist b/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/C/Resources/Info.plist new file mode 100644 index 0000000..60487dd --- /dev/null +++ b/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/C/Resources/Info.plist @@ -0,0 +1,42 @@ + + + + + BuildMachineOSBuild + 22C65 + CFBundleDevelopmentRegion + English + CFBundleExecutable + XPWidgets + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CSResourcesFileMapped + + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 14C18 + DTPlatformName + macosx + DTPlatformVersion + 13.1 + DTSDKBuild + 22C55 + DTSDKName + macosx13.1 + DTXcode + 1420 + DTXcodeBuild + 14C18 + LSMinimumSystemVersion + 10.15 + + diff --git a/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/C/XPWidgets b/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/C/XPWidgets new file mode 100755 index 0000000000000000000000000000000000000000..c996c4a26036c72859b503f02cc43bd827fc2227 GIT binary patch literal 267536 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 UG8`a{WBCn}D2afHOsT`NWGe#F9j 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 d-2O0+!Q39Of?%}Ia<)IR5irDw|E1q{1$ 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 Xz-S1JhQMeDjE2By2#kinhz|h(G*%`F literal 0 HcmV?d00001 diff --git a/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/C/_CodeSignature/CodeResources b/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/C/_CodeSignature/CodeResources new file mode 100644 index 0000000..cf0809d --- /dev/null +++ b/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/C/_CodeSignature/CodeResources @@ -0,0 +1,128 @@ + + + + + files + + Resources/Info.plist + + SngFRYyYZvFDvj7WlMImI0nWjNQ= + + + files2 + + Resources/Info.plist + + hash2 + + cyPpU9uTChX7rFyoW42moNimK/DK8zmtQ8Wih5q0fz4= + + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/Current b/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/Current new file mode 120000 index 0000000..96d80cd --- /dev/null +++ b/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/Versions/Current @@ -0,0 +1 @@ +C \ No newline at end of file diff --git a/Example/Lib/SDK/Libraries/Win/XPLM_64.lib b/Example/Lib/SDK/Libraries/Win/XPLM_64.lib index f72dd53373eb24731470eeb8d4758940a0a9e7e1..090ed417a9dc68c1f11604595909f7c56f36e870 100644 GIT binary patch literal 66256 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 DyBx`D diff --git a/Example/Lib/SDK/Libraries/Win/XPWidgets_64.lib b/Example/Lib/SDK/Libraries/Win/XPWidgets_64.lib index 48f131744e2aa2584a54b67fb767b0a337a78b22..53c55d60d27b1a821b314d4e3348c09220619951 100644 GIT binary patch delta 1388 zcmZWoT}V@57+(2l*+!c?J7;r$=j_;~&Z&tu&9X*F4NZ%buLT=N@H$nv0K4B+D)9E$RYpjKNg z74#eJiY9OSmQ_YRBx9*ZOhUKVvWiJBbx(iaA%)4q~ z`tS^`1Bz1?LL9K?S zPtc>MG%k*VZM_DC-w$l`8k|y@%V0-B@%^9BM&l&iM+1Yp%kJ#LvVkfk;OYAPfxl2| zq+BLbdjjmG$)ly=NVMP6^20IUDA}K+#{ZmzjjuyJMaQB@B%DpM)<&65@~ywR#AE~ zoP%j(#XJztFah75vUF@uB@x#!sL21_ZJA!*0N1I+sgX5waS7hiIH^PSal3EG4-PA} z4-$K7Wzg(`_cOe*CiOsc*YkWcptDgr(nHmnZwh*Bi9N^ztzY(u^A>DrER6*-Z7H$C zm&(n7H#^A=a`7cK@4^ttrY`=l&GMGrJ!r^DYLh&?{pWoXFq1<)yiWXBcRZ8x;L4?N Y@`xM9uWrIfZc-g$`!)B!Wf1L-|DXzNwg3PC delta 1384 zcmZWoJ8KkC6dv5kCaVkkoX5`0&THLA;u>AuEUOV2L`;ehEFz?k1beZvNFYU0`(Vi_ zY%CPCNg+x=1S-Vp8 zy1i}}0#*BPZ6Xs3?XPEYv6u?ai?d?dc143<#hmbJx<0uSR~^_yax_Iu=&&e75hQaB~a@F1l^&nQ5? zmdB~A#JfsgjE^cTZX4IdI4!+tFgXJQVFFc!6Qewqv}^W6SYWbpk8qrp`)0CoKTSmC zM%^u2$YtL3&`Nae*yR)*^6lykk)E3Py2@xiRqu#zR6+#n*$Bpb3_aen6KolWm2{mz zEJ^8hoY4O^@xMU)_tF-8cD#7nUzXM)X+@HDIcvb2>xgN*-={88K;pS*dCFvYR_`uA zp?Ot=vcAWQaFH-5gyBoN3NJlhOk;hHSCQ_EN~*#4NevVqDWT==`K;%MKC+Qd_|!*} z7wuiGCG3ryKfq7C=iq$2=WrSyah$U7X|(HT8uaa1ovD6PPe|Z6y@7CC!=Mq@FgBDP ztw#*~msY^WhH^8unh7)bx}P@Dx+9tQTM3!`>JD4z>b9dx4W?0?U-0|s1W)9;KhypX DnL%t} diff --git a/Example/Lib/SDK/README.txt b/Example/Lib/SDK/README.txt index 2316eb5..122e3df 100644 --- a/Example/Lib/SDK/README.txt +++ b/Example/Lib/SDK/README.txt @@ -5,24 +5,12 @@ This download contains the files necessary to build plugins for X-Plane. The X-Plane plugin website is: -http://www.xsquawkbox.net/xpsdk/ +https://developer.x-plane.com/sdk/ The website contains full documentation on the SDK including tech notes, sample plugins, sample code, contact information, and links to the latest versions of this SDK. -The X-Plane SDK authors can be reached at: - -xplanesdk@xsquawkbox.net - -Please do not email Austin or Laminar Research for SDK questions or support; -the SDK is a third party effort. - -the X-Plane developer mailing list is an unlisted yahoo group frequented by -many X-Plane developers. - -x-plane-dev@yahoogroups.com - ------------------------------------------------------------------------------- SDK FILES ------------------------------------------------------------------------------- @@ -32,25 +20,93 @@ README.txt This document CHeaders Header files for compiling C/C++ plugins Delphi Interfaces for compiling Pascal plugins Libraries Import libraries for linking on Windows - and frameworks for linking on Mac. + and frameworks for linking on Mac. Note: there are no import/link-time libraries for Linux; on Linux, plugins simply leave SDK symbols undefined and they are discovered at runtime. The SDK website explains this process in more detail. -Mac CFM plugins are not supported by the SDK versions 2.0 and higher; the -2.0 SDK requires X-Plane 9.0 or newer, and X-Plane 9 will not run on -Mac OS 9. Therefore CFM plugins are not useful (and are probably -counterproductive since they cannot support x86 code). If you have a CFM -plugin, continue to use the 1.0 SDK to build it. You will have to port to -Mach-O if you want to use 2.0 features. - ------------------------------------------------------------------------------- RELEASE NOTES ------------------------------------------------------------------------------- This section contains per-release notes for the history of the X-Plane SDK. +X-Plane SDK Release 4.1.1 10/10/2024 + +This is a bug fix to the SDK itself; the dylib link paths on the included +XPLM and XPWidgets frameworks now contain paths compatible with all versions +of X-Plane and not just X-Plane 12.1.0 and newer. Fixes XPD-16057 and +includes doc clarification for sound callbacks. + +X-Plane SDK Release 4.1.0 4/10/2024 + +The 4.1.0 SDK includes two new sets of APIs: + + - XPLMAvionics has new APIs to create custom plugin-driven glass displays, + as well as extended callbacks for overriding the existing displays. + + - XPLMNavigation has new APIs for interacting with the FMS and its flight- + plans. + +This version of the SDK requires X-Plane 12.1.0 or newer. + +X-Plane SDK Release 4.0.1 3/16/2023 + +The 4.0.1 SDK fixes the XPLMSound.h header, which contained invalid C code +(C++ struct definitons for FMOD_VECTOR and FMOD_ enums.) + +X-Plane SDK Release 4.0.0 3/8/2023 + +The 4.0.0 SDK adds support for ARM64 Macs. The 4.0 SDK is supported by X-Plane +12.04 (but can be used with X-Plane 12.00 if not using the weather, sound or +dataref introspection APIs). New features: + + - M1/ARM64 support for Mac + - Avionics display callbacks provide direct drawing to avionic "devices" + - New XPLMSound API + - New XPLMWeather API + - New dataref APIs to get the set of all datarefs programmatically and be + notified of new datarefs ("introspection"). + +X-Plane SDK Release 3.0.2 4/29/2020 + +The SDK 3.0.2 adds the modern 3-d drawing callback for interoperability with +Metal and Vulkan, and deprecates most older drawing callbacks. + +X-Plane SDK Release 3.0.1 3/5/2018 + +The SDK 3.0.1 API adds new messages and APIs to support VR. + +X-Plane SDK Release 3.0.0 11/2/7/2017 + +The SDK 3.0 API supports new features and new packaging for plugins. The 3.0 +SDK requires X-Plane 11.0 or newer. New features include: + + - Display APIs to match X-Plane 11's UI. + - New map APIs. Legacy 2-d map draw callbacks are deprecated. + - Aircraft-plugins get their own menu + - Aircraft placement by lat-lon-elevation. + - Magnetic variation queries + - Chinese language support + - New instancing API + +The 3.0 SDK supports a new plugin packaging schema: + + //.xpl + +where ABI is one of mac_x64, win_x64 or lin_x64. The new schema is preferred, +so you can pack a version of your plugin that requires 3.0 with this scheme +and include a legacy 2.x plugin using hte old scheme for X-Plane 10 +compatibility. + +Please use the new scheme where possible - having a unique file name for each +DLL makes crash reports easier to read and triage. + +The 3.0 SDK drops support for 32-bit plugins; if you need to ship a 32-bit +plugin for 32-bit X-Plane 10, shipping using two schemes and two binaries may +be the best option. + X-Plane SDK Release 2.1.3 11/14/13 Fixed XPC Wrappers to use int and intptr_t instead of long. This fixes diff --git a/LTAPI.h b/LTAPI.h index 6c28668..2a7ee27 100644 --- a/LTAPI.h +++ b/LTAPI.h @@ -218,7 +218,8 @@ class LTAPIAircraft /// @brief Called when LiveTraffic toggles its aircraft camera, override in your class to handle event /// @param bCameraActive `True` if camera is on this aircraft now, `false` if camera is switched off /// @param spPrevAc May point to previous aircraft under camera if switching directly from one to this; can be `null` - virtual void toggleCamera (bool bCameraActive, SPtrLTAPIAircraft spPrevAc) {} + virtual void toggleCamera ([[maybe_unused]] bool bCameraActive, + [[maybe_unused]] SPtrLTAPIAircraft spPrevAc) {} /// @brief Declare the aircraft the one under the camera (e.g. if your plugin is a camera plugin and now views this aircraft) void setCameraAc (); @@ -372,7 +373,7 @@ class LTAPIConnect /// Depending on startup order, LiveTraffic might or might not have been started yet. /// This note is basically true for all requests accessing LiveTraffic data. /// It is noted here only because it is tempting to fetch the version number once only during startup. - /// @return Version (like 201 for v2.01), or constant 150 if unknown, or 0 if LiveTraffic is unavailable + /// @return Version (like 40101 for v4.1.1), or constant 150 if unknown, or 0 if LiveTraffic is unavailable static int getLTVerNr(); /// @brief LiveTraffic's version date From 7454d659bd245374bdebbe3d2cd814fb06184f88 Mon Sep 17 00:00:00 2001 From: TwinFan Date: Thu, 16 Jan 2025 23:17:55 +0100 Subject: [PATCH 2/7] Fix: typechange commit --- .../Lib/SDK/Libraries/Mac/XPLM.framework/XPLM | Bin 214288 -> 21 bytes .../Mac/XPWidgets.framework/XPWidgets | Bin 48768 -> 26 bytes 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 120000 Example/Lib/SDK/Libraries/Mac/XPLM.framework/XPLM mode change 100755 => 120000 Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/XPWidgets diff --git a/Example/Lib/SDK/Libraries/Mac/XPLM.framework/XPLM b/Example/Lib/SDK/Libraries/Mac/XPLM.framework/XPLM deleted file mode 100755 index 334071184538ea16492dd9756e7132a1ac807b8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214288 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 z 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 TS<%ZqW?!K(x5o7TAO7=yXE5y9 diff --git a/Example/Lib/SDK/Libraries/Mac/XPLM.framework/XPLM b/Example/Lib/SDK/Libraries/Mac/XPLM.framework/XPLM new file mode 120000 index 0000000..ae3cf6c --- /dev/null +++ b/Example/Lib/SDK/Libraries/Mac/XPLM.framework/XPLM @@ -0,0 +1 @@ +Versions/Current/XPLM \ No newline at end of file diff --git a/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/XPWidgets b/Example/Lib/SDK/Libraries/Mac/XPWidgets.framework/XPWidgets deleted file mode 100755 index 20e521a54c969c17c285bcd229ebda586777a35b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48768 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
    tE4W|7JqPzZ+$y*i;9i7V4fitKD{#Ms z`yJfx;nu+Y0q&1*ufn|s_b0eN!~F$rE!UWa=L?l*9MgTupArvF#lnj*j+bD=#1 zkw0NQK}zNYmII1pW`%ZEgGemjFanMo2Cy9@MZn@>8C5uFT2?r~EiZs#%sYsI`RFGt zE@pC!wZ)8VXK^v3SdkZ6PNEVm1B)4DHYhV<3yF@6GIc~p$J#`q)1s{>(eV-cL3Cuq zR1zI|fk`DgvCX1l#a`UTgw!b88X(KKW*I}GqAW`ZqAs-2A@V|F9wKwRCDURJHZ0m_ z85m5%j~Qn&xjj2^eqlyOvnCQ5&6=DxOA*NBwzrW`47$6WX@kYJSvLrbwww^$&agre zF~$@`#U7xUQ5PPav3RRe)Ezi9V{wrgLXkYG?V!v=0gMqFdql?4q7TPd1SSbT7HbC< znWWhiYC8(EP+|_jtmumzf3;6y=U)F`?^fHJI1YsQMW-e}DIZ%l+l!#r2)Ny9zgQtS zV4Vq3AnD$}zi0dsoWRlrc27bg8QWufJhmr(9$S$GyzF}mTT%1g+o2mGp;-2higc#K%Jp(;SLH(^v%{uYqt08ZViseww}tjvLEZt0H|A))W{PQH6bSm6oij|g6x6*JJ6GPb1^3)a>1si$e>IOp@o+qJi!5gw1qY` zB$|UzBTsm+kkjF@>fqUeOn5Ztl6qQFn#Ggw=m1H0s}Up%9nrtSjObwpK*pj(79OI1 zg$o@qB4ERb=f6cSvB>mP7EvW7j0(AjeWYBp#SaKr%Kd(uHFMG$^jUDZY>KgvZKZsQ zi-UNG5Jq1gI>@{M1sNG&U};fvC-DxuT(MmhKp?D?B{I%dKozCL{UHNKb{LkPGJo7G z1dtwOb0vC|`8uBPipyPxQ5<9z%qh=_O968`LSXqEP-ROxf_D4A;|g zlLB5v4kR)Z(B$?`5iMHW2tB$NwZ;QgLtVTRn><7)uO>`eZ5MtN^b;WHMB+FY%mWd` z;edoug%&zojhROUKlzP9S6jK40!OZ$+UpxL<344fm?329AK4$4osQ?)yUF7sEMWWB z%%E{op1@^AReRk1;iBMv%id8hxGV{Q^Seky;}jjkFB%)q?{9!Azo;99UwG0>qg3Z{ zOm%gyJrxBIlSDZbI1}2-Z1)klYfn>sH`VB@#LK~$kh4!`BZi;TAb()&2d-3{C7i`6 z3<(+xRTZ99R?S&+;&=~6m*gpKiK^x8LlsV2$m40|u|llY*C@ExUibqC9Qnjb>AAf> zU*N&ejX<<D#p-0flYPe%5uJM$nYgrsA}Re`w|AK%MV4wJtArYkik@ zC*kvXykCc7HIJ*QoX_j1gC3JrYSFiDb3OzGUOmh8exb! zrZZY-oX%Q{Q~uwwRQ{^T6)@aF{y!V8*FwF?UAq!KPhOuMCm04WUPF9b>1}=YN0R5A z=h2Aq?+MRwBbz9W-Jg(n{!u1>cqHl_tLop8=_cObpEsONWL!mJf5jV)@M{G&WQKe7 zhL;103N=@U7_Gx}$oZP42!`g=+72_vPYv1pNu4H{9C%xon?>_&BCLY>(`O-Nof?74 z@^{{N{j`10Y5@h=0?{Qk@0&L`iYtR*DvI4+(OOjx?pCUo__VFN^e1>rGbs}OraJjx z=o~8jn}pK5Ou Date: Thu, 16 Jan 2025 23:23:39 +0100 Subject: [PATCH 3/7] fix/actions: use v4 of upload --- .github/actions/upload-plugin/action.yml | 2 +- Example/LTAPIExample.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/upload-plugin/action.yml b/.github/actions/upload-plugin/action.yml index 6d74b1e..043902a 100644 --- a/.github/actions/upload-plugin/action.yml +++ b/.github/actions/upload-plugin/action.yml @@ -28,7 +28,7 @@ runs: mv "${{ inputs.pdbFileName }}" "deploy-${{ inputs.pluginName }}/${{ inputs.pluginName }}/${{ inputs.archFolder }}" fi - name: Upload plugin - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: ${{ inputs.pluginName }} path: deploy-${{ inputs.pluginName }}/* # this way the top folder in the artifacts is "MyPlugin" diff --git a/Example/LTAPIExample.cpp b/Example/LTAPIExample.cpp index 6755194..5281be9 100755 --- a/Example/LTAPIExample.cpp +++ b/Example/LTAPIExample.cpp @@ -594,7 +594,7 @@ void draw_list_enhanced(XPLMWindowID in_window_id, void * /*in_refcon*/) // Makes a nice title to the enhanced window void SetEnhWndTitle(EnhAircraft* pAcOnCam) { - char szVersion[10]; + char szVersion[20]; char szTitle[150]; // Proper semantic versioning was introduced with LT v3.0.0 only From 68ed40b223a66284833820148252b326404ce829 Mon Sep 17 00:00:00 2001 From: TwinFan Date: Thu, 16 Jan 2025 23:26:25 +0100 Subject: [PATCH 4/7] fix/actions: differentiate env in naming of upload files --- .github/actions/upload-plugin/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/upload-plugin/action.yml b/.github/actions/upload-plugin/action.yml index 043902a..788b5e9 100644 --- a/.github/actions/upload-plugin/action.yml +++ b/.github/actions/upload-plugin/action.yml @@ -30,6 +30,6 @@ runs: - name: Upload plugin uses: actions/upload-artifact@v4 with: - name: ${{ inputs.pluginName }} + name: ${{ inputs.pluginName }}-${{ env.platform }} path: deploy-${{ inputs.pluginName }}/* # this way the top folder in the artifacts is "MyPlugin" if-no-files-found: error From 6d9b30ae079ab9d81c75f159118d182bfee602cc Mon Sep 17 00:00:00 2001 From: TwinFan Date: Sat, 18 Jan 2025 22:05:53 +0100 Subject: [PATCH 5/7] fix: Added FPH_PARKED status, closes #6 --- LTAPI.cpp | 1 + LTAPI.h | 1 + 2 files changed, 2 insertions(+) diff --git a/LTAPI.cpp b/LTAPI.cpp index b44d56d..9d538ea 100644 --- a/LTAPI.cpp +++ b/LTAPI.cpp @@ -277,6 +277,7 @@ std::string LTAPIAircraft::getPhaseStr () const { switch (bulk.bits.phase) { case FPH_UNKNOWN: return "Unknown"; + case FPH_PARKED: return "Parked"; case FPH_TAXI: return "Taxi"; case FPH_TAKE_OFF: return "Take Off"; case FPH_TO_ROLL: return "Take Off Roll"; diff --git a/LTAPI.h b/LTAPI.h index 2a7ee27..15fd1ce 100644 --- a/LTAPI.h +++ b/LTAPI.h @@ -66,6 +66,7 @@ class LTAPIAircraft /// @brief Flight phase, definition copied from LiveTraffic enum LTFlightPhase { FPH_UNKNOWN = 0, ///< used for initializations + FPH_PARKED = 5, ///< Parked at startup position FPH_TAXI = 10, ///< Taxiing FPH_TAKE_OFF = 20, ///< Group of status for take-off: FPH_TO_ROLL, ///< Take-off roll From 54d31fbb76a73d4ded7738c3f11cca0f8bdce060 Mon Sep 17 00:00:00 2001 From: TwinFan Date: Sat, 18 Jan 2025 23:20:57 +0100 Subject: [PATCH 6/7] feat: isVisible information, closes #5 --- .../xcschemes/LTAPIExample.xcscheme | 71 +++++++++++++++++++ Example/LTAPIExample.cpp | 16 +++-- LTAPI.cpp | 2 +- LTAPI.h | 5 +- 4 files changed, 84 insertions(+), 10 deletions(-) create mode 100644 Example/LTAPI.xcodeproj/xcshareddata/xcschemes/LTAPIExample.xcscheme diff --git a/Example/LTAPI.xcodeproj/xcshareddata/xcschemes/LTAPIExample.xcscheme b/Example/LTAPI.xcodeproj/xcshareddata/xcschemes/LTAPIExample.xcscheme new file mode 100644 index 0000000..6439f2c --- /dev/null +++ b/Example/LTAPI.xcodeproj/xcshareddata/xcschemes/LTAPIExample.xcscheme @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/LTAPIExample.cpp b/Example/LTAPIExample.cpp index 5281be9..526706c 100755 --- a/Example/LTAPIExample.cpp +++ b/Example/LTAPIExample.cpp @@ -12,7 +12,7 @@ /// But you can also define all up to XPLM301, if you want. /// @see https://twinfan.github.io/LTAPI/ /// @author Birger Hoppe -/// @copyright (c) 2019-2020 Birger Hoppe +/// @copyright (c) 2019-2025 Birger Hoppe /// @copyright Permission is hereby granted, free of charge, to any person obtaining a /// copy of this software and associated documentation files (the "Software"), /// to deal in the Software without restriction, including without limitation @@ -316,7 +316,7 @@ class EnhAircraft : public LTAPIAircraft static EnhAircraft* lnTaken[MAX_LN]; // we move the ability to output a line into this class - void DrawOutput(int x, int y, int r, int b); + void DrawOutput(int x, int y, int r, int b) const; // this creates a new EnhAircraft object static LTAPIAircraft* CreateNewObject() { return new EnhAircraft(); } }; @@ -341,7 +341,7 @@ EnhAircraft::~EnhAircraft() bool EnhAircraft::updateAircraft(const LTAPIBulkData& __bulk, size_t __inSize) { - // first we call the LTAPI do fetch (updated) data for the a/c + // first we call the LTAPI to fetch (updated) data for the a/c if (!LTAPIAircraft::updateAircraft(__bulk,__inSize)) return false; @@ -412,7 +412,7 @@ DRAW_C(w,buf,xplmFont_Proportional) snprintf(buf,sizeof(buf),"%*.*f",dig,dec,n); \ DRAW_C(w,buf,xplmFont_Basic) -void EnhAircraft::DrawOutput(int x, int y, int r, int) +void EnhAircraft::DrawOutput(int x, int y, int r, int) const { char buf[500]; if (dispStatus == ED_SHOWN || dispStatus == ED_NONE) @@ -448,7 +448,8 @@ void EnhAircraft::DrawOutput(int x, int y, int r, int) } else { DRAW_T(20, "", xplmFont_Proportional); } - DRAW_T(20, isOnCamera() ? "X" : "", xplmFont_Proportional); + DRAW_T(25, isVisible() ? "X" : "", xplmFont_Proportional); + DRAW_T(25, isOnCamera() ? "X" : "", xplmFont_Proportional); DRAW_S(180, getCslModel()); DRAW_S(150, getTrackedBy()); DRAW_S(200, getCatDescr()); @@ -538,7 +539,8 @@ void draw_header (int x, int y, int r) DRAW_T(80, "Phase", xplmFont_Proportional); DRAW_T(60, "key", xplmFont_Proportional); DRAW_T(20, "#", xplmFont_Proportional); - DRAW_T(20, "cam", xplmFont_Proportional); + DRAW_T(25, "vis", xplmFont_Proportional); + DRAW_T(25, "cam", xplmFont_Proportional); DRAW_T(180, "CSL Model", xplmFont_Proportional); DRAW_T(150, "tracked by", xplmFont_Proportional); DRAW_T(200, "Category", xplmFont_Proportional); @@ -577,7 +579,7 @@ void draw_list_enhanced(XPLMWindowID in_window_id, void * /*in_refcon*/) return; // We now cycle the 20 line items that our enhanced object keeps track of - for (EnhAircraft* pEnh: EnhAircraft::lnTaken) + for (const EnhAircraft* pEnh: EnhAircraft::lnTaken) { // output that aircraft's info if (pEnh) diff --git a/LTAPI.cpp b/LTAPI.cpp index 9d538ea..19e556f 100644 --- a/LTAPI.cpp +++ b/LTAPI.cpp @@ -10,7 +10,7 @@ /// textual info like type, registration, call sign, flight number. /// @see https://twinfan.github.io/LTAPI/ /// @author Birger Hoppe -/// @copyright (c) 2019-2020 Birger Hoppe +/// @copyright (c) 2019-2025 Birger Hoppe /// @copyright Permission is hereby granted, free of charge, to any person obtaining a /// copy of this software and associated documentation files (the "Software"), /// to deal in the Software without restriction, including without limitation diff --git a/LTAPI.h b/LTAPI.h index 15fd1ce..48fd203 100644 --- a/LTAPI.h +++ b/LTAPI.h @@ -10,7 +10,7 @@ /// textual info like type, registration, call sign, flight number. /// @see https://twinfan.github.io/LTAPI/ /// @author Birger Hoppe -/// @copyright (c) 2019-2020 Birger Hoppe +/// @copyright (c) 2019-2025 Birger Hoppe /// @copyright Permission is hereby granted, free of charge, to any person obtaining a /// copy of this software and associated documentation files (the "Software"), /// to deal in the Software without restriction, including without limitation @@ -122,7 +122,7 @@ class LTAPIAircraft bool bcn : 1; ///< beacon light bool strb : 1; ///< strobe light bool nav : 1; ///< navigaton lights - unsigned filler1 : 1; ///< unused + bool hidden : 1; ///< aircraft _not_ visible? bool camera : 1; ///< is LiveTraffic's camera on this aircraft? // Misc int multiIdx : 8; ///< multiplayer index if plane reported via sim/multiplayer/position dataRefs, 0 if not @@ -264,6 +264,7 @@ class LTAPIAircraft bool isOnGnd() const { return bulk.bits.onGnd; } ///< Is plane on ground? LTFlightPhase getPhase() const { return bulk.bits.phase; } ///< flight phase std::string getPhaseStr() const; ///< flight phase as string + bool isVisible() const { return !bulk.bits.hidden; } ///< aircraft visible? // configuration float getFlaps() const { return bulk.flaps; } ///< flap position: 0.0 retracted, 1.0 fully extended float getGear() const { return bulk.gear; } ///< gear position: 0.0 retracted, 1.0 fully extended From 6d78216a01ee94040114db38ee263f9f34305800 Mon Sep 17 00:00:00 2001 From: TwinFan Date: Sat, 18 Jan 2025 23:21:21 +0100 Subject: [PATCH 7/7] Documentation update --- LTAPI.doxygen | 1167 +++++--- LTAPI.doxygen.bak | 2565 ----------------- MainPage.dox | 10 - README.md | 2 +- docs/MainPage.dox | 12 + docs/html/LTAPI_8cpp.html | 196 +- docs/html/LTAPI_8h.html | 173 +- docs/html/LTAPI_8h_source.html | 1171 ++++---- docs/html/MainPage_8dox.html | 43 +- docs/html/README_8md.html | 67 + docs/html/annotated.html | 51 +- docs/html/bc_sd.png | Bin 0 -> 635 bytes docs/html/bdwn.png | Bin 147 -> 0 bytes docs/html/classLTAPIAircraft-members.html | 171 +- docs/html/classLTAPIAircraft.html | 797 ++--- docs/html/classLTAPIConnect-members.html | 75 +- docs/html/classLTAPIConnect.html | 412 +-- docs/html/classLTDataRef-members.html | 59 +- docs/html/classLTDataRef.html | 238 +- docs/html/classes.html | 69 +- docs/html/clipboard.js | 61 + .../dir_49e56c817e5e54854c35e136979f97ca.html | 71 + docs/html/doc.png | Bin 746 -> 0 bytes docs/html/doc.svg | 12 + docs/html/docd.svg | 12 + docs/html/doxygen.css | 1425 ++++++--- docs/html/doxygen.png | Bin 3779 -> 0 bytes docs/html/doxygen.svg | 28 + docs/html/doxygen_crawl.html | 322 +++ docs/html/dynsections.js | 253 +- docs/html/files.html | 46 +- docs/html/folderclosed.png | Bin 616 -> 0 bytes docs/html/folderclosed.svg | 11 + docs/html/folderclosedd.svg | 11 + docs/html/folderopen.png | Bin 597 -> 0 bytes docs/html/folderopen.svg | 17 + docs/html/folderopend.svg | 12 + docs/html/functions.html | 741 ++--- docs/html/functions_enum.html | 44 +- docs/html/functions_eval.html | 109 +- docs/html/functions_func.html | 381 +-- docs/html/functions_type.html | 44 +- docs/html/functions_vars.html | 353 +-- docs/html/globals.html | 88 +- docs/html/globals_defs.html | 56 +- docs/html/globals_type.html | 52 +- docs/html/globals_vars.html | 62 +- docs/html/index.html | 54 +- docs/html/jquery.js | 197 +- docs/html/md_README.html | 130 + docs/html/menu.js | 101 +- docs/html/menudata.js | 7 +- docs/html/minus.svg | 8 + docs/html/minusd.svg | 8 + docs/html/namespaceLTAPI.html | 132 - docs/html/namespacemembers.html | 58 - docs/html/namespacemembers_func.html | 58 - docs/html/namespaces.html | 59 - docs/html/nav_fd.png | Bin 0 -> 169 bytes docs/html/nav_hd.png | Bin 0 -> 114 bytes docs/html/navtree.css | 149 + docs/html/pages.html | 72 + docs/html/plus.svg | 9 + docs/html/plusd.svg | 9 + docs/html/resize.js | 147 + docs/html/splitbard.png | Bin 0 -> 282 bytes ...TAPIAircraft_1_1LTAPIBulkData-members.html | 63 +- .../structLTAPIAircraft_1_1LTAPIBulkData.html | 271 +- ...ircraft_1_1LTAPIBulkInfoTexts-members.html | 59 +- ...ctLTAPIAircraft_1_1LTAPIBulkInfoTexts.html | 197 +- ...ructLTAPIAircraft_1_1LTLights-members.html | 47 +- .../html/structLTAPIAircraft_1_1LTLights.html | 98 +- docs/html/tab_ad.png | Bin 0 -> 135 bytes docs/html/tab_bd.png | Bin 0 -> 173 bytes docs/html/tab_hd.png | Bin 0 -> 180 bytes docs/html/tab_sd.png | Bin 0 -> 188 bytes docs/html/tabs.css | 2 +- docs/index.md | 54 - 78 files changed, 6422 insertions(+), 7056 deletions(-) delete mode 100644 LTAPI.doxygen.bak delete mode 100644 MainPage.dox create mode 100644 docs/MainPage.dox create mode 100644 docs/html/README_8md.html create mode 100644 docs/html/bc_sd.png delete mode 100644 docs/html/bdwn.png create mode 100644 docs/html/clipboard.js create mode 100644 docs/html/dir_49e56c817e5e54854c35e136979f97ca.html delete mode 100644 docs/html/doc.png create mode 100644 docs/html/doc.svg create mode 100644 docs/html/docd.svg delete mode 100644 docs/html/doxygen.png create mode 100644 docs/html/doxygen.svg create mode 100644 docs/html/doxygen_crawl.html delete mode 100644 docs/html/folderclosed.png create mode 100644 docs/html/folderclosed.svg create mode 100644 docs/html/folderclosedd.svg delete mode 100644 docs/html/folderopen.png create mode 100644 docs/html/folderopen.svg create mode 100644 docs/html/folderopend.svg create mode 100644 docs/html/md_README.html create mode 100644 docs/html/minus.svg create mode 100644 docs/html/minusd.svg delete mode 100644 docs/html/namespaceLTAPI.html delete mode 100644 docs/html/namespacemembers.html delete mode 100644 docs/html/namespacemembers_func.html delete mode 100644 docs/html/namespaces.html create mode 100644 docs/html/nav_fd.png create mode 100644 docs/html/nav_hd.png create mode 100644 docs/html/navtree.css create mode 100644 docs/html/pages.html create mode 100644 docs/html/plus.svg create mode 100644 docs/html/plusd.svg create mode 100644 docs/html/resize.js create mode 100644 docs/html/splitbard.png create mode 100644 docs/html/tab_ad.png create mode 100644 docs/html/tab_bd.png create mode 100644 docs/html/tab_hd.png create mode 100644 docs/html/tab_sd.png delete mode 100644 docs/index.md diff --git a/LTAPI.doxygen b/LTAPI.doxygen index 3dcf017..7abe7c7 100644 --- a/LTAPI.doxygen +++ b/LTAPI.doxygen @@ -1,7 +1,7 @@ -# Doxyfile 1.8.18 +# Doxyfile 1.12.0 # This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. +# Doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. @@ -12,6 +12,16 @@ # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). +# +# Note: +# +# Use Doxygen to compare the used configuration file with the template +# configuration file: +# doxygen -x [configFile] +# Use Doxygen to compare the used configuration file with the template +# configuration file without replacing the environment variables or CMake type +# replacement variables: +# doxygen -x_noenv [configFile] #--------------------------------------------------------------------------- # Project related configuration options @@ -32,7 +42,7 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = "LTAPI" +PROJECT_NAME = LTAPI # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version @@ -53,24 +63,42 @@ PROJECT_BRIEF = "API to access LiveTraffic's aircraft information" PROJECT_LOGO = +# With the PROJECT_ICON tag one can specify an icon that is included in the tabs +# when the HTML document is shown. Doxygen will copy the logo to the output +# directory. + +PROJECT_ICON = + # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If +# entered, it will be relative to the location where Doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = docs -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where +# If the CREATE_SUBDIRS tag is set to YES then Doxygen will create up to 4096 +# sub-directories (in 2 levels) under the output directory of each output format +# and will distribute the generated files over these directories. Enabling this +# option can be useful when feeding Doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes -# performance problems for the file system. +# performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to +# control the number of sub-directories. # The default value is: NO. CREATE_SUBDIRS = NO -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# Controls the number of sub-directories that will be created when +# CREATE_SUBDIRS tag is set to YES. Level 0 represents 16 directories, and every +# level increment doubles the number of directories, resulting in 4096 +# directories at level 8 which is the default and also the maximum value. The +# sub-directories are organized in 2 levels, the first level always has a fixed +# number of 16 directories. +# Minimum value: 0, maximum value: 8, default value: 8. +# This tag requires that the tag CREATE_SUBDIRS is set to YES. + +CREATE_SUBDIRS_LEVEL = 8 + +# If the ALLOW_UNICODE_NAMES tag is set to YES, Doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. @@ -79,36 +107,28 @@ CREATE_SUBDIRS = NO ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this +# documentation generated by Doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian, +# Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English +# (United States), Esperanto, Farsi (Persian), Finnish, French, German, Greek, +# Hindi, Hungarian, Indonesian, Italian, Japanese, Japanese-en (Japanese with +# English messages), Korean, Korean-en (Korean with English messages), Latvian, +# Lithuanian, Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, +# Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, +# Swedish, Turkish, Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English -# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all generated output in the proper direction. -# Possible values are: None, LTR, RTL and Context. -# The default value is: None. - -OUTPUT_TEXT_DIRECTION = None - -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# If the BRIEF_MEMBER_DESC tag is set to YES, Doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# If the REPEAT_BRIEF tag is set to YES, Doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the @@ -139,13 +159,13 @@ ABBREVIATE_BRIEF = "The $name class" \ the # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief +# Doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = NO -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# If the INLINE_INHERITED_MEMB tag is set to YES, Doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. @@ -153,7 +173,7 @@ ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# If the FULL_PATH_NAMES tag is set to YES, Doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. @@ -163,11 +183,11 @@ FULL_PATH_NAMES = YES # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to +# If left blank the directory from which Doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. +# will be relative from the directory where Doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = @@ -181,14 +201,14 @@ STRIP_FROM_PATH = STRIP_FROM_INC_PATH = -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# If the SHORT_NAMES tag is set to YES, Doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen will interpret the # first line (until the first dot) of a Javadoc-style comment as the brief # description. If set to NO, the Javadoc-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief @@ -197,17 +217,17 @@ SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO -# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# If the JAVADOC_BANNER tag is set to YES then Doxygen will interpret a line # such as # /*************** # as being the beginning of a Javadoc-style comment "banner". If set to NO, the # Javadoc-style will behave just like regular comments and it will not be -# interpreted by doxygen. +# interpreted by Doxygen. # The default value is: NO. JAVADOC_BANNER = NO -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) @@ -215,7 +235,7 @@ JAVADOC_BANNER = NO QT_AUTOBRIEF = NO -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this @@ -227,13 +247,21 @@ QT_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO +# By default Python docstrings are displayed as preformatted text and Doxygen's +# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the +# Doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as Doxygen documentation. +# The default value is: YES. + +PYTHON_DOCSTRING = YES + # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. INHERIT_DOCS = YES -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# If the SEPARATE_MEMBER_PAGES tag is set to YES then Doxygen will produce a new # page for each member. If set to NO, the documentation of a member will be part # of the file/class/namespace that contains it. # The default value is: NO. @@ -250,16 +278,16 @@ TAB_SIZE = 4 # the documentation. An alias has the form: # name=value # For example adding -# "sideeffect=@par Side Effects:\n" +# "sideeffect=@par Side Effects:^^" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines (in the resulting output). You can put ^^ in the value part of an -# alias to insert a newline as if a physical newline was in the original file. -# When you need a literal { or } or , in the value part of an alias you have to -# escape them by means of a backslash (\), this can lead to conflicts with the -# commands \{ and \} for these it is advised to use the version @{ and @} or use -# a double escape (\\{ and \\}) +# "Side Effects:". Note that you cannot put \n's in the value part of an alias +# to insert newlines (in the resulting output). You can put ^^ in the value part +# of an alias to insert a newline as if a physical newline was in the original +# file. When you need a literal { or } or , in the value part of an alias you +# have to escape them by means of a backslash (\), this can lead to conflicts +# with the commands \{ and \} for these it is advised to use the version @{ and +# @} or use a double escape (\\{ and \\}) ALIASES = @@ -303,27 +331,30 @@ OPTIMIZE_OUTPUT_SLICE = NO # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, -# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, -# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# language is one of the parsers supported by Doxygen: IDL, Java, JavaScript, +# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, +# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: # FortranFree, unknown formatted Fortran: Fortran. In the later case the parser # tries to guess whether the code is fixed or free formatted code, this is the -# default for Fortran type files). For instance to make doxygen treat .inc files +# default for Fortran type files). For instance to make Doxygen treat .inc files # as Fortran files (default is PHP), and .f files as C (default is Fortran), # use: inc=Fortran f=C. # # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. +# the files are not read by Doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. EXTENSION_MAPPING = -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# If the MARKDOWN_SUPPORT tag is enabled then Doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See https://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# The output of markdown processing is further processed by Doxygen, so you can +# mix Doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. @@ -333,12 +364,23 @@ MARKDOWN_SUPPORT = YES # to that level are automatically included in the table of contents, even if # they do not have an id attribute. # Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 5. +# Minimum value: 0, maximum value: 99, default value: 6. # This tag requires that the tag MARKDOWN_SUPPORT is set to YES. TOC_INCLUDE_HEADINGS = 0 -# When enabled doxygen tries to link words that correspond to documented +# The MARKDOWN_ID_STYLE tag can be used to specify the algorithm used to +# generate identifiers for the Markdown headings. Note: Every identifier is +# unique. +# Possible values are: DOXYGEN use a fixed 'autotoc_md' string followed by a +# sequence number starting at 0 and GITHUB use the lower case version of title +# with any whitespace replaced by '-' and punctuation characters removed. +# The default value is: DOXYGEN. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +MARKDOWN_ID_STYLE = DOXYGEN + +# When enabled Doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or # globally by setting AUTOLINK_SUPPORT to NO. @@ -348,10 +390,10 @@ AUTOLINK_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and +# tag to YES in order to let Doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. +# versus func(std::string) {}). This also makes the inheritance and +# collaboration diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = NO @@ -363,16 +405,16 @@ BUILTIN_STL_SUPPORT = NO CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. +# https://www.riverbankcomputing.com/software) sources only. Doxygen will parse +# them like normal C++ but will assume all classes use public instead of private +# inheritance when no explicit protection keyword is present. # The default value is: NO. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. +# Doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. @@ -381,7 +423,7 @@ SIP_SUPPORT = NO IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first +# tag is set to YES then Doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. @@ -439,21 +481,42 @@ TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The +# code, Doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# Doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest +# symbols. At the end of a run Doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 +# The NUM_PROC_THREADS specifies the number of threads Doxygen is allowed to use +# during processing. When set to 0 Doxygen will based this on the number of +# cores available in the system. You can set it explicitly to a value larger +# than 0 to get more control over the balance between CPU load and processing +# speed. At this moment only the input processing can be done using multiple +# threads. Since this is still an experimental feature the default is set to 1, +# which effectively disables parallel processing. Please report any issues you +# encounter. Generating dot graphs in parallel is controlled by the +# DOT_NUM_THREADS setting. +# Minimum value: 0, maximum value: 32, default value: 1. + +NUM_PROC_THREADS = 1 + +# If the TIMESTAMP tag is set different from NO then each generated page will +# contain the date or date and time when the page was generated. Setting this to +# NO can help when comparing the output of multiple runs. +# Possible values are: YES, NO, DATETIME and DATE. +# The default value is: NO. + +TIMESTAMP = NO + #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# If the EXTRACT_ALL tag is set to YES, Doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. @@ -512,7 +575,14 @@ EXTRACT_LOCAL_METHODS = NO EXTRACT_ANON_NSPACES = NO -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# If this flag is set to YES, the name of an unnamed parameter in a declaration +# will be determined by the corresponding definition. By default unnamed +# parameters remain unnamed in the output. +# The default value is: YES. + +RESOLVE_UNNAMED_PARAMS = YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. @@ -520,22 +590,23 @@ EXTRACT_ANON_NSPACES = NO HIDE_UNDOC_MEMBERS = NO -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. +# will also hide undocumented C++ concepts if enabled. This option has no effect +# if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all friend # declarations. If set to NO, these declarations will be included in the # documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. @@ -549,30 +620,44 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# (including Cygwin) ands Mac users are advised to set this option to NO. -# The default value is: system dependent. +# With the correct setting of option CASE_SENSE_NAMES Doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and macOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. +# Possible values are: SYSTEM, NO and YES. +# The default value is: SYSTEM. CASE_SENSE_NAMES = YES -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# If the HIDE_SCOPE_NAMES tag is set to NO then Doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then Doxygen will # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. HIDE_COMPOUND_REFERENCE= NO -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class +# will show which file needs to be included to use the class. +# The default value is: YES. + +SHOW_HEADERFILE = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES then Doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. @@ -585,7 +670,7 @@ SHOW_INCLUDE_FILES = YES SHOW_GROUPED_MEMB_INC = NO -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. @@ -597,14 +682,14 @@ FORCE_LOCAL_INCLUDES = NO INLINE_INFO = YES -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# If the SORT_MEMBER_DOCS tag is set to YES then Doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# If the SORT_BRIEF_DOCS tag is set to YES then Doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. @@ -612,7 +697,7 @@ SORT_MEMBER_DOCS = YES SORT_BRIEF_DOCS = NO -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then Doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. @@ -624,7 +709,7 @@ SORT_BRIEF_DOCS = NO SORT_MEMBERS_CTORS_1ST = NO -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# If the SORT_GROUP_NAMES tag is set to YES then Doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. @@ -641,11 +726,11 @@ SORT_GROUP_NAMES = NO SORT_BY_SCOPE_NAME = NO -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# If the STRICT_PROTO_MATCHING option is enabled and Doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# simple string match. By disabling STRICT_PROTO_MATCHING Doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. @@ -715,24 +800,25 @@ SHOW_FILES = YES SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from +# Doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file +# by Doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated +# by Doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can +# that represents Doxygen's defaults, run Doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. +# will be used as the name of the layout file. See also section "Changing the +# layout of pages" for information. # -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# Note that if you run Doxygen from a directory containing a file called +# DoxygenLayout.xml, Doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = @@ -747,19 +833,35 @@ LAYOUT_FILE = CITE_BIB_FILES = +# The EXTERNAL_TOOL_PATH tag can be used to extend the search path (PATH +# environment variable) so that external tools such as latex and gs can be +# found. +# Note: Directories specified with EXTERNAL_TOOL_PATH are added in front of the +# path already specified by the PATH variable, and are added in the order +# specified. +# Note: This option is particularly useful for macOS version 14 (Sonoma) and +# higher, when running Doxygen from Doxywizard, because in this case any user- +# defined changes to the PATH are ignored. A typical example on macOS is to set +# EXTERNAL_TOOL_PATH = /Library/TeX/texbin /usr/local/bin +# together with the standard path, the full search path used by doxygen when +# launching external tools will then become +# PATH=/Library/TeX/texbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin + +EXTERNAL_TOOL_PATH = + #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the +# standard output by Doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# generated to standard error (stderr) by Doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. @@ -767,49 +869,89 @@ QUIET = NO WARNINGS = YES -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# If the WARN_IF_UNDOCUMENTED tag is set to YES then Doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. +# If the WARN_IF_DOC_ERROR tag is set to YES, Doxygen will generate warnings for +# potential errors in the documentation, such as documenting some parameters in +# a documented function twice, or documenting parameters that don't exist or +# using markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES +# If WARN_IF_INCOMPLETE_DOC is set to YES, Doxygen will warn about incomplete +# function parameter documentation. If set to NO, Doxygen will accept that some +# parameters have no documentation without warning. +# The default value is: YES. + +WARN_IF_INCOMPLETE_DOC = YES + # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. If -# EXTRACT_ALL is set to YES then this flag will automatically be disabled. +# value. If set to NO, Doxygen will only warn about wrong parameter +# documentation, but not about the absence of documentation. If EXTRACT_ALL is +# set to YES then this flag will automatically be disabled. See also +# WARN_IF_INCOMPLETE_DOC # The default value is: NO. WARN_NO_PARAMDOC = NO -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. +# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, Doxygen will warn about +# undocumented enumeration values. If set to NO, Doxygen will accept +# undocumented enumeration values. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: NO. + +WARN_IF_UNDOC_ENUM_VAL = NO + +# If the WARN_AS_ERROR tag is set to YES then Doxygen will immediately stop when +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then Doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the Doxygen process Doxygen will return with a non-zero status. +# If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS_PRINT then Doxygen behaves +# like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined Doxygen will not +# write the warning messages in between other messages but write them at the end +# of a run, in case a WARN_LOGFILE is defined the warning messages will be +# besides being in the defined file also be shown at the end of a run, unless +# the WARN_LOGFILE is defined as - i.e. standard output (stdout) in that case +# the behavior will remain as with the setting FAIL_ON_WARNINGS. +# Possible values are: NO, YES, FAIL_ON_WARNINGS and FAIL_ON_WARNINGS_PRINT. # The default value is: NO. WARN_AS_ERROR = NO -# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# The WARN_FORMAT tag determines the format of the warning messages that Doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) +# See also: WARN_LINE_FORMAT # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" +# In the $text part of the WARN_FORMAT command it is possible that a reference +# to a more specific place is given. To make it easier to jump to this place +# (outside of Doxygen) the user can define a custom "cut" / "paste" string. +# Example: +# WARN_LINE_FORMAT = "'vi $file +$line'" +# See also: WARN_FORMAT +# The default value is: at line $line of file $file. + +WARN_LINE_FORMAT = "at line $line of file $file" + # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard -# error (stderr). +# error (stderr). In case the file specified cannot be opened for writing the +# warning and error messages are written to standard error. When as file - is +# specified the warning and error messages are written to standard output +# (stdout). WARN_LOGFILE = @@ -823,34 +965,48 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = MainPage.dox \ +INPUT = docs/MainPage.dox \ + README.md \ LTAPI.h \ LTAPI.cpp # This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# that Doxygen parses. Internally Doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: https://www.gnu.org/software/libiconv/) for the list of -# possible encodings. +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. +# See also: INPUT_FILE_ENCODING # The default value is: UTF-8. INPUT_ENCODING = UTF-8 +# This tag can be used to specify the character encoding of the source files +# that Doxygen parses The INPUT_FILE_ENCODING tag can be used to specify +# character encoding on a per file pattern basis. Doxygen will compare the file +# name with each pattern and apply the encoding instead of the default +# INPUT_ENCODING) if there is a match. The character encodings are a list of the +# form: pattern=encoding (like *.php=ISO-8859-1). +# See also: INPUT_ENCODING for further information on supported encodings. + +INPUT_FILE_ENCODING = + # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. +# read by Doxygen. +# +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. # -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), -# *.doc (to be provided as doxygen C comment), *.txt (to be provided as doxygen -# C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, -# *.vhdl, *.ucf, *.qsf and *.ice. +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cxxm, +# *.cpp, *.cppm, *.ccm, *.c++, *.c++m, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, +# *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, *.h++, *.ixx, *.l, *.cs, *.d, +# *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to +# be provided as Doxygen C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# *.f18, *.f, *.for, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. FILE_PATTERNS = *.c \ *.cc \ @@ -908,7 +1064,7 @@ RECURSIVE = YES # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # -# Note that relative paths are relative to the directory from which doxygen is +# Note that relative paths are relative to the directory from which Doxygen is # run. EXCLUDE = @@ -933,10 +1089,7 @@ EXCLUDE_PATTERNS = # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* +# ANamespace::AClass, ANamespace::*Test EXCLUDE_SYMBOLS = @@ -966,7 +1119,7 @@ EXAMPLE_RECURSIVE = NO IMAGE_PATH = -# The INPUT_FILTER tag can be used to specify a program that doxygen should +# The INPUT_FILTER tag can be used to specify a program that Doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # @@ -981,9 +1134,14 @@ IMAGE_PATH = # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. # +# Note that Doxygen will use the data processed and written to standard output +# for further processing, therefore nothing else, like debug statements or used +# commands (so in case of a Windows batch file always use @echo OFF), should be +# written to standard output. +# # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. +# properly processed by Doxygen. INPUT_FILTER = @@ -996,7 +1154,7 @@ INPUT_FILTER = # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. +# properly processed by Doxygen. FILTER_PATTERNS = @@ -1018,10 +1176,19 @@ FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. +# and want to reuse the introduction page also for the Doxygen output. USE_MDFILE_AS_MAINPAGE = +# The Fortran standard specifies that for fixed formatted Fortran code all +# characters from position 72 are to be considered as comment. A common +# extension is to allow longer lines before the automatic comment starts. The +# setting FORTRAN_COMMENT_AFTER will also make it possible that longer lines can +# be processed before the automatic comment starts. +# Minimum value: 7, maximum value: 10000, default value: 72. + +FORTRAN_COMMENT_AFTER = 72 + #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- @@ -1036,12 +1203,13 @@ USE_MDFILE_AS_MAINPAGE = SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. +# multi-line macros, enums or list initialized variables directly into the +# documentation. # The default value is: NO. INLINE_SOURCES = NO -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct Doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. @@ -1079,7 +1247,7 @@ REFERENCES_LINK_SOURCE = YES SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# point to the HTML generated by the htags(1) tool instead of Doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see https://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. @@ -1093,14 +1261,14 @@ SOURCE_TOOLTIPS = YES # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # -# The result: instead of the source browser generated by doxygen, the links to +# The result: instead of the source browser generated by Doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# If the VERBATIM_HEADERS tag is set the YES then Doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. @@ -1108,31 +1276,42 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES -# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. -# Note: The availability of this option depends on whether or not doxygen was +# If the CLANG_ASSISTED_PARSING tag is set to YES then Doxygen will use the +# clang parser (see: +# http://clang.llvm.org/) for more accurate parsing at the cost of reduced +# performance. This can be particularly helpful with template rich C++ code for +# which Doxygen's built-in parser lacks the necessary type information. +# Note: The availability of this option depends on whether or not Doxygen was # generated with the -Duse_libclang=ON option for CMake. # The default value is: NO. CLANG_ASSISTED_PARSING = NO +# If the CLANG_ASSISTED_PARSING tag is set to YES and the CLANG_ADD_INC_PATHS +# tag is set to YES then Doxygen will add the directory of each input to the +# include path. +# The default value is: YES. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_ADD_INC_PATHS = YES + # If clang assisted parsing is enabled you can provide the compiler with command # line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories +# the include paths will already be set by Doxygen for the files and directories # specified with INPUT and INCLUDE_PATH. # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. CLANG_OPTIONS = # If clang assisted parsing is enabled you can provide the clang parser with the -# path to the compilation database (see: -# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files -# were built. This is equivalent to specifying the "-p" option to a clang tool, -# such as clang-check. These options will then be passed to the parser. -# Note: The availability of this option depends on whether or not doxygen was +# path to the directory containing a file called compile_commands.json. This +# file is the compilation database (see: +# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the +# options used when the source files were built. This is equivalent to +# specifying the -p option to a clang tool, such as clang-check. These options +# will then be passed to the parser. Any options specified with CLANG_OPTIONS +# will be added as well. +# Note: The availability of this option depends on whether or not Doxygen was # generated with the -Duse_libclang=ON option for CMake. CLANG_DATABASE_PATH = @@ -1148,17 +1327,11 @@ CLANG_DATABASE_PATH = ALPHABETICAL_INDEX = YES -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. +# The IGNORE_PREFIX tag can be used to specify a prefix (or a list of prefixes) +# that should be ignored while generating the index headers. The IGNORE_PREFIX +# tag works for classes, function and member names. The entity will be placed in +# the alphabetical list under the first letter of the entity name that remains +# after removing the prefix. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = @@ -1167,7 +1340,7 @@ IGNORE_PREFIX = # Configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# If the GENERATE_HTML tag is set to YES, Doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES @@ -1188,40 +1361,40 @@ HTML_OUTPUT = html HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a +# each generated HTML page. If the tag is left blank Doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. +# that Doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally +# for information on how to generate the default header that Doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description +# default header when upgrading to a newer version of Doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard +# generated HTML page. If the tag is left blank Doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. +# that Doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. +# the HTML output. If left blank Doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. +# sheet that Doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. @@ -1231,13 +1404,18 @@ HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. +# created by Doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. +# list). +# Note: Since the styling of scrollbars can currently not be overruled in +# Webkit/Chromium, the styling will be left out of the default doxygen.css if +# one or more extra stylesheets have been specified. So if scrollbar +# customization is desired it has to be added explicitly. For an example see the +# documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = @@ -1252,9 +1430,22 @@ HTML_EXTRA_STYLESHEET = HTML_EXTRA_FILES = +# The HTML_COLORSTYLE tag can be used to specify if the generated HTML output +# should be rendered with a dark or light theme. +# Possible values are: LIGHT always generates light mode output, DARK always +# generates dark mode output, AUTO_LIGHT automatically sets the mode according +# to the user preference, uses light mode if no preference is set (the default), +# AUTO_DARK automatically sets the mode according to the user preference, uses +# dark mode if no preference is set and TOGGLE allows a user to switch between +# light and dark mode via a button. +# The default value is: AUTO_LIGHT. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE = AUTO_LIGHT + # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see +# this color. Hue is specified as an angle on a color-wheel, see # https://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. @@ -1264,7 +1455,7 @@ HTML_EXTRA_FILES = HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A +# in the HTML output. For a value of 0 the output will use gray-scales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1282,15 +1473,6 @@ HTML_COLORSTYLE_SAT = 100 HTML_COLORSTYLE_GAMMA = 80 -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML # documentation will contain a main index with vertical navigation menus that # are dynamically created via JavaScript. If disabled, the navigation index will @@ -1310,6 +1492,33 @@ HTML_DYNAMIC_MENUS = YES HTML_DYNAMIC_SECTIONS = YES +# If the HTML_CODE_FOLDING tag is set to YES then classes and functions can be +# dynamically folded and expanded in the generated HTML source code. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_CODE_FOLDING = YES + +# If the HTML_COPY_CLIPBOARD tag is set to YES then Doxygen will show an icon in +# the top right corner of code and text fragments that allows the user to copy +# its content to the clipboard. Note this only works if supported by the browser +# and the web page is served via a secure context (see: +# https://www.w3.org/TR/secure-contexts/), i.e. using the https: or file: +# protocol. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COPY_CLIPBOARD = YES + +# Doxygen stores a couple of settings persistently in the browser (via e.g. +# cookies). By default these settings apply to all HTML pages generated by +# Doxygen across all projects. The HTML_PROJECT_COOKIE tag can be used to store +# the settings under a project specific key, such that the user preferences will +# be stored separately. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_PROJECT_COOKIE = + # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to @@ -1325,10 +1534,11 @@ HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: https://developer.apple.com/xcode/), introduced with OSX -# 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, Doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy # genXcode/_index.html for more information. @@ -1345,6 +1555,13 @@ GENERATE_DOCSET = NO DOCSET_FEEDNAME = "Doxygen generated docs" +# This tag determines the URL of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDURL = + # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. @@ -1367,14 +1584,18 @@ DOCSET_PUBLISHER_ID = org.doxygen.Publisher DOCSET_PUBLISHER_NAME = Publisher -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# If the GENERATE_HTMLHELP tag is set to YES then Doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. +# on Windows. In the beginning of 2021 Microsoft took the original page, with +# a.o. the download links, offline the HTML help workshop was already many years +# in maintenance mode). You can download the HTML help workshop from the web +# archives at Installation executable (see: +# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo +# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). # # The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# generated by Doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for @@ -1394,14 +1615,14 @@ CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. +# Doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). +# (YES) or that it should be included in the main .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1428,6 +1649,16 @@ BINARY_TOC = NO TOC_EXPAND = NO +# The SITEMAP_URL tag is used to specify the full URL of the place where the +# generated documentation will be placed on the server by the user during the +# deployment of the documentation. The generated sitemap is called sitemap.xml +# and placed on the directory specified by HTML_OUTPUT. In case no SITEMAP_URL +# is specified no sitemap is generated. For information about the sitemap +# protocol see https://www.sitemaps.org +# This tag requires that the tag GENERATE_HTML is set to YES. + +SITEMAP_URL = + # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help @@ -1446,7 +1677,8 @@ QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace -# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1454,8 +1686,8 @@ QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- -# folders). +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1463,16 +1695,16 @@ QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = @@ -1484,9 +1716,9 @@ QHP_CUST_FILTER_ATTRS = QHP_SECT_FILTER_ATTRS = -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty Doxygen will try to +# run qhelpgenerator on the generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = @@ -1529,18 +1761,30 @@ DISABLE_INDEX = NO # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. +# further fine tune the look of the index (see "Fine-tuning the output"). As an +# example, the default style sheet generated by Doxygen has an example that +# shows how to put an image at the root of the tree instead of the PROJECT_NAME. +# Since the tree basically has the same information as the tab index, you could +# consider setting DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = NO +# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the +# FULL_SIDEBAR option determines if the side bar is limited to only the treeview +# area (value NO) or if it should extend to the full height of the window (value +# YES). Setting this to YES gives a layout similar to +# https://docs.readthedocs.io with more room for contents, but less room for the +# project logo, title, and description. If either GENERATE_TREEVIEW or +# DISABLE_INDEX is set to NO, this option has no effect. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FULL_SIDEBAR = NO + # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. +# Doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. @@ -1549,6 +1793,12 @@ GENERATE_TREEVIEW = NO ENUM_VALUES_PER_LINE = 4 +# When the SHOW_ENUM_VALUES tag is set doxygen will show the specified +# enumeration values besides the enumeration mnemonics. +# The default value is: NO. + +SHOW_ENUM_VALUES = NO + # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. @@ -1556,19 +1806,26 @@ ENUM_VALUES_PER_LINE = 4 TREEVIEW_WIDTH = 250 -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# If the EXT_LINKS_IN_WINDOW option is set to YES, Doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO -# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# If the OBFUSCATE_EMAILS tag is set to YES, Doxygen will obfuscate email +# addresses. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +OBFUSCATE_EMAILS = YES + +# If the HTML_FORMULA_FORMAT option is set to svg, Doxygen will use the pdf2svg # tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see # https://inkscape.org) to generate formulas as SVG images instead of PNGs for # the HTML output. These images will generally look nicer at scaled resolutions. -# Possible values are: png The default and svg Looks nicer but requires the -# pdf2svg tool. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). # The default value is: png. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1576,24 +1833,13 @@ HTML_FORMULA_FORMAT = png # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML +# Doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - # The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands # to create new LaTeX commands to be used in formulas as building blocks. See # the section "Including formulas" for details. @@ -1611,11 +1857,29 @@ FORMULA_MACROFILE = USE_MATHJAX = NO +# With MATHJAX_VERSION it is possible to specify the MathJax version to be used. +# Note that the different versions of MathJax have different requirements with +# regards to the different settings, so it is possible that also other MathJax +# settings have to be changed when switching between the different MathJax +# versions. +# Possible values are: MathJax_2 and MathJax_3. +# The default value is: MathJax_2. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_VERSION = MathJax_2 + # When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. +# the MathJax output. For more details about the output format see MathJax +# version 2 (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 +# (see: +# http://docs.mathjax.org/en/latest/web/components/output.html). # Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. +# compatibility. This is the name for Mathjax version 2, for MathJax version 3 +# this will be translated into chtml), NativeMML (i.e. MathML. Only supported +# for MathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This +# is the name for Mathjax version 3, for MathJax version 2 this will be +# translated into HTML-CSS) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. @@ -1628,33 +1892,40 @@ MATHJAX_FORMAT = HTML-CSS # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of -# MathJax from https://www.mathjax.org before deployment. -# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. +# MathJax from https://www.mathjax.org before deployment. The default value is: +# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 +# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/ # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example +# for MathJax version 2 (see +# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# For example for MathJax version 3 (see +# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): +# MATHJAX_EXTENSIONS = ams # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# The MATHJAX_CODEFILE tag can be used to specify a file with JavaScript pieces # of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_CODEFILE = -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and +# When the SEARCHENGINE tag is enabled Doxygen will generate a search box for +# the HTML output. The underlying search engine uses JavaScript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then +# For large projects the JavaScript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically @@ -1673,7 +1944,7 @@ SEARCHENGINE = NO # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using JavaScript. There # are two flavors of web server based searching depending on the EXTERNAL_SEARCH -# setting. When disabled, doxygen will generate a PHP script for searching and +# setting. When disabled, Doxygen will generate a PHP script for searching and # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing # and searching needs to be provided by external tools. See the section # "External Indexing and Searching" for details. @@ -1682,7 +1953,7 @@ SEARCHENGINE = NO SERVER_BASED_SEARCH = NO -# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP +# When EXTERNAL_SEARCH tag is enabled Doxygen will no longer generate the PHP # script for searching. Instead the search results are written to an XML file # which needs to be processed by an external indexer. Doxygen will invoke an # external search engine pointed to by the SEARCHENGINE_URL option to obtain the @@ -1690,7 +1961,8 @@ SERVER_BASED_SEARCH = NO # # Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: https://xapian.org/). +# Xapian (see: +# https://xapian.org/). # # See the section "External Indexing and Searching" for details. # The default value is: NO. @@ -1703,8 +1975,9 @@ EXTERNAL_SEARCH = NO # # Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: https://xapian.org/). See the section "External Indexing and -# Searching" for details. +# Xapian (see: +# https://xapian.org/). See the section "External Indexing and Searching" for +# details. # This tag requires that the tag SEARCHENGINE is set to YES. SEARCHENGINE_URL = @@ -1725,7 +1998,7 @@ SEARCHDATA_FILE = searchdata.xml EXTERNAL_SEARCH_ID = -# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen +# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through Doxygen # projects other than the one defined by this configuration file, but that are # all added to the same external search index. Each project needs to have a # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of @@ -1739,7 +2012,7 @@ EXTRA_SEARCH_MAPPINGS = # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- -# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. +# If the GENERATE_LATEX tag is set to YES, Doxygen will generate LaTeX output. # The default value is: YES. GENERATE_LATEX = NO @@ -1784,7 +2057,7 @@ MAKEINDEX_CMD_NAME = makeindex LATEX_MAKEINDEX_CMD = \makeindex -# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX +# If the COMPACT_LATEX tag is set to YES, Doxygen generates more compact LaTeX # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -1813,36 +2086,38 @@ PAPER_TYPE = a4 EXTRA_PACKAGES = -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the -# generated LaTeX document. The header should contain everything until the first -# chapter. If it is left blank doxygen will generate a standard header. See -# section "Doxygen usage" for information on how to let doxygen write the -# default header to a separate file. +# The LATEX_HEADER tag can be used to specify a user-defined LaTeX header for +# the generated LaTeX document. The header should contain everything until the +# first chapter. If it is left blank Doxygen will generate a standard header. It +# is highly recommended to start with a default header using +# doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty +# and then modify the file new_header.tex. See also section "Doxygen usage" for +# information on how to generate the default header that Doxygen normally uses. # -# Note: Only use a user-defined header if you know what you are doing! The -# following commands have a special meaning inside the header: $title, -# $datetime, $date, $doxygenversion, $projectname, $projectnumber, -# $projectbrief, $projectlogo. Doxygen will replace $title with the empty -# string, for the replacement values of the other commands the user is referred -# to HTML_HEADER. +# Note: Only use a user-defined header if you know what you are doing! +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of Doxygen. The following +# commands have a special meaning inside the header (and footer): For a +# description of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HEADER = -# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the -# generated LaTeX document. The footer should contain everything after the last -# chapter. If it is left blank doxygen will generate a standard footer. See +# The LATEX_FOOTER tag can be used to specify a user-defined LaTeX footer for +# the generated LaTeX document. The footer should contain everything after the +# last chapter. If it is left blank Doxygen will generate a standard footer. See # LATEX_HEADER for more information on how to generate a default footer and what -# special commands can be used inside the footer. -# -# Note: Only use a user-defined footer if you know what you are doing! +# special commands can be used inside the footer. See also section "Doxygen +# usage" for information on how to generate the default footer that Doxygen +# normally uses. Note: Only use a user-defined footer if you know what you are +# doing! # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_FOOTER = # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined # LaTeX style sheets that are included after the standard style sheets created -# by doxygen. Using this option one can overrule certain style aspects. Doxygen +# by Doxygen. Using this option one can overrule certain style aspects. Doxygen # will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the @@ -1868,40 +2143,38 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES -# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate -# the PDF file directly from the LaTeX files. Set this option to YES, to get a -# higher quality PDF documentation. +# If the USE_PDFLATEX tag is set to YES, Doxygen will use the engine as +# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX +# files. Set this option to YES, to get a higher quality PDF documentation. +# +# See also section LATEX_CMD_NAME for selecting the engine. # The default value is: YES. # This tag requires that the tag GENERATE_LATEX is set to YES. USE_PDFLATEX = YES -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode -# command to the generated LaTeX files. This will instruct LaTeX to keep running -# if errors occur, instead of asking the user for help. This option is also used -# when generating formulas in HTML. +# The LATEX_BATCHMODE tag signals the behavior of LaTeX in case of an error. +# Possible values are: NO same as ERROR_STOP, YES same as BATCH, BATCH In batch +# mode nothing is printed on the terminal, errors are scrolled as if is +# hit at every error; missing files that TeX tries to input or request from +# keyboard input (\read on a not open input stream) cause the job to abort, +# NON_STOP In nonstop mode the diagnostic message will appear on the terminal, +# but there is no possibility of user interaction just like in batch mode, +# SCROLL In scroll mode, TeX will stop only for missing files to input or if +# keyboard input is necessary and ERROR_STOP In errorstop mode, TeX will stop at +# each error, asking for user intervention. # The default value is: NO. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_BATCHMODE = NO -# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the +# If the LATEX_HIDE_INDICES tag is set to YES then Doxygen will not include the # index chapters (such as File Index, Compound Index, etc.) in the output. # The default value is: NO. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HIDE_INDICES = NO -# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source -# code with syntax highlighting in the LaTeX output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_SOURCE_CODE = NO - # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. See # https://en.wikipedia.org/wiki/BibTeX and \cite for more info. @@ -1910,14 +2183,6 @@ LATEX_SOURCE_CODE = NO LATEX_BIB_STYLE = plain -# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_TIMESTAMP = NO - # The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute) # path from which the emoji images will be read. If a relative path is entered, # it will be relative to the LATEX_OUTPUT directory. If left blank the @@ -1930,7 +2195,7 @@ LATEX_EMOJI_DIRECTORY = # Configuration options related to the RTF output #--------------------------------------------------------------------------- -# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The +# If the GENERATE_RTF tag is set to YES, Doxygen will generate RTF output. The # RTF output is optimized for Word 97 and may not look too pretty with other RTF # readers/editors. # The default value is: NO. @@ -1945,7 +2210,7 @@ GENERATE_RTF = NO RTF_OUTPUT = rtf -# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF +# If the COMPACT_RTF tag is set to YES, Doxygen generates more compact RTF # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -1965,38 +2230,36 @@ COMPACT_RTF = NO RTF_HYPERLINKS = NO -# Load stylesheet definitions from file. Syntax is similar to doxygen's +# Load stylesheet definitions from file. Syntax is similar to Doxygen's # configuration file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. # # See also section "Doxygen usage" for information on how to generate the -# default style sheet that doxygen normally uses. +# default style sheet that Doxygen normally uses. # This tag requires that the tag GENERATE_RTF is set to YES. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an RTF document. Syntax is -# similar to doxygen's configuration file. A template extensions file can be +# similar to Doxygen's configuration file. A template extensions file can be # generated using doxygen -e rtf extensionFile. # This tag requires that the tag GENERATE_RTF is set to YES. RTF_EXTENSIONS_FILE = -# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code -# with syntax highlighting in the RTF output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. +# The RTF_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the RTF_OUTPUT output directory. +# Note that the files will be copied as-is; there are no commands or markers +# available. # This tag requires that the tag GENERATE_RTF is set to YES. -RTF_SOURCE_CODE = NO +RTF_EXTRA_FILES = #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- -# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for +# If the GENERATE_MAN tag is set to YES, Doxygen will generate man pages for # classes and files. # The default value is: NO. @@ -2027,7 +2290,7 @@ MAN_EXTENSION = .3 MAN_SUBDIR = -# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, then it # will generate one additional man file for each entity documented in the real # man page(s). These additional files only source the real man page, but without # them the man command would be unable to find the correct page. @@ -2040,7 +2303,7 @@ MAN_LINKS = NO # Configuration options related to the XML output #--------------------------------------------------------------------------- -# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that +# If the GENERATE_XML tag is set to YES, Doxygen will generate an XML file that # captures the structure of the code including all documentation. # The default value is: NO. @@ -2054,7 +2317,7 @@ GENERATE_XML = NO XML_OUTPUT = xml -# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program +# If the XML_PROGRAMLISTING tag is set to YES, Doxygen will dump the program # listings (including syntax highlighting and cross-referencing information) to # the XML output. Note that enabling this will significantly increase the size # of the XML output. @@ -2063,7 +2326,7 @@ XML_OUTPUT = xml XML_PROGRAMLISTING = YES -# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include +# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, Doxygen will include # namespace members in file scope as well, matching the HTML output. # The default value is: NO. # This tag requires that the tag GENERATE_XML is set to YES. @@ -2074,7 +2337,7 @@ XML_NS_MEMB_FILE_SCOPE = NO # Configuration options related to the DOCBOOK output #--------------------------------------------------------------------------- -# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files +# If the GENERATE_DOCBOOK tag is set to YES, Doxygen will generate Docbook files # that can be used to generate PDF. # The default value is: NO. @@ -2088,32 +2351,49 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook -# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the -# program listings (including syntax highlighting and cross-referencing -# information) to the DOCBOOK output. Note that enabling this will significantly -# increase the size of the DOCBOOK output. -# The default value is: NO. -# This tag requires that the tag GENERATE_DOCBOOK is set to YES. - -DOCBOOK_PROGRAMLISTING = NO - #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- -# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an -# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures +# If the GENERATE_AUTOGEN_DEF tag is set to YES, Doxygen will generate an +# AutoGen Definitions (see https://autogen.sourceforge.net/) file that captures # the structure of the code including all documentation. Note that this feature # is still experimental and incomplete at the moment. # The default value is: NO. GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# Configuration options related to Sqlite3 output +#--------------------------------------------------------------------------- + +# If the GENERATE_SQLITE3 tag is set to YES Doxygen will generate a Sqlite3 +# database with symbols found by Doxygen stored in tables. +# The default value is: NO. + +GENERATE_SQLITE3 = NO + +# The SQLITE3_OUTPUT tag is used to specify where the Sqlite3 database will be +# put. If a relative path is entered the value of OUTPUT_DIRECTORY will be put +# in front of it. +# The default directory is: sqlite3. +# This tag requires that the tag GENERATE_SQLITE3 is set to YES. + +SQLITE3_OUTPUT = sqlite3 + +# The SQLITE3_RECREATE_DB tag is set to YES, the existing doxygen_sqlite3.db +# database file will be recreated with each Doxygen run. If set to NO, Doxygen +# will warn if a database file is already found and not modify it. +# The default value is: YES. +# This tag requires that the tag GENERATE_SQLITE3 is set to YES. + +SQLITE3_RECREATE_DB = YES + #--------------------------------------------------------------------------- # Configuration options related to the Perl module output #--------------------------------------------------------------------------- -# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module +# If the GENERATE_PERLMOD tag is set to YES, Doxygen will generate a Perl module # file that captures the structure of the code including all documentation. # # Note that this feature is still experimental and incomplete at the moment. @@ -2121,7 +2401,7 @@ GENERATE_AUTOGEN_DEF = NO GENERATE_PERLMOD = NO -# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary +# If the PERLMOD_LATEX tag is set to YES, Doxygen will generate the necessary # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI # output from the Perl module output. # The default value is: NO. @@ -2151,13 +2431,13 @@ PERLMOD_MAKEVAR_PREFIX = # Configuration options related to the preprocessor #--------------------------------------------------------------------------- -# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all +# If the ENABLE_PREPROCESSING tag is set to YES, Doxygen will evaluate all # C-preprocessor directives found in the sources and include files. # The default value is: YES. ENABLE_PREPROCESSING = YES -# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names +# If the MACRO_EXPANSION tag is set to YES, Doxygen will expand all macro names # in the source code. If set to NO, only conditional compilation will be # performed. Macro expansion can be done in a controlled way by setting # EXPAND_ONLY_PREDEF to YES. @@ -2183,7 +2463,8 @@ SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by the -# preprocessor. +# preprocessor. Note that the INCLUDE_PATH is not recursive, so the setting of +# RECURSIVE has no effect here. # This tag requires that the tag SEARCH_INCLUDES is set to YES. INCLUDE_PATH = @@ -2215,7 +2496,7 @@ PREDEFINED = EXPAND_AS_DEFINED = -# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will +# If the SKIP_FUNCTION_MACROS tag is set to YES then Doxygen's preprocessor will # remove all references to function-like macros that are alone on a line, have # an all uppercase name, and do not end with a semicolon. Such function macros # are typically used for boiler-plate code, and will confuse the parser if not @@ -2239,26 +2520,26 @@ SKIP_FUNCTION_MACROS = YES # section "Linking to external documentation" for more information about the use # of tag files. # Note: Each tag file must have a unique name (where the name does NOT include -# the path). If a tag file is not located in the directory in which doxygen is +# the path). If a tag file is not located in the directory in which Doxygen is # run, you must also specify the path to the tagfile here. TAGFILES = -# When a file name is specified after GENERATE_TAGFILE, doxygen will create a +# When a file name is specified after GENERATE_TAGFILE, Doxygen will create a # tag file that is based on the input files it reads. See section "Linking to # external documentation" for more information about the usage of tag files. GENERATE_TAGFILE = -# If the ALLEXTERNALS tag is set to YES, all external class will be listed in -# the class index. If set to NO, only the inherited external classes will be -# listed. +# If the ALLEXTERNALS tag is set to YES, all external classes and namespaces +# will be listed in the class and namespace index. If set to NO, only the +# inherited external classes will be listed. # The default value is: NO. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will be +# in the topic index. If set to NO, only the current project's groups will be # listed. # The default value is: YES. @@ -2272,42 +2553,26 @@ EXTERNAL_GROUPS = YES EXTERNAL_PAGES = YES #--------------------------------------------------------------------------- -# Configuration options related to the dot tool +# Configuration options related to diagram generator tools #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram -# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to -# NO turns the diagrams off. Note that this option also works with HAVE_DOT -# disabled, but it is recommended to install and use dot, since it yields more -# powerful graphs. -# The default value is: YES. - -CLASS_DIAGRAMS = YES - -# You can include diagrams made with dia in doxygen documentation. Doxygen will -# then run dia to produce the diagram and insert it in the documentation. The -# DIA_PATH tag allows you to specify the directory where the dia binary resides. -# If left empty dia is assumed to be found in the default search path. - -DIA_PATH = - # If set to YES the inheritance and collaboration graphs will hide inheritance # and usage relations if the target is undocumented or is not a class. # The default value is: YES. HIDE_UNDOC_RELATIONS = YES -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# If you set the HAVE_DOT tag to YES then Doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz (see: -# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent +# https://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent # Bell Labs. The other options in this section have no effect if this option is # set to NO # The default value is: NO. HAVE_DOT = NO -# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed -# to run in parallel. When set to 0 doxygen will base this on the number of +# The DOT_NUM_THREADS specifies the number of dot invocations Doxygen is allowed +# to run in parallel. When set to 0 Doxygen will base this on the number of # processors available in the system. You can set it explicitly to a value # larger than 0 to get control over the balance between CPU load and processing # speed. @@ -2316,55 +2581,83 @@ HAVE_DOT = NO DOT_NUM_THREADS = 0 -# When you want a differently looking font in the dot files that doxygen -# generates you can specify the font name using DOT_FONTNAME. You need to make -# sure dot is able to find the font, which can be done by putting it in a -# standard location or by setting the DOTFONTPATH environment variable or by -# setting DOT_FONTPATH to the directory containing the font. -# The default value is: Helvetica. +# DOT_COMMON_ATTR is common attributes for nodes, edges and labels of +# subgraphs. When you want a differently looking font in the dot files that +# Doxygen generates you can specify fontname, fontcolor and fontsize attributes. +# For details please see Node, +# Edge and Graph Attributes specification You need to make sure dot is able +# to find the font, which can be done by putting it in a standard location or by +# setting the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the +# directory containing the font. Default graphviz fontsize is 14. +# The default value is: fontname=Helvetica,fontsize=10. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTNAME = Helvetica +DOT_COMMON_ATTR = "fontname=Helvetica,fontsize=10" -# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of -# dot graphs. -# Minimum value: 4, maximum value: 24, default value: 10. +# DOT_EDGE_ATTR is concatenated with DOT_COMMON_ATTR. For elegant style you can +# add 'arrowhead=open, arrowtail=open, arrowsize=0.5'. Complete documentation about +# arrows shapes. +# The default value is: labelfontname=Helvetica,labelfontsize=10. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTSIZE = 10 +DOT_EDGE_ATTR = "labelfontname=Helvetica,labelfontsize=10" -# By default doxygen will tell dot to use the default font as specified with -# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set -# the path where dot can find it using this tag. +# DOT_NODE_ATTR is concatenated with DOT_COMMON_ATTR. For view without boxes +# around nodes set 'shape=plain' or 'shape=plaintext' Shapes specification +# The default value is: shape=box,height=0.2,width=0.4. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_NODE_ATTR = "shape=box,height=0.2,width=0.4" + +# You can set the path where dot can find font specified with fontname in +# DOT_COMMON_ATTR and others dot attributes. # This tag requires that the tag HAVE_DOT is set to YES. DOT_FONTPATH = -# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for -# each documented class showing the direct and indirect inheritance relations. -# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO. +# If the CLASS_GRAPH tag is set to YES or GRAPH or BUILTIN then Doxygen will +# generate a graph for each documented class showing the direct and indirect +# inheritance relations. In case the CLASS_GRAPH tag is set to YES or GRAPH and +# HAVE_DOT is enabled as well, then dot will be used to draw the graph. In case +# the CLASS_GRAPH tag is set to YES and HAVE_DOT is disabled or if the +# CLASS_GRAPH tag is set to BUILTIN, then the built-in generator will be used. +# If the CLASS_GRAPH tag is set to TEXT the direct and indirect inheritance +# relations will be shown as texts / links. Explicit enabling an inheritance +# graph or choosing a different representation for an inheritance graph of a +# specific class, can be accomplished by means of the command \inheritancegraph. +# Disabling an inheritance graph can be accomplished by means of the command +# \hideinheritancegraph. +# Possible values are: NO, YES, TEXT, GRAPH and BUILTIN. # The default value is: YES. -# This tag requires that the tag HAVE_DOT is set to YES. CLASS_GRAPH = YES -# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a +# If the COLLABORATION_GRAPH tag is set to YES then Doxygen will generate a # graph for each documented class showing the direct and indirect implementation # dependencies (inheritance, containment, and class references variables) of the -# class with other documented classes. +# class with other documented classes. Explicit enabling a collaboration graph, +# when COLLABORATION_GRAPH is set to NO, can be accomplished by means of the +# command \collaborationgraph. Disabling a collaboration graph can be +# accomplished by means of the command \hidecollaborationgraph. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. COLLABORATION_GRAPH = YES -# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for -# groups, showing the direct groups dependencies. +# If the GROUP_GRAPHS tag is set to YES then Doxygen will generate a graph for +# groups, showing the direct groups dependencies. Explicit enabling a group +# dependency graph, when GROUP_GRAPHS is set to NO, can be accomplished by means +# of the command \groupgraph. Disabling a directory graph can be accomplished by +# means of the command \hidegroupgraph. See also the chapter Grouping in the +# manual. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. GROUP_GRAPHS = YES -# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and +# If the UML_LOOK tag is set to YES, Doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. # The default value is: NO. @@ -2381,10 +2674,32 @@ UML_LOOK = NO # but if the number exceeds 15, the total amount of fields shown is limited to # 10. # Minimum value: 0, maximum value: 100, default value: 10. -# This tag requires that the tag HAVE_DOT is set to YES. +# This tag requires that the tag UML_LOOK is set to YES. UML_LIMIT_NUM_FIELDS = 10 +# If the DOT_UML_DETAILS tag is set to NO, Doxygen will show attributes and +# methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS +# tag is set to YES, Doxygen will add type and arguments for attributes and +# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, Doxygen +# will not generate fields with class member information in the UML graphs. The +# class diagrams will look similar to the default class diagrams but using UML +# notation for the relationships. +# Possible values are: NO, YES and NONE. +# The default value is: NO. +# This tag requires that the tag UML_LOOK is set to YES. + +DOT_UML_DETAILS = NO + +# The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters +# to display on a single line. If the actual line length exceeds this threshold +# significantly it will be wrapped across multiple lines. Some heuristics are +# applied to avoid ugly line breaks. +# Minimum value: 0, maximum value: 1000, default value: 17. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_WRAP_THRESHOLD = 17 + # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and # collaboration graphs will show the relations between templates and their # instances. @@ -2394,24 +2709,29 @@ UML_LIMIT_NUM_FIELDS = 10 TEMPLATE_RELATIONS = NO # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to -# YES then doxygen will generate a graph for each documented file showing the +# YES then Doxygen will generate a graph for each documented file showing the # direct and indirect include dependencies of the file with other documented -# files. +# files. Explicit enabling an include graph, when INCLUDE_GRAPH is is set to NO, +# can be accomplished by means of the command \includegraph. Disabling an +# include graph can be accomplished by means of the command \hideincludegraph. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. INCLUDE_GRAPH = YES # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are -# set to YES then doxygen will generate a graph for each documented file showing +# set to YES then Doxygen will generate a graph for each documented file showing # the direct and indirect include dependencies of the file with other documented -# files. +# files. Explicit enabling an included by graph, when INCLUDED_BY_GRAPH is set +# to NO, can be accomplished by means of the command \includedbygraph. Disabling +# an included by graph can be accomplished by means of the command +# \hideincludedbygraph. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. INCLUDED_BY_GRAPH = YES -# If the CALL_GRAPH tag is set to YES then doxygen will generate a call +# If the CALL_GRAPH tag is set to YES then Doxygen will generate a call # dependency graph for every global function or class method. # # Note that enabling this option will significantly increase the time of a run. @@ -2423,7 +2743,7 @@ INCLUDED_BY_GRAPH = YES CALL_GRAPH = NO -# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller +# If the CALLER_GRAPH tag is set to YES then Doxygen will generate a caller # dependency graph for every global function or class method. # # Note that enabling this option will significantly increase the time of a run. @@ -2435,26 +2755,36 @@ CALL_GRAPH = NO CALLER_GRAPH = NO -# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical +# If the GRAPHICAL_HIERARCHY tag is set to YES then Doxygen will graphical # hierarchy of all classes instead of a textual one. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. GRAPHICAL_HIERARCHY = YES -# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the +# If the DIRECTORY_GRAPH tag is set to YES then Doxygen will show the # dependencies a directory has on other directories in a graphical way. The # dependency relations are determined by the #include relations between the -# files in the directories. +# files in the directories. Explicit enabling a directory graph, when +# DIRECTORY_GRAPH is set to NO, can be accomplished by means of the command +# \directorygraph. Disabling a directory graph can be accomplished by means of +# the command \hidedirectorygraph. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. DIRECTORY_GRAPH = YES +# The DIR_GRAPH_MAX_DEPTH tag can be used to limit the maximum number of levels +# of child directories generated in directory dependency graphs by dot. +# Minimum value: 1, maximum value: 25, default value: 1. +# This tag requires that the tag DIRECTORY_GRAPH is set to YES. + +DIR_GRAPH_MAX_DEPTH = 1 + # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. For an explanation of the image formats see the section # output formats in the documentation of the dot tool (Graphviz (see: -# http://www.graphviz.org/)). +# https://www.graphviz.org/)). # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order # to make the SVG files visible in IE 9+ (other browsers do not have this # requirement). @@ -2491,11 +2821,12 @@ DOT_PATH = DOTFILE_DIRS = -# The MSCFILE_DIRS tag can be used to specify one or more directories that -# contain msc files that are included in the documentation (see the \mscfile -# command). +# You can include diagrams made with dia in Doxygen documentation. Doxygen will +# then run dia to produce the diagram and insert it in the documentation. The +# DIA_PATH tag allows you to specify the directory where the dia binary resides. +# If left empty dia is assumed to be found in the default search path. -MSCFILE_DIRS = +DIA_PATH = # The DIAFILE_DIRS tag can be used to specify one or more directories that # contain dia files that are included in the documentation (see the \diafile @@ -2503,28 +2834,28 @@ MSCFILE_DIRS = DIAFILE_DIRS = -# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the -# path where java can find the plantuml.jar file. If left blank, it is assumed -# PlantUML is not used or called during a preprocessing step. Doxygen will -# generate a warning when it encounters a \startuml command in this case and -# will not generate output for the diagram. +# When using PlantUML, the PLANTUML_JAR_PATH tag should be used to specify the +# path where java can find the plantuml.jar file or to the filename of jar file +# to be used. If left blank, it is assumed PlantUML is not used or called during +# a preprocessing step. Doxygen will generate a warning when it encounters a +# \startuml command in this case and will not generate output for the diagram. PLANTUML_JAR_PATH = -# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a -# configuration file for plantuml. +# When using PlantUML, the PLANTUML_CFG_FILE tag can be used to specify a +# configuration file for PlantUML. PLANTUML_CFG_FILE = -# When using plantuml, the specified paths are searched for files specified by -# the !include statement in a plantuml block. +# When using PlantUML, the specified paths are searched for files specified by +# the !include statement in a PlantUML block. PLANTUML_INCLUDE_PATH = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes -# larger than this value, doxygen will truncate the graph, which is visualized -# by representing a node as a red box. Note that doxygen if the number of direct +# larger than this value, Doxygen will truncate the graph, which is visualized +# by representing a node as a red box. Note that if the number of direct # children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. @@ -2545,18 +2876,6 @@ DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not seem -# to support this out of the box. -# -# Warning: Depending on the platform used, enabling this option may lead to -# badly anti-aliased labels on the edges of a graph (i.e. they become hard to -# read). -# The default value is: NO. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_TRANSPARENT = NO - # Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) support @@ -2566,17 +2885,37 @@ DOT_TRANSPARENT = NO DOT_MULTI_TARGETS = NO -# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page +# If the GENERATE_LEGEND tag is set to YES Doxygen will generate a legend page # explaining the meaning of the various boxes and arrows in the dot generated # graphs. +# Note: This tag requires that UML_LOOK isn't set, i.e. the Doxygen internal +# graphical representation for inheritance and collaboration diagrams is used. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot +# If the DOT_CLEANUP tag is set to YES, Doxygen will remove the intermediate # files that are used to generate the various graphs. +# +# Note: This setting is not only used for dot files but also for msc temporary +# files. # The default value is: YES. -# This tag requires that the tag HAVE_DOT is set to YES. DOT_CLEANUP = YES + +# You can define message sequence charts within Doxygen comments using the \msc +# command. If the MSCGEN_TOOL tag is left empty (the default), then Doxygen will +# use a built-in version of mscgen tool to produce the charts. Alternatively, +# the MSCGEN_TOOL tag can also specify the name an external tool. For instance, +# specifying prog as the value, Doxygen will call the tool as prog -T +# -o . The external tool should support +# output file formats "png", "eps", "svg", and "ismap". + +MSCGEN_TOOL = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the \mscfile +# command). + +MSCFILE_DIRS = diff --git a/LTAPI.doxygen.bak b/LTAPI.doxygen.bak deleted file mode 100644 index e28443c..0000000 --- a/LTAPI.doxygen.bak +++ /dev/null @@ -1,2565 +0,0 @@ -# Doxyfile 1.8.15 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the configuration -# file that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# https://www.gnu.org/software/libiconv/ for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = "LTAPI" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = "API to access LiveTraffic's aircraft information" - -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = Documentation - -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all generated output in the proper direction. -# Possible values are: None, LTR, RTL and Context. -# The default value is: None. - -OUTPUT_TEXT_DIRECTION = None - -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = YES - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new -# page for each member. If set to NO, the documentation of a member will be part -# of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines (in the resulting output). You can put ^^ in the value part of an -# alias to insert a newline as if a physical newline was in the original file. -# When you need a literal { or } or , in the value part of an alias you have to -# escape them by means of a backslash (\), this can lead to conflicts with the -# commands \{ and \} for these it is advised to use the version @{ and @} or use -# a double escape (\\{ and \\}) - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice -# sources only. Doxygen will then generate output that is more tailored for that -# language. For instance, namespaces will be presented as modules, types will be -# separated into more groups, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_SLICE = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, -# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: -# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser -# tries to guess whether the code is fixed or free formatted code, this is the -# default for Fortran type files), VHDL, tcl. For instance to make doxygen treat -# .inc files as Fortran files (default is PHP), and .f files as C (default is -# Fortran), use: inc=Fortran f=C. -# -# Note: For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See https://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up -# to that level are automatically included in the table of contents, even if -# they do not have an id attribute. -# Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 0. -# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. - -TOC_INCLUDE_HEADINGS = 0 - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# If one adds a struct or class to a group and this option is enabled, then also -# any nested class or struct is added to the same group. By default this option -# is disabled and one has to add nested compounds explicitly via \ingroup. -# The default value is: NO. - -GROUP_NESTED_COMPOUNDS = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = YES - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO, -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. If set to YES, local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO, these declarations will be -# included in the documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO, these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES, the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will -# append additional text to a page's title, such as Class Reference. If set to -# YES the compound reference will be hidden. -# The default value is: NO. - -HIDE_COMPOUND_REFERENCE= NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. If -# EXTRACT_ALL is set to YES then this flag will automatically be disabled. -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. -# The default value is: NO. - -WARN_AS_ERROR = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING -# Note: If this tag is empty the current directory is searched. - -INPUT = MainPage.dox README.md LTAPI.h LTAPI.cpp - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: https://www.gnu.org/software/libiconv/) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, -# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. - -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.idl \ - *.ddl \ - *.odl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.cs \ - *.d \ - *.php \ - *.php4 \ - *.php5 \ - *.phtml \ - *.inc \ - *.m \ - *.markdown \ - *.md \ - *.mm \ - *.dox \ - *.py \ - *.pyw \ - *.f90 \ - *.f95 \ - *.f03 \ - *.f08 \ - *.f \ - *.for \ - *.tcl \ - *.vhd \ - *.vhdl \ - *.ucf \ - *.qsf \ - *.ice - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# entity all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see https://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse_libclang=ON option for CMake. -# The default value is: NO. - -CLANG_ASSISTED_PARSING = NO - -# If clang assisted parsing is enabled you can provide the compiler with command -# line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories -# specified with INPUT and INCLUDE_PATH. -# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. - -CLANG_OPTIONS = - -# If clang assisted parsing is enabled you can provide the clang parser with the -# path to the compilation database (see: -# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files -# were built. This is equivalent to specifying the "-p" option to a clang tool, -# such as clang-check. These options will then be passed to the parser. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse_libclang=ON option for CMake. - -CLANG_DATABASE_PATH = - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = YES - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# https://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML -# documentation will contain a main index with vertical navigation menus that -# are dynamically created via Javascript. If disabled, the navigation index will -# consists of multiple levels of tabs that are statically embedded in every HTML -# page. Disable this option to support browsers that do not have Javascript, -# like the Qt help browser. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_MENUS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = YES - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: https://developer.apple.com/xcode/), introduced with OSX -# 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy -# genXcode/_index.html for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# https://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from https://www.mathjax.org before deployment. -# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/ - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /