diff --git a/.gitignore b/.gitignore
index dfa1c7e..a1823f9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,7 +18,6 @@
*.pch
# Libraries
-*.lib
*.a
*.la
*.lo
@@ -79,7 +78,6 @@ dkms.conf
*.lai
*.la
*.a
-*.lib
# Executables
*.exe
diff --git a/TinyEurocat.sln b/TinyEurocat.sln
new file mode 100644
index 0000000..d97eca9
--- /dev/null
+++ b/TinyEurocat.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TinyEurocat", "TinyEurocat\TinyEurocat.vcxproj", "{E1145C92-0713-4553-85D3-1D20417C2989}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {E1145C92-0713-4553-85D3-1D20417C2989}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1145C92-0713-4553-85D3-1D20417C2989}.Debug|Win32.Build.0 = Debug|Win32
+ {E1145C92-0713-4553-85D3-1D20417C2989}.Release|Win32.ActiveCfg = Release|Win32
+ {E1145C92-0713-4553-85D3-1D20417C2989}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/TinyEurocat/Main.cpp b/TinyEurocat/Main.cpp
new file mode 100644
index 0000000..2f18eca
--- /dev/null
+++ b/TinyEurocat/Main.cpp
@@ -0,0 +1,18 @@
+#include "stdafx.h"
+#include "TinyEurocat.h"
+
+TinyEurocat *pMyPlugIn = NULL;
+
+void __declspec ( dllexport )
+ EuroScopePlugInInit ( EuroScopePlugIn :: CPlugIn ** ppPlugInInstance )
+{
+ // allocate
+ * ppPlugInInstance = pMyPlugIn =
+ new TinyEurocat ;
+}
+
+void __declspec ( dllexport )
+ EuroScopePlugInExit ( void )
+{
+ delete pMyPlugIn ;
+}
diff --git a/TinyEurocat/ReadMe.txt b/TinyEurocat/ReadMe.txt
new file mode 100644
index 0000000..1e32478
--- /dev/null
+++ b/TinyEurocat/ReadMe.txt
@@ -0,0 +1,58 @@
+========================================================================
+ MICROSOFT 基础类库 : TinyEurocat 项目概述
+========================================================================
+
+
+应用程序向导已为您创建了此 TinyEurocat DLL。 此 DLL 不仅演示
+Microsoft 基础类的基本使用方法,还可作为您编写 DLL 的起点。
+
+本文件概要介绍组成 TinyEurocat DLL 的每个文件的内容。
+
+TinyEurocat.vcxproj
+ 这是使用应用程序向导生成的 VC++ 项目的主项目文件,
+ 其中包含生成该文件的 Visual C++
+ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
+
+TinyEurocat.vcxproj.filters
+ 这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。
+ 它包含有关项目文件与筛选器之间的关联信息。 在 IDE
+ 中,通过这种关联,
+ 在特定节点下以分组形式显示具有相似扩展名的文件。
+ 例如,“.cpp”文件与“源文件”筛选器关联。
+
+TinyEurocat.h
+ 这是 DLL 的主头文件。 它声明了 CTinyEurocatApp 类。
+
+TinyEurocat.cpp
+ 这是主 DLL 源文件。 它包含 CTinyEurocatApp 类。
+
+TinyEurocat.rc
+ 这是程序使用的所有 Microsoft Windows 资源的列表。 它包括 RES
+ 子目录中存储的图标、位图和光标。 此文件可以直接在 Microsoft Visual C++
+ 中进行编辑。
+
+res\TinyEurocat.rc2
+ 此文件包含不在 Microsoft Visual C++ 中进行编辑的资源。
+ 您应该将不可由资源编辑器编辑的所有资源放在此文件中。
+
+TinyEurocat.def
+ 此文件包含在 Microsoft Windows 中运行所必需的 DLL 的有关信息。它定义了 DLL
+ 的名称和说明等参数,而且还从 DLL 导出函数。
+
+/////////////////////////////////////////////////////////////////////////////
+其他标准文件:
+
+StdAfx.h,StdAfx.cpp
+ 这些文件用于生成名为 TinyEurocat.pch 的预编译头 (PCH) 文件和名为
+ StdAfx.obj 的预编译类型文件。
+
+Resource.h
+ 这是标准头文件,可用于定义新的资源 ID。
+ Microsoft Visual C++ 将读取并更新此文件。
+
+/////////////////////////////////////////////////////////////////////////////
+其他注释:
+
+应用程序向导使用“TODO:”来指示应添加或自定义的源代码部分。
+
+/////////////////////////////////////////////////////////////////////////////
diff --git a/TinyEurocat/TinyEurocat.cpp b/TinyEurocat/TinyEurocat.cpp
new file mode 100644
index 0000000..2b5718e
--- /dev/null
+++ b/TinyEurocat/TinyEurocat.cpp
@@ -0,0 +1,17 @@
+#include "StdAfx.h"
+#include "TinyEurocat.h"
+
+
+TinyEurocat::TinyEurocat(void) : CPlugIn ( EuroScopePlugIn::COMPATIBILITY_CODE,
+ "TinyEurocat",
+ "1.0.0",
+ "Future Sim",
+ "Open-source" )
+{
+
+}
+
+
+TinyEurocat::~TinyEurocat(void)
+{
+}
diff --git a/TinyEurocat/TinyEurocat.h b/TinyEurocat/TinyEurocat.h
new file mode 100644
index 0000000..6d3dd48
--- /dev/null
+++ b/TinyEurocat/TinyEurocat.h
@@ -0,0 +1,10 @@
+#pragma once
+#include "..\lib\EuroScopePlugIn.h"
+
+class TinyEurocat : public EuroScopePlugIn::CPlugIn
+{
+public:
+ TinyEurocat(void);
+ ~TinyEurocat(void);
+};
+
diff --git a/TinyEurocat/TinyEurocat.vcxproj b/TinyEurocat/TinyEurocat.vcxproj
new file mode 100644
index 0000000..5d22e62
--- /dev/null
+++ b/TinyEurocat/TinyEurocat.vcxproj
@@ -0,0 +1,117 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {E1145C92-0713-4553-85D3-1D20417C2989}
+ TinyEurocat
+ MFCDLLProj
+
+
+
+ DynamicLibrary
+ true
+ MultiByte
+ Dynamic
+
+
+ DynamicLibrary
+ false
+ true
+ Unicode
+ Dynamic
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+
+ Use
+ Level3
+ Disabled
+ WIN32;_WINDOWS;_DEBUG;_USRDLL;%(PreprocessorDefinitions)
+ false
+
+
+ Windows
+ true
+
+
+ ..\lib\EuroScopePlugInDll.lib;%(AdditionalDependencies)
+
+
+ false
+ _DEBUG;%(PreprocessorDefinitions)
+
+
+ 0x0804
+ _DEBUG;%(PreprocessorDefinitions)
+ $(IntDir);%(AdditionalIncludeDirectories)
+
+
+
+
+ Level3
+ Use
+ MaxSpeed
+ true
+ true
+ WIN32;_WINDOWS;NDEBUG;_USRDLL;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+ true
+ true
+ .\TinyEurocat.def
+
+
+ false
+ NDEBUG;%(PreprocessorDefinitions)
+
+
+ 0x0804
+ NDEBUG;%(PreprocessorDefinitions)
+ $(IntDir);%(AdditionalIncludeDirectories)
+
+
+
+
+
+
+
+
+ Create
+ Create
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TinyEurocat/TinyEurocat.vcxproj.filters b/TinyEurocat/TinyEurocat.vcxproj.filters
new file mode 100644
index 0000000..81ec64a
--- /dev/null
+++ b/TinyEurocat/TinyEurocat.vcxproj.filters
@@ -0,0 +1,39 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+
+
+ 头文件
+
+
+ 头文件
+
+
+
\ No newline at end of file
diff --git a/TinyEurocat/stdafx.cpp b/TinyEurocat/stdafx.cpp
new file mode 100644
index 0000000..8476076
--- /dev/null
+++ b/TinyEurocat/stdafx.cpp
@@ -0,0 +1,7 @@
+// stdafx.cpp : ֻļԴļ
+// TinyEurocat.pch ΪԤͷ
+// stdafx.obj ԤϢ
+
+#include "stdafx.h"
+
+
diff --git a/TinyEurocat/stdafx.h b/TinyEurocat/stdafx.h
new file mode 100644
index 0000000..47f49aa
--- /dev/null
+++ b/TinyEurocat/stdafx.h
@@ -0,0 +1,37 @@
+// stdafx.h : ϵͳļİļ
+// Ǿʹõĵ
+// ضĿİļ
+
+#pragma once
+
+#ifndef VC_EXTRALEAN
+#define VC_EXTRALEAN // Windows ͷųʹõ
+#endif
+
+#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // ijЩ CString 캯ʽ
+
+#include // MFC ͱ
+#include // MFC չ
+
+#ifndef _AFX_NO_OLE_SUPPORT
+#include // MFC OLE
+#include // MFC OLE Ի
+#include // MFC Զ
+#endif // _AFX_NO_OLE_SUPPORT
+
+#ifndef _AFX_NO_DB_SUPPORT
+#include // MFC ODBC ݿ
+#endif // _AFX_NO_DB_SUPPORT
+
+#ifndef _AFX_NO_DAO_SUPPORT
+#include // MFC DAO ݿ
+#endif // _AFX_NO_DAO_SUPPORT
+
+#ifndef _AFX_NO_OLE_SUPPORT
+#include // MFC Internet Explorer 4 ؼ֧
+#endif
+#ifndef _AFX_NO_AFXCMN_SUPPORT
+#include // MFC Windows ؼ֧
+#endif // _AFX_NO_AFXCMN_SUPPORT
+
+
diff --git a/lib/EuroScopePlugIn.h b/lib/EuroScopePlugIn.h
new file mode 100644
index 0000000..a3d5f50
--- /dev/null
+++ b/lib/EuroScopePlugIn.h
@@ -0,0 +1,4944 @@
+#pragma once
+
+#ifndef DllSpecEuroScope
+#define DllSpecEuroScope __declspec ( dllimport )
+#define ESINDEX void *
+#endif
+
+// external undefined classes
+class CRadarView ;
+class CPlugInData ;
+
+namespace EuroScopePlugIn
+{
+const int COMPATIBILITY_CODE = 16 ;
+
+const int FLIGHT_PLAN_STATE_NOT_STARTED = 0 ;
+const int FLIGHT_PLAN_STATE_SIMULATED = 1 ;
+const int FLIGHT_PLAN_STATE_TERMINATED = 2 ;
+
+const int FLIGHT_PLAN_STATE_NON_CONCERNED = 0 ;
+const int FLIGHT_PLAN_STATE_NOTIFIED = 1 ;
+const int FLIGHT_PLAN_STATE_COORDINATED = 2 ;
+const int FLIGHT_PLAN_STATE_TRANSFER_TO_ME_INITIATED = 3 ;
+const int FLIGHT_PLAN_STATE_TRANSFER_FROM_ME_INITIATED= 4 ;
+const int FLIGHT_PLAN_STATE_ASSUMED = 5 ;
+const int FLIGHT_PLAN_STATE_REDUNDANT = 7 ;
+
+const int AIRWAY_CLASS_VALID = 0 ;
+const int AIRWAY_CLASS_DIRECTION_ERROR = 1 ;
+const int AIRWAY_CLASS_UNCONNECTED = 2 ;
+const int AIRWAY_CLASS_NO_DATA_DIRECT = 3 ;
+
+const int CTR_DATA_TYPE_SQUAWK = 1 ;
+const int CTR_DATA_TYPE_FINAL_ALTITUDE = 2 ;
+const int CTR_DATA_TYPE_TEMPORARY_ALTITUDE = 3 ;
+const int CTR_DATA_TYPE_COMMUNICATION_TYPE = 4 ;
+const int CTR_DATA_TYPE_SCRATCH_PAD_STRING = 5 ;
+const int CTR_DATA_TYPE_GROUND_STATE = 6 ;
+const int CTR_DATA_TYPE_CLEARENCE_FLAG = 7 ;
+const int CTR_DATA_TYPE_DEPARTURE_SEQUENCE = 8 ;
+const int CTR_DATA_TYPE_SPEED = 9 ;
+const int CTR_DATA_TYPE_MACH = 10 ;
+const int CTR_DATA_TYPE_RATE = 11 ;
+const int CTR_DATA_TYPE_HEADING = 12 ;
+const int CTR_DATA_TYPE_DIRECT_TO = 13 ;
+
+const int REFRESH_PHASE_BACK_BITMAP = 0 ;
+const int REFRESH_PHASE_BEFORE_TAGS = 1 ;
+const int REFRESH_PHASE_AFTER_TAGS = 2 ;
+const int REFRESH_PHASE_AFTER_LISTS = 3 ;
+
+const int TAG_COLOR_DEFAULT = 0 ;
+const int TAG_COLOR_RGB_DEFINED = 1 ;
+const int TAG_COLOR_NON_CONCERNED = 2 ;
+const int TAG_COLOR_NOTIFIED = 3 ;
+const int TAG_COLOR_ASSUMED = 4 ;
+const int TAG_COLOR_TRANSFER_TO_ME_INITIATED = 5 ;
+const int TAG_COLOR_REDUNDANT = 6 ;
+const int TAG_COLOR_INFORMATION = 7 ;
+const int TAG_COLOR_ONGOING_REQUEST_FROM_ME = 8 ;
+const int TAG_COLOR_ONGOING_REQUEST_TO_ME = 9 ;
+const int TAG_COLOR_ONGOING_REQUEST_ACCEPTED = 10 ;
+const int TAG_COLOR_ONGOING_REQUEST_REFUSED = 11 ;
+const int TAG_COLOR_EMERGENCY = 12 ;
+
+const int TAG_TYPE_UNTAGGED = 0 ;
+const int TAG_TYPE_TAGGED = 1 ;
+const int TAG_TYPE_DETAILED = 2 ;
+const int TAG_TYPE_TSSR = 3 ;
+
+const int TAG_ITEM_TYPE_NEXT_LINE = 0 ;
+const int TAG_ITEM_TYPE_STATIC_STRING = 1 ;
+const int TAG_ITEM_TYPE_SQUAWK = 2 ;
+const int TAG_ITEM_TYPE_VERTICAL_SPEED_INDICATOR = 3 ;
+const int TAG_ITEM_TYPE_ALTITUDE = 4 ;
+const int TAG_ITEM_TYPE_EMERGENCY_INDICATOR = 5 ;
+const int TAG_ITEM_TYPE_RADIO_FAILURE_INDICATOR = 6 ;
+const int TAG_ITEM_TYPE_HIJACK_INDICATOR = 7 ;
+const int TAG_ITEM_TYPE_COLLOSION_ALERT = 8 ;
+const int TAG_ITEM_TYPE_CALLSIGN = 9 ;
+const int TAG_ITEM_TYPE_AIRCRAFT_CATEGORY = 10 ;
+const int TAG_ITEM_TYPE_COMMUNICATION_TYPE = 11 ;
+const int TAG_ITEM_TYPE_VERTICAL_SPEED = 12 ;
+const int TAG_ITEM_TYPE_GROUND_SPEED_WITH_N = 13 ;
+const int TAG_ITEM_TYPE_HANDOFF_TARGET = 14 ;
+const int TAG_ITEM_TYPE_OWNER = 15 ;
+const int TAG_ITEM_TYPE_PLANE_TYPE = 16 ;
+const int TAG_ITEM_TYPE_DESTINATION = 17 ;
+const int TAG_ITEM_TYPE_SQUAWK_ERROR = 18 ;
+const int TAG_ITEM_TYPE_INFO_STRING = 19 ;
+const int TAG_ITEM_TYPE_TEMP_ALTITUDE = 20 ;
+const int TAG_ITEM_TYPE_INFO_INDICATOR = 21 ;
+const int TAG_ITEM_TYPE_FINAL_ALTITUDE = 22 ;
+const int TAG_ITEM_TYPE_ASSIGNED_SPEED = 23 ;
+const int TAG_ITEM_TYPE_ASSIGNED_RATE = 24 ;
+const int TAG_ITEM_TYPE_ASSIGNED_HEADING = 25 ;
+const int TAG_ITEM_TYPE_SECTOR_INDICATOR = 26 ;
+const int TAG_ITEM_TYPE_DUPLICATED_SQUAWK = 27 ;
+const int TAG_ITEM_TYPE_COPN_COPX_NAME = 28 ;
+const int TAG_ITEM_TYPE_COPN_COPX_ALTITUDE = 29 ;
+const int TAG_ITEM_TYPE_FIR_COPX_NAME = 30 ;
+const int TAG_ITEM_TYPE_COPX_NOT_CLEARED_ALTITUDE = 31 ;
+const int TAG_ITEM_TYPE_COPX_AWERE_TEMP_ALTITUDE = 32 ;
+const int TAG_ITEM_TYPE_NEXT_LINE_IF_NOT_EMPTY = 33 ;
+const int TAG_ITEM_TYPE_DIRECT = 34 ;
+const int TAG_ITEM_TYPE_GROUND_SPEED_OPTIONAL_WITH_N = 35 ;
+const int TAG_ITEM_TYPE_FIR_COPX_NAME_OPTIONAL = 36 ;
+const int TAG_ITEM_TYPE_DESTINATION_OPTIONAL = 37 ;
+const int TAG_ITEM_TYPE_PLANE_TYPE_OPTIONAL = 38 ;
+const int TAG_ITEM_TYPE_TSSR = 39 ;
+const int TAG_ITEM_TYPE_GROUND_SPEED_WOUT_N = 40 ;
+const int TAG_ITEM_TYPE_GROUND_SPEED_OPTIONAL_WOUT_N = 41 ;
+const int TAG_ITEM_TYPE_COMPOUND_WARNING = 42 ;
+const int TAG_ITEM_TYPE_TEMP_IFSET = 43 ;
+const int TAG_ITEM_TYPE_ASSIGNED_SPEED_IFSET = 44 ;
+const int TAG_ITEM_TYPE_ASSIGNED_RATE_IFSET = 45 ;
+const int TAG_ITEM_TYPE_ASSIGNED_HEADING_IFSET = 46 ;
+const int TAG_ITEM_TYPE_ASSIGNED_RUNWAY = 47 ;
+const int TAG_ITEM_TYPE_COPN_NAME = 48 ;
+const int TAG_ITEM_TYPE_COPN_ALTITUDE = 49 ;
+const int TAG_ITEM_TYPE_COPN_TIME = 50 ;
+const int TAG_ITEM_TYPE_COPX_NAME = 51 ;
+const int TAG_ITEM_TYPE_COPX_ALTITUDE = 52 ;
+const int TAG_ITEM_TYPE_COPX_TIME = 53 ;
+const int TAG_ITEM_TYPE_ETA = 54 ;
+const int TAG_ITEM_TYPE_ASSIGNED_STAR = 55 ;
+const int TAG_ITEM_TYPE_ASSIGNED_SID = 56 ;
+const int TAG_ITEM_TYPE_DEPARTURE_ORDER = 57 ;
+const int TAG_ITEM_TYPE_CLEARENCE = 58 ;
+const int TAG_ITEM_TYPE_GROUND_STATUS = 59 ;
+const int TAG_ITEM_TYPE_ASSIGNED_SQUAWK = 60 ;
+const int TAG_ITEM_TYPE_ORIGIN = 61 ;
+const int TAG_ITEM_TYPE_RVSM_FLAG = 62 ;
+const int TAG_ITEM_TYPE_FLIGHT_RULE = 63 ;
+const int TAG_ITEM_TYPE_SECTOR_INDICATOR_FIX = 64 ;
+const int TAG_ITEM_TYPE_MANUAL_COORDINATION = 65 ;
+const int TAG_ITEM_TYPE_INFO_ALWAYS = 66 ;
+const int TAG_ITEM_TYPE_CLAM_WARNING = 67 ;
+const int TAG_ITEM_TYPE_RAM_WARNING = 68 ;
+const int TAG_ITEM_TYPE_SQ_OR_CALLSIGN = 69 ;
+const int TAG_ITEM_TYPE_TWO_LETTER_GS = 70 ;
+const int TAG_ITEM_TYPE_TWO_LETTER_GS_OPTIONAL = 71 ;
+const int TAG_ITEM_TYPE_TWO_LETTER_ASSIGNED_SPEED = 72 ;
+const int TAG_ITEM_TYPE_TWO_LETTER_ASSIGNED_SPEED_IFSET = 73 ;
+const int TAG_ITEM_TYPE_NOT_REACHED_TEMPORARY = 74 ;
+const int TAG_ITEM_TYPE_NOT_CLEARED_COPN_COPX_ALT = 75 ;
+const int TAG_ITEM_TYPE_AIRCRAFT_CATEGORY_WITH_SLASH = 76 ;
+const int TAG_ITEM_TYPE_NON_RVSM_FLAG = 77 ;
+const int TAG_ITEM_TYPE_AC_TYPE_CATEGORY = 78 ;
+const int TAG_ITEM_TYPE_AC_TYPE_CATEGORY_OPTIONAL = 79 ;
+const int TAG_ITEM_TYPE_COMMUNICATION_TYPE_REDUCED= 80 ;
+const int TAG_ITEM_TYPE_AIRLINE = 81 ;
+const int TAG_ITEM_TYPE_FP_STATUS = 82 ;
+const int TAG_ITEM_TYPE_ESTIMATE = 83 ;
+const int TAG_ITEM_TYPE_ESTIMATE_ALWAYS = 84 ;
+const int TAG_ITEM_TYPE_CONFLICTING_AC_CALLSING = 85 ;
+const int TAG_ITEM_TYPE_CONFLICT_START = 86 ;
+const int TAG_ITEM_TYPE_CONFLICT_END = 87 ;
+const int TAG_ITEM_TYPE_CONFLICT_TYPE = 88 ;
+const int TAG_ITEM_TYPE_MSAW_INDICATOR = 89 ;
+const int TAG_ITEM_TYPE_SIMULATION_INDICATOR = 90 ;
+const int TAG_ITEM_TYPE_SIMULATION_WAYPOINT = 91 ;
+const int TAG_ITEM_TYPE_ASSIGNED_HEADING_STATIC = 92 ;
+const int TAG_ITEM_TYPE_AIRLINE_NAME = 93 ;
+const int TAG_ITEM_TYPE_SIMULATION_IAS = 94 ;
+const int TAG_ITEM_TYPE_SIMULATION_ALTITUDE = 95 ;
+const int TAG_ITEM_TYPE_SIMULATION_HEADING = 96 ;
+
+const int TAG_ITEM_FUNCTION_NO = 0 ;
+const int TAG_ITEM_FUNCTION_TOGGLE_ROUTE_DRAW = 1 ;
+const int TAG_ITEM_FUNCTION_TOGGLE_ITEM_DISPLAY = 2 ;
+const int TAG_ITEM_FUNCTION_TOGGLE_FIR_COPX_DISPLAY = 3 ;
+const int TAG_ITEM_FUNCTION_TOGGLE_DEST_DISPLAY = 4 ;
+const int TAG_ITEM_FUNCTION_TOGGLE_PLANE_TYPE_DISPLAY = 5 ;
+const int TAG_ITEM_FUNCTION_TOGGLE_SI_STYLE = 6 ;
+const int TAG_ITEM_FUNCTION_OPEN_FP_DIALOG = 7 ;
+const int TAG_ITEM_FUNCTION_HANDOFF_POPUP_MENU = 8 ;
+const int TAG_ITEM_FUNCTION_TAKE_HANDOFF = 9 ;
+const int TAG_ITEM_FUNCTION_NEXT_ROUTE_POINTS_POPUP = 10 ;
+const int TAG_ITEM_FUNCTION_TEMP_ALTITUDE_POPUP = 11 ;
+const int TAG_ITEM_FUNCTION_ASSIGNED_SPEED_POPUP = 12 ;
+const int TAG_ITEM_FUNCTION_ASSIGNED_RATE_POPUP = 13 ;
+const int TAG_ITEM_FUNCTION_ASSIGNED_HEADING_POPUP = 14 ;
+const int TAG_ITEM_FUNCTION_ASSIGNED_MACH_POPUP = 15 ;
+const int TAG_ITEM_FUNCTION_TOGGLE_PREDICTION_DRAW = 16 ;
+const int TAG_ITEM_FUNCTION_ASSIGNED_SID = 17 ;
+const int TAG_ITEM_FUNCTION_ASSIGNED_STAR = 18 ;
+const int TAG_ITEM_FUNCTION_ASSIGNED_RUNWAY = 19 ;
+const int TAG_ITEM_FUNCTION_ASSIGNED_NEXT_CONTROLLER = 20 ;
+const int TAG_ITEM_FUNCTION_COPN_NAME = 21 ;
+const int TAG_ITEM_FUNCTION_COPX_NAME = 22 ;
+const int TAG_ITEM_FUNCTION_COPN_ALTITUDE = 23 ;
+const int TAG_ITEM_FUNCTION_COPX_ALTITUDE = 24 ;
+const int TAG_ITEM_FUNCTION_ACCEPT_MANUAL_COORDINATION= 25 ;
+const int TAG_ITEM_FUNCTION_COPN_COPX_ALTITUDE = 26 ;
+const int TAG_ITEM_FUNCTION_SET_CLEARED_FLAG = 27 ;
+const int TAG_ITEM_FUNCTION_SET_GROUND_STATUS = 28 ;
+const int TAG_ITEM_FUNCTION_EDIT_SCRATCH_PAD = 29 ;
+const int TAG_ITEM_FUNCTION_RFL_POPUP = 30 ;
+const int TAG_ITEM_FUNCTION_SQUAWK_POPUP = 31 ;
+const int TAG_ITEM_FUNCTION_COMMUNICATION_POPUP = 32 ;
+const int TAG_ITEM_FUNCTION_CORRELATE_POPUP = 33 ;
+const int TAG_ITEM_FUNCTION_SET_FP_STATUS = 34 ;
+const int TAG_ITEM_FUNCTION_SET_ESTIMATE = 35 ;
+const int TAG_ITEM_FUNCTION_SIMUL_TO_POPUP = 37 ;
+const int TAG_ITEM_FUNCTION_SIMUL_LAND_VACATE_POPUP = 38 ;
+const int TAG_ITEM_FUNCTION_SIMUL_TAXI_POPUP = 39 ;
+const int TAG_ITEM_FUNCTION_SIMUL_TAXI_BEHIND = 40 ;
+const int TAG_ITEM_FUNCTION_SIMULATION_POPUP = 41 ;
+const int TAG_ITEM_FUNCTION_SIMUL_NEXT_WAYPOINTS = 42 ;
+const int TAG_ITEM_FUNCTION_SIMUL_HOLDING_POINTS = 43 ;
+const int TAG_ITEM_FUNCTION_CONFLICT_DETECTION_TOOL2 = 44 ;
+const int TAG_ITEM_FUNCTION_SIMUL_ROUTES_POPUP = 45 ;
+
+const int TAG_DATA_UNCORRELATED_RADAR = 1 ;
+const int TAG_DATA_FLIGHT_PLAN_TRACK = 2 ;
+const int TAG_DATA_CORRELATED = 3 ;
+
+const int BUTTON_LEFT = 1 ;
+const int BUTTON_MIDDLE = 2 ;
+const int BUTTON_RIGHT = 3 ;
+
+const int POPUP_ELEMENT_UNCHECKED = 0 ;
+const int POPUP_ELEMENT_CHECKED = 1 ;
+const int POPUP_ELEMENT_NO_CHECKBOX = 2 ;
+
+const int CONNECTION_TYPE_NO = 0 ;
+const int CONNECTION_TYPE_DIRECT = 1 ;
+const int CONNECTION_TYPE_VIA_PROXY = 2 ;
+const int CONNECTION_TYPE_SIMULATOR_SERVER = 3 ;
+const int CONNECTION_TYPE_PLAYBACK = 4 ;
+const int CONNECTION_TYPE_SIMULATOR_CLIENT = 5 ;
+const int CONNECTION_TYPE_SWEATBOX = 6 ;
+
+const int COORDINATION_STATE_NONE = 1 ;
+const int COORDINATION_STATE_REQUESTED_BY_ME = 2 ;
+const int COORDINATION_STATE_REQUESTED_BY_OTHER = 3 ;
+const int COORDINATION_STATE_ACCEPTED = 4 ;
+const int COORDINATION_STATE_REFUSED = 5 ;
+const int COORDINATION_STATE_MANUAL_ACCEPTED = 6 ;
+
+const int SECTOR_ELEMENT_INFO = 0 ;
+const int SECTOR_ELEMENT_VOR = 1 ;
+const int SECTOR_ELEMENT_NDB = 2 ;
+const int SECTOR_ELEMENT_AIRPORT = 3 ;
+const int SECTOR_ELEMENT_RUNWAY = 4 ;
+const int SECTOR_ELEMENT_FIX = 5 ;
+const int SECTOR_ELEMENT_STAR = 6 ;
+const int SECTOR_ELEMENT_SID = 7 ;
+const int SECTOR_ELEMENT_LOW_AIRWAY = 8 ;
+const int SECTOR_ELEMENT_HIGH_AIRWAY = 9 ;
+const int SECTOR_ELEMENT_HIGH_ARTC = 10 ;
+const int SECTOR_ELEMENT_ARTC = 11 ;
+const int SECTOR_ELEMENT_LOW_ARTC = 12 ;
+const int SECTOR_ELEMENT_GEO = 13 ;
+const int SECTOR_ELEMENT_FREE_TEXT = 14 ;
+const int SECTOR_ELEMENT_AIRSPACE = 15 ;
+const int SECTOR_ELEMENT_POSITION = 16 ;
+const int SECTOR_ELEMENT_SIDS_STARS = 17 ;
+const int SECTOR_ELEMENT_RADARS = 18 ;
+const int SECTOR_ELEMENT_REGIONS = 19 ;
+
+const int SECTOR_ELEMENT_NUMBER = 20 ;
+const int SECTOR_ELEMENT_ALL = -1 ;
+
+const int RADAR_POSITION_NONE = 0 ;
+const int RADAR_POSITION_PRIMARY = 1 ;
+const int RADAR_POSITION_SECONDARY_C = 2 ;
+const int RADAR_POSITION_SECONDARY_S = 4 ;
+const int RADAR_POSITION_ALL = 7 ;
+
+
+
+// forward declaration
+class DllSpecEuroScope CSectorElement ;
+
+class DllSpecEuroScope CPosition
+{
+public:
+
+ double m_Latitude ;
+ double m_Longitude ;
+
+
+ //---CPosition-----------------------------------------------------
+
+ inline CPosition ( void )
+ {
+ m_Latitude = m_Longitude = 0.0 ;
+ } ;
+
+
+ //---LoadFromStrings-----------------------------------------------
+
+ bool LoadFromStrings ( const char * sLongitude,
+ const char * sLatitude ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sLongitude - longitude value
+ // => sLatitude - latitude value
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It loads the position from sectrofile format coordinate strings.
+ //-----------------------------------------------------------------
+
+
+ //---DistanceTo----------------------------------------------------
+
+ double DistanceTo ( const CPosition OtherPosition ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => OtherPosition - another position
+ //
+ // Return :
+ // the distance between the positions
+ //-----------------------------------------------------------------
+
+
+ //---DirectionTo---------------------------------------------------
+
+ double DirectionTo ( const CPosition OtherPosition ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => OtherPosition - another position
+ //
+ // Return :
+ // the magnetic direction from this to the other position
+ // using the active sectorfile magnetic deviation value
+ //-----------------------------------------------------------------
+
+} ;
+
+
+class DllSpecEuroScope CFlightPlanExtractedRoute
+{
+private:
+
+ ESINDEX m_FpPosition ; // the currently referenced AC position
+
+ friend class CFlightPlan ;
+
+public:
+
+ //---CFlightPlanExtractedRoute---------------------------------------
+
+ inline CFlightPlanExtractedRoute ( void )
+ {
+ m_FpPosition = NULL ;
+ } ;
+
+
+ //---GetPointsNumber-----------------------------------------------
+
+ int GetPointsNumber ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The number of points in the extracted route array.
+ //-----------------------------------------------------------------
+
+
+ //---GetPointsCalculatedIndex--------------------------------------
+
+ int GetPointsCalculatedIndex ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The index of point in the extracted route that edge is the
+ // closest to the actual plane position. The return value is
+ // between 0 and point number - 2.
+ // The value may be -1 indicating invalid state.
+ //-----------------------------------------------------------------
+
+
+ //---GetPointsAssignedIndex----------------------------------------
+
+ int GetPointsAssignedIndex ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The index of point in the extracted route that was assigned
+ // by a controller as next (direct to). The return value is
+ // between 0 and point number - 1.
+ // The value may be -1 indicating no direct was given.
+ //-----------------------------------------------------------------
+
+
+ //---GetPointName--------------------------------------------------
+
+ const char * GetPointName ( int Index ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Index - the index of the requested point. It must be
+ // between 0 and point number - 1.
+ //
+ // Return :
+ // The name of the point in the extracted route array.
+ //-----------------------------------------------------------------
+
+
+ //---GetPointPosition----------------------------------------------
+
+ CPosition GetPointPosition ( int Index ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Index - the index of the requested point. It must be
+ // between 0 and point number - 1.
+ //
+ // Return :
+ // The coordinates of the point in the extracted route array.
+ //-----------------------------------------------------------------
+
+
+ //---GetPointAirwayName--------------------------------------------
+
+ const char * GetPointAirwayName ( int Index ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Index - the index of the requested point. It must be
+ // between 1 and point number - 1.
+ // For point 0 it is always empty.
+ //
+ // Return :
+ // The name of the airway or SID/STAR from the previous point
+ // (Index-1) to this one.
+ //-----------------------------------------------------------------
+
+
+ //---GetPointAirwayClassification----------------------------------
+
+ int GetPointAirwayClassification ( int Index ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Index - the index of the requested point. It must be
+ // between 1 and point number - 1.
+ // For point 0 it is always direct to.
+ //
+ // Return :
+ // The calssification (see AIRWAY_CLASS_...) of the airway
+ // from the previous point (Index-1) to this one.
+ //-----------------------------------------------------------------
+
+
+ //---GetPointDistanceInMinutes-------------------------------------
+
+ int GetPointDistanceInMinutes ( int Index ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Index - the index of the requested point. It must be
+ // between 0 and point number - 1.
+ //
+ // Return :
+ // The distance of the point in minutes from plane current position.
+ // May return -1 if the point has been passed.
+ //-----------------------------------------------------------------
+
+
+ //---GetPointCalculatedProfileAltitude-----------------------------
+
+ int GetPointCalculatedProfileAltitude ( int Index ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Index - the index of the requested point. It must be
+ // between 0 and point number - 1.
+ //
+ // Return :
+ // The altitude (no FL/altitude change here) calculated from
+ // the route, clib/descend profile and COPX altitude constraints.
+ // The index must be between 0 and point number - 1.
+ //-----------------------------------------------------------------
+
+} ;
+
+
+class DllSpecEuroScope CFlightPlanPositionPredictions
+{
+private:
+
+ ESINDEX m_FpPosition ; // the currently referenced AC position
+
+ friend class CFlightPlan ;
+
+public:
+
+ //---CFlightPlanPositionPredictions----------------------------------
+
+ inline CFlightPlanPositionPredictions ( void )
+ {
+ m_FpPosition = NULL ;
+ } ;
+
+
+ //---GetPointsNumber-----------------------------------------------
+
+ int GetPointsNumber ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The number of points in the prediction array.
+ //-----------------------------------------------------------------
+
+
+ //---GetPosition---------------------------------------------------
+
+ CPosition GetPosition ( int Index ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Index - the index of the requested point. It must be
+ // between 0 and point number - 1. The index is
+ // equal the minutes from now.
+ //
+ // Return :
+ // The predicted position of the AC expected at Index minutes from now.
+ //-----------------------------------------------------------------
+
+
+ //---GetAltitude---------------------------------------------------
+
+ int GetAltitude ( int Index ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Index - the index of the requested point. It must be
+ // between 0 and point number - 1. The index is
+ // equal the minutes from now.
+ //
+ // Return :
+ // The predicted altitude/level of the AC expected at Index
+ // minutes from now. There is no ALT/FL conversion in this
+ // function.
+ //-----------------------------------------------------------------
+
+
+ //---GetControllerId-----------------------------------------------
+
+ const char * GetControllerId ( int Index ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Index - the index of the requested point. It must be
+ // between 0 and point number - 1. The index is
+ // equal the minutes from now.
+ //
+ // Return :
+ // The position ID of the predicted controller at Index
+ // minutes from now.
+ //-----------------------------------------------------------------
+
+} ;
+
+
+class DllSpecEuroScope CRadarTargetPositionData
+{
+private:
+
+ ESINDEX m_RtPosition ; // the currently referenced RT position
+ ESINDEX m_PosPosition ;
+
+ friend class CRadarTarget ;
+ friend class CFlightPlan ;
+
+public:
+
+ //---CRadarTargetPositionData-----------------------------------------
+
+ inline CRadarTargetPositionData ( void )
+ {
+ m_RtPosition = m_PosPosition = NULL ;
+ } ;
+
+
+ //---IsValid-------------------------------------------------------
+
+ inline bool IsValid ( void ) const
+ {
+ return m_RtPosition != NULL ;
+ } ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the position reference is valid
+ // false - else
+ //
+ // Description :
+ // It tests if the AC and the position reference is valid.
+ //-----------------------------------------------------------------
+
+
+ //---IsFPTrackPosition---------------------------------------------
+
+ inline bool IsFPTrackPosition ( void ) const
+ {
+ return m_PosPosition == NULL ;
+ } ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the position is a reference to the FP track
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetReceivedTime-----------------------------------------------
+
+ int GetReceivedTime ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The number of seconds elapsed since the position data received.
+ //-----------------------------------------------------------------
+
+
+ //---GetPosition---------------------------------------------------
+
+ CPosition GetPosition ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The lat/lon coordinates of the plane.
+ //-----------------------------------------------------------------
+
+
+ //---GetSquawk-----------------------------------------------------
+
+ const char * GetSquawk ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The squawk sent by the pilot
+ //-----------------------------------------------------------------
+
+
+ //---GetTransponderC------------------------------------------------
+
+ bool GetTransponderC ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the plane transponder is C mode
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetTransponderI------------------------------------------------
+
+ bool GetTransponderI ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the plane transponder is IDENT mode
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetPressureAltitude-------------------------------------------
+
+ int GetPressureAltitude ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The true altitude of the plane in feet.
+ //-----------------------------------------------------------------
+
+
+ //---GetFlightLevel------------------------------------------------
+
+ int GetFlightLevel ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The altitude calculated using stadard pressure. The return
+ // value is in feet.
+ //-----------------------------------------------------------------
+
+
+ //---GetReportedGS-------------------------------------------------
+
+ int GetReportedGS ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The GS reported by the pilot client
+ //-----------------------------------------------------------------
+
+
+ //---GetReportedHeading--------------------------------------------
+
+ int GetReportedHeading ( void ) const ;
+ int GetReportedHeadingTrueNorth ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The heading (not tracking) reported by the pilot client.
+ //-----------------------------------------------------------------
+
+
+ //---GetReportedPitch----------------------------------------------
+
+ int GetReportedPitch ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The pitch reported by the pilot client. The value is between
+ // -180 and +180; negative means above horizon.
+ //-----------------------------------------------------------------
+
+
+ //---GetReportedBank-----------------------------------------------
+
+ int GetReportedBank ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The pitch reported by the pilot client. The value is between
+ // -180 and +180; negative means right bank.
+ //-----------------------------------------------------------------
+
+
+ //---GetRadarFlags-------------------------------------------------
+
+ int GetRadarFlags ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The logical or combination of the following values:
+ // - RADAR_POSITION_PRIMARY - primary position received
+ // - RADAR_POSITION_SECONDARY_C - A+C mode transponder received
+ // - RADAR_POSITION_SECONDARY_S - S mode transponder received
+ //
+ // Description :
+ // It returns the radar response flags for the specified position.
+ //-----------------------------------------------------------------
+
+} ;
+
+
+class DllSpecEuroScope CFlightPlanData
+{
+private:
+
+ ESINDEX m_FpPosition ; // the currently referenced AC position
+
+ friend class CFlightPlan ;
+
+public:
+
+ //---CFlightPlanData-------------------------------------------
+
+ inline CFlightPlanData ( void )
+ {
+ m_FpPosition = NULL ;
+ } ;
+
+
+ //---IsReceived----------------------------------------------------
+
+ bool IsReceived ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if any kind of FP is received from the servers
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---IsAmended-----------------------------------------------------
+
+ bool IsAmended ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the FP is amended by a controller
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---AmendFlightPlan-----------------------------------------------
+
+ bool AmendFlightPlan ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It amends the FP
+ //-----------------------------------------------------------------
+
+
+ //---GetPlanType---------------------------------------------------
+
+ const char * GetPlanType ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The type of the flight plan: V or I.
+ //-----------------------------------------------------------------
+
+
+ //---SetPlanType---------------------------------------------------
+
+ bool SetPlanType ( const char * sPlanType ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sPlanType - the type of the FP: V or I.
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It changes the FP type.
+ //-----------------------------------------------------------------
+
+
+ //---GetAircraftInfo-----------------------------------------------
+
+ const char * GetAircraftInfo ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The unextracted aircraft information.
+ //-----------------------------------------------------------------
+
+
+ //---SetAircraftInfo-----------------------------------------------
+
+ bool SetAircraftInfo ( const char * sInfo ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sInfo - the complete aircraft information
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It changes the FP AC info.
+ //-----------------------------------------------------------------
+
+
+ //---GetAircraftWtc------------------------------------------------
+
+ char GetAircraftWtc ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The weight category of the aircraft.
+ // Possible values are:
+ // ? - unknown
+ // L - light
+ // M - medium
+ // H - heavy
+ // J - super heavy
+ //-----------------------------------------------------------------
+
+
+ //---GetAircraftType-----------------------------------------------
+
+ char GetAircraftType ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The type of the aircraft.
+ // Possible values are:
+ // ? - unknown
+ // L - landplane
+ // S - seaplane
+ // A - amphibian
+ // H - helicopter
+ // G - gyrocopter
+ // T - tilt-wing AC
+ //-----------------------------------------------------------------
+
+
+ //---GetEngineNumber-----------------------------------------------
+
+ int GetEngineNumber ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The number of engines.
+ //-----------------------------------------------------------------
+
+
+ //---GetEngineType-------------------------------------------------
+
+ char GetEngineType ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The type of the engines of the aircraft.
+ // Possible values are:
+ // ? - unknown
+ // P - piston
+ // T - turboprop/turboshaft
+ // J - jet
+ // E - electric
+ //-----------------------------------------------------------------
+
+
+ //---GetCapibilities-----------------------------------------------
+
+ char GetCapibilities ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The navigation capibilities of the aircraft.
+ // Possible values are:
+ // ? - unknown
+ // T - no DME, Transponder without mode A+C
+ // X - no DME, No Transponder
+ // U - no DME, Transponder with mode A+C
+ // D - DME, No Transponder
+ // B - DME, Transponder without mode A+C
+ // A - DME, Transponder with mode A+C
+ // M - TACAN only, No Transponder
+ // N - TACAN only, Transponder without mode A+C
+ // P - TACAN only, Transponder with mode A+C
+ // Y - simple RNAV, No Transponder
+ // C - simple RNAV, Transponder without mode A+C
+ // I - simple RNAV, Transponder with mode A+C
+ // E - advanced RNAV with Dual FMS
+ // F - advanced RNAV with Single FMS
+ // G - advanced RNAV with GPS or GNSS
+ // R - advanced RNAV with RNP capability
+ // W - advanced RNAV with RVSM capability
+ // Q - advanced RNAV with RNP and RVSM
+ //-----------------------------------------------------------------
+
+
+ //---IsRvsm--------------------------------------------------------
+
+ bool IsRvsm ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the aircraft if RVSM capable
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetManufacturerType-------------------------------------------
+
+ const char * GetManufacturerType ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The type description of the aircraft by the manufacturer.
+ //-----------------------------------------------------------------
+
+
+ //---GetAircraftFPType---------------------------------------------
+
+ const char * GetAircraftFPType ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The unencoded AC type as written to the FP.
+ //-----------------------------------------------------------------
+
+
+ //---GetTrueAirspeed-----------------------------------------------
+
+ int GetTrueAirspeed ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The true airspeed filed.
+ //-----------------------------------------------------------------
+
+
+ //---SetTrueAirspeed-----------------------------------------------
+
+ bool SetTrueAirspeed ( int TrueAirspeed ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => TrueAirspeed - the true airspeed value
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It sets the true airspeed value.
+ //-----------------------------------------------------------------
+
+
+ //---GetOrigin-----------------------------------------------------
+
+ const char * GetOrigin ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The origin airport.
+ //-----------------------------------------------------------------
+
+
+ //---SetOrigin-----------------------------------------------------
+
+ bool SetOrigin ( const char * sOrigin ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sOrigin - the origina airport
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It changes the origin airport.
+ //-----------------------------------------------------------------
+
+
+ //---GetFinalAltitude----------------------------------------------
+
+ int GetFinalAltitude ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The final requested altitude.
+ //-----------------------------------------------------------------
+
+
+ //---SetFinalAltitude----------------------------------------------
+
+ bool SetFinalAltitude ( int FinalAltitude ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => FinalAltitude - the final altitude
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It sets the final altitude.
+ //-----------------------------------------------------------------
+
+
+ //---GetDestination------------------------------------------------
+
+ const char * GetDestination ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The destination airport.
+ //-----------------------------------------------------------------
+
+
+ //---SetDestination------------------------------------------------
+
+ bool SetDestination ( const char * sDestination ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sDestination - the destination airport
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It sets the destination airport.
+ //-----------------------------------------------------------------
+
+
+ //---GetAlternate--------------------------------------------------
+
+ const char * GetAlternate ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The alternate airport.
+ //-----------------------------------------------------------------
+
+
+ //---SetAlternate--------------------------------------------------
+
+ bool SetAlternate ( const char * sAlternate ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // sAlternate - the alternate airport
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It sets the alternate airport.
+ //-----------------------------------------------------------------
+
+
+ //---GetRemarks----------------------------------------------------
+
+ const char * GetRemarks ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The remarks field.
+ //-----------------------------------------------------------------
+
+
+ //---SetRemarks----------------------------------------------------
+
+ bool SetRemarks ( const char * sRemarks ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sRemarks - the remarks field
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It sets the remarks fileds.
+ //-----------------------------------------------------------------
+
+
+ //---GetCommunicationType------------------------------------------
+
+ char GetCommunicationType ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The communications type.
+ // Possible values are:
+ // ? - unknown
+ // V - voice
+ // R - receive voice only
+ // T - text only
+ //-----------------------------------------------------------------
+
+
+ //---GetRoute------------------------------------------------------
+
+ const char * GetRoute ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The route field.
+ //-----------------------------------------------------------------
+
+
+ //---SetRoute------------------------------------------------------
+
+ bool SetRoute ( const char * sRoute ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sRoute - the route field
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It sets the route field.
+ //-----------------------------------------------------------------
+
+
+ //---GetSidName----------------------------------------------------
+
+ const char * GetSidName ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The extracted or assigned SID name.
+ //-----------------------------------------------------------------
+
+
+ //---GetStarName---------------------------------------------------
+
+ const char * GetStarName ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The extracted or assigned STAR name.
+ //-----------------------------------------------------------------
+
+
+ //---GetDepartureRwy-----------------------------------------------
+
+ const char * GetDepartureRwy ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The extracted or assigned departure RWY name.
+ //-----------------------------------------------------------------
+
+
+ //---GetArrivalRwy-------------------------------------------------
+
+ const char * GetArrivalRwy ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The extracted or assigned arrival RWY name.
+ //-----------------------------------------------------------------
+
+
+ //---GetEstimatedDepartureTime-------------------------------------
+
+ const char * GetEstimatedDepartureTime ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The pilot sent estimated departure time (uncompiled original
+ // content as string value).
+ //-----------------------------------------------------------------
+
+
+ //---SetEstimatedDepartureTime-------------------------------------
+
+ bool SetEstimatedDepartureTime ( const char * sDepTime ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sDepTime - The estimated departure time (uncompiled
+ // original content as string value)
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It sets the estimated departure time.
+ //-----------------------------------------------------------------
+
+
+ //---GetActualDepartureTime----------------------------------------
+
+ const char * GetActualDepartureTime ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The pilot sent actual departure time (uncompiled original
+ // content as string value).
+ //-----------------------------------------------------------------
+
+
+ //---SetActualDepartureTime----------------------------------------
+
+ bool SetActualDepartureTime ( const char * sDepTime ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sDepTime - The actual departure time (uncompiled
+ // original content as string value)
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It sets the actual departure time.
+ //-----------------------------------------------------------------
+
+
+ //---GetEnrouteHours-----------------------------------------------
+
+ const char * GetEnrouteHours ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The pilot sent hours for enroute (uncompiled original
+ // content as string value).
+ //-----------------------------------------------------------------
+
+
+ //---SetEnrouteHours-----------------------------------------------
+
+ bool SetEnrouteHours ( const char * sEnrouteHours ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sEnrouteHours - The hours for enroute (uncompiled
+ // original content as string value)
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It sets the enroute hours field.
+ //-----------------------------------------------------------------
+
+
+ //---GetEnrouteMinutes---------------------------------------------
+
+ const char * GetEnrouteMinutes ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The pilot sent minutes for enroute (uncompiled original
+ // content as string value).
+ //-----------------------------------------------------------------
+
+
+ //---SetEnrouteMinutes---------------------------------------------
+
+ bool SetEnrouteMinutes ( const char * sEnrouteMinutes ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sEnrouteMinutes - The minutes for enroute (uncompiled
+ // original content as string value)
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It sets the enroute minutes field.
+ //-----------------------------------------------------------------
+
+
+ //---GetFuelHours--------------------------------------------------
+
+ const char * GetFuelHours ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The pilot sent hours available fuel (uncompiled original
+ // content as string value).
+ //-----------------------------------------------------------------
+
+
+ //---SetFuelHours--------------------------------------------------
+
+ bool SetFuelHours ( const char * sFuelHours ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sFuelHours - The hours of available fuel (uncompiled
+ // original content as string value)
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It sets the available fuel hours field.
+ //-----------------------------------------------------------------
+
+
+ //---GetFuelMinutes------------------------------------------------
+
+ const char * GetFuelMinutes ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The pilot sent minutes available fuel (uncompiled original
+ // content as string value).
+ //-----------------------------------------------------------------
+
+
+ //---SetFuelMinutes------------------------------------------------
+
+ bool SetFuelMinutes ( const char * sFuelMinutes ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sFuelMinutes - The minutes of available fuel (uncompiled
+ // original content as string value)
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It sets the available fuel minutes field.
+ //-----------------------------------------------------------------
+
+
+ //---PerformanceGetIas---------------------------------------------
+
+ int PerformanceGetIas ( int Altitude,
+ int VerticalSpeed ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Altitude - the actual altitude (or FL)
+ // => VerticalSpeed - VS indicator (-1 for descend,
+ // 0 for level,
+ // +1 for climb )
+ //
+ // Return :
+ // The IAS of the AC at the given level and vertical direction
+ //-----------------------------------------------------------------
+
+
+ //---PerformanceGetMach--------------------------------------------
+
+ int PerformanceGetMach ( int Altitude,
+ int VerticalSpeed ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Altitude - the actual altitude (or FL)
+ // => VerticalSpeed - VS indicator (-1 for descend,
+ // 0 for level,
+ // +1 for climb )
+ //
+ // Return :
+ // The Mach number (multiplied by 100) of the AC at the given
+ // level and vertical direction
+ //-----------------------------------------------------------------
+
+
+ //---PerformanceGetClimbRate---------------------------------------
+
+ int PerformanceGetClimbRate ( int Altitude ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Altitude - the actual altitude (FL)
+ //
+ // Return :
+ // The climb rate.
+ //-----------------------------------------------------------------
+
+
+ //---PerformanceGetDescentRate-------------------------------------
+
+ int PerformanceGetDescentRate ( int Altitude ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Altitude - the actual altitude (FL)
+ //
+ // Return :
+ // The descent rate.
+ //-----------------------------------------------------------------
+
+};
+
+
+class DllSpecEuroScope CFlightPlanControllerAssignedData
+{
+private:
+
+ ESINDEX m_FpPosition ; // the currently referenced AC position
+
+ friend class CFlightPlan ;
+
+public:
+
+ //---CFlightPlanControllerAssignedData-----------------------------
+
+ inline CFlightPlanControllerAssignedData ( void )
+ {
+ m_FpPosition = NULL ;
+ } ;
+
+
+ //---GetSquawk-----------------------------------------------------
+
+ const char * GetSquawk ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The assigned squawk (may be empty).
+ //-----------------------------------------------------------------
+
+
+ //---SetSquawk-----------------------------------------------------
+
+ bool SetSquawk ( const char * sSquawk ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sSquawk - the newly assigned squawk
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetFinalAltitude----------------------------------------------
+
+ int GetFinalAltitude ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The controller ovveriden final altitude. No ALT/FL change here.
+ //-----------------------------------------------------------------
+
+
+ //---SetFinalAltitude----------------------------------------------
+
+ bool SetFinalAltitude ( int FinalAltitude ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => FinalAltitude - final altitude
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetClearedAltitude--------------------------------------------
+
+ int GetClearedAltitude ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The cleared altitude; no ALT/FL change here. There are
+ // spacial values:
+ // 0 - no cleared level (use the final instead of)
+ // 1 - cleared for ILS approach
+ // 2 - cleared for visual approach
+ //-----------------------------------------------------------------
+
+
+ //---SetClearedAltitude--------------------------------------------
+
+ bool SetClearedAltitude ( int ClearedAltitude ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => ClearedAltitude - the new cleared altitude (see the
+ // special values above)
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetCommunicationType------------------------------------------
+
+ char GetCommunicationType ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The communications type.
+ // Possible values are:
+ // 0 - unassigned
+ // V - voice
+ // R - receive voice only
+ // T - text only
+ //-----------------------------------------------------------------
+
+
+ //---SetCommunicationType------------------------------------------
+
+ bool SetCommunicationType ( char CommunicationType ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => CommunicationType - the new type (see the values above)
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetScratchPadString-------------------------------------------
+
+ const char * GetScratchPadString ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The scratch pad string value. Only the real valus, directs,
+ // assigned speed, heading etc are not stored here.
+ //-----------------------------------------------------------------
+
+
+ //---SetScratchPadString-------------------------------------------
+
+ bool SetScratchPadString ( const char * sString ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sString - the new scratch string value
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetAssignedSpeed----------------------------------------------
+
+ int GetAssignedSpeed ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The controller assigned speed. Value 0 indicates no assignment.
+ //-----------------------------------------------------------------
+
+
+ //---SetAssignedSpeed----------------------------------------------
+
+ bool SetAssignedSpeed ( int AssignedSpeed ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => AssignedSpeed - the new assigned speed
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetAssignedMach-----------------------------------------------
+
+ int GetAssignedMach ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The controller assigned mach number multiplied by 100.
+ // 750 indicates 0.75 Mach. Value 0 indicates no assignment.
+ //-----------------------------------------------------------------
+
+
+ //---SetAssignedMach-----------------------------------------------
+
+ bool SetAssignedMach ( int AssignedMach ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => AssignedMach - the assigned Mach number (multiplied
+ // by 100)
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetAssignedRate-----------------------------------------------
+
+ int GetAssignedRate ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The controller assigned climb/descend rate. There is no
+ // indication if climb or descend rate is assigned. Value 0
+ // indicates no assignment.
+ //-----------------------------------------------------------------
+
+
+ //---SetAssignedRate-----------------------------------------------
+
+ bool SetAssignedRate ( int AssignedRate ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => AssignedRate - the assigned rate
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetAssignedHeading--------------------------------------------
+
+ int GetAssignedHeading ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The controller assigned heading. Value 0 indicates no assignment.
+ //-----------------------------------------------------------------
+
+
+ //---SetAssignedHeading--------------------------------------------
+
+ bool SetAssignedHeading ( int AssignedHeading ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => AssignedHeading - assigned heading
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetDirectToPointName------------------------------------------
+
+ const char * GetDirectToPointName ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The assigned direct to point name.
+ //-----------------------------------------------------------------
+
+
+ //---SetDirectToPointName------------------------------------------
+
+ bool SetDirectToPointName ( const char * sPointName ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sPointName - the name of the point
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetFlightStripAnnotation--------------------------------------
+
+ const char * GetFlightStripAnnotation ( int Index ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Index - the index of the annotation (0-8).
+ //
+ // Return :
+ // The selected fligt strip annotation.
+ //-----------------------------------------------------------------
+
+
+ //---SetFlightStripAnnotation--------------------------------------
+
+ bool SetFlightStripAnnotation ( int Index,
+ const char * sAnnotation ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Index - the index of the annotation (0-8).
+ // => sAnnotation - the text itself
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //-----------------------------------------------------------------
+
+} ;
+
+
+class DllSpecEuroScope CFlightPlan
+{
+private:
+
+ ESINDEX m_FpPosition ; // the currently referenced AC position
+
+ friend class CPlugInData ;
+ friend class CPlugIn ;
+ friend class CFlightPlanList ;
+ friend class CRadarTarget ;
+
+public:
+
+ //---CFlightPlan---------------------------------------------------
+
+ inline CFlightPlan ( void )
+ {
+ m_FpPosition = NULL ;
+ } ;
+
+
+ //---IsValid-------------------------------------------------------
+
+ inline bool IsValid ( void ) const
+ {
+ return m_FpPosition != NULL ;
+ } ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the AC reference is valid
+ // false - else
+ //
+ // Description :
+ // It tests if the AC reference is valid.
+ //-----------------------------------------------------------------
+
+
+ //---GetCallsign---------------------------------------------------
+
+ const char * GetCallsign ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The callsign of the AC.
+ //-----------------------------------------------------------------
+
+
+ //---GetPilotName--------------------------------------------------
+
+ const char * GetPilotName ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The name of the pilot extracted from statistics data.
+ // Empty string if no selected AC or no statistics data
+ //-----------------------------------------------------------------
+
+
+ //---GetState------------------------------------------------------
+
+ int GetState ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The state of the AC (see FLIGHT_PLAN_STATE_ ...).
+ // 0 if no selected AC
+ //-----------------------------------------------------------------
+
+
+ //---GetFPState----------------------------------------------------
+
+ int GetFPState ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The state of the AC (FLIGHT_PLAN_STATE_NOT_STARTED,
+ // FLIGHT_PLAN_STATE_SIMULATED,
+ // FLIGHT_PLAN_STATE_TERMINATED)
+ // 0 if no selected AC
+ //-----------------------------------------------------------------
+
+
+ //---GetSimulated--------------------------------------------------
+
+ bool GetSimulated ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the AC is out of range and ES simulates its movements
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetTrackingControllerCallsign---------------------------------
+
+ const char * GetTrackingControllerCallsign ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The callsign of the controller currently tracking.
+ // Empty if noone is tracking it
+ //-----------------------------------------------------------------
+
+
+ //---GetTrackingControllerId---------------------------------------
+
+ const char * GetTrackingControllerId ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The position ID of the controller currently tracking.
+ // Empty if noone is tracking it
+ //-----------------------------------------------------------------
+
+
+ //---GetTrackingControllerIsMe-------------------------------------
+
+ bool GetTrackingControllerIsMe ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the plane is tracked by me
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetHandoffTargetControllerCallsign----------------------------
+
+ const char * GetHandoffTargetControllerCallsign ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The callsign of the controller who is the target of the
+ // actual handoff.
+ // Empty if no actual handoff.
+ //-----------------------------------------------------------------
+
+
+ //---GetHandoffTargetControllerId----------------------------------
+
+ const char * GetHandoffTargetControllerId ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The position ID of the controller who is the target of the
+ // actual handoff.
+ // Empty if no actual handoff.
+ //-----------------------------------------------------------------
+
+
+ //---GetDistanceToDestination--------------------------------------
+
+ double GetDistanceToDestination ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The full calculated distance to the destination airport.
+ //-----------------------------------------------------------------
+
+
+ //---GetDistanceFromOrigin-----------------------------------------
+
+ double GetDistanceFromOrigin ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The full calculated distance from the origin airport.
+ //-----------------------------------------------------------------
+
+
+ //---GetNextCopxPointName------------------------------------------
+
+ const char * GetNextCopxPointName ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The next active COPX point name along the extracted route.
+ // May be empty.
+ //-----------------------------------------------------------------
+
+
+ //---GetNextFirCopxPointName---------------------------------------
+
+ const char * GetNextFirCopxPointName ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The next active FIR COPX point name along the extracted route.
+ // May be empty.
+ //-----------------------------------------------------------------
+
+
+ //---GetSectorEntryMinutes-----------------------------------------
+
+ int GetSectorEntryMinutes ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The time in minutes this plane will enter to my sectors.
+ // If already inside then 0 will be returned.
+ // If it will never enter then -1 will be returned.
+ //-----------------------------------------------------------------
+
+
+ //---GetSectorExitMinutes------------------------------------------
+
+ int GetSectorExitMinutes ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The time in minutes this plane will leave to my sectors.
+ // If the plane will never enter to my sectors it will ne -1.
+ //-----------------------------------------------------------------
+
+
+ //---GetRAMFlag----------------------------------------------------
+
+ bool GetRAMFlag ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The RAM flag when RAM warning is to be displayed.
+ //-----------------------------------------------------------------
+
+
+ //---GetCLAMFlag---------------------------------------------------
+
+ bool GetCLAMFlag ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The CLAM flag when CLAM warning is to be displayed.
+ //-----------------------------------------------------------------
+
+
+ //---GetGroundState------------------------------------------------
+
+ const char * GetGroundState ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The ground state of the AC (ST-UP, PUSH, TAXI, DEPA or empty).
+ //-----------------------------------------------------------------
+
+
+ //---GetClearenceFlag----------------------------------------------
+
+ bool GetClearenceFlag ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The state if the clearence is received or not.
+ //-----------------------------------------------------------------
+
+
+ //---IsTextCommunication-------------------------------------------
+
+ bool IsTextCommunication ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A flag indicating if the pilot or a controller indicated
+ // text communication.
+ //-----------------------------------------------------------------
+
+
+ //---GetFinalAltitude----------------------------------------------
+
+ int GetFinalAltitude ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The final altitude from the FP or from controller override.
+ // There is no ALT/FL change here.
+ //-----------------------------------------------------------------
+
+
+ //---GetClearedAltitude--------------------------------------------
+
+ int GetClearedAltitude ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The cleared altitude. If missing then the final one.
+ // There is no ALT/FL change here.
+ //-----------------------------------------------------------------
+
+
+ //---GetEntryCoordinationPointState--------------------------------
+
+ int GetEntryCoordinationPointState ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The state of the entry point coordination. One of the
+ // COORDINATION_STATE_...
+ //-----------------------------------------------------------------
+
+
+ //---GetEntryCoordinationPointName---------------------------------
+
+ const char * GetEntryCoordinationPointName ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The cordination point name for entry point.
+ //-----------------------------------------------------------------
+
+
+ //---GetEntryCoordinationAltitudeState-----------------------------
+
+ int GetEntryCoordinationAltitudeState ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The state of the entry point altitude coordination. One of the
+ // COORDINATION_STATE_...
+ //-----------------------------------------------------------------
+
+
+ //---GetEntryCoordinationAltitude----------------------------------
+
+ int GetEntryCoordinationAltitude ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The cordination point altitude for entry point.
+ //-----------------------------------------------------------------
+
+
+ //---GetExitCoordinationNameState----------------------------------
+
+ int GetExitCoordinationNameState ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The state of the exit point name coordination. One of the
+ // COORDINATION_STATE_...
+ //-----------------------------------------------------------------
+
+
+ //---GetExitCoordinationPointName----------------------------------
+
+ const char * GetExitCoordinationPointName ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The cordination point name for exit point.
+ //-----------------------------------------------------------------
+
+
+ //---GetExitCoordinationAltitudeState------------------------------
+
+ int GetExitCoordinationAltitudeState ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The state of the exit point altitude coordination. One of the
+ // COORDINATION_STATE_...
+ //-----------------------------------------------------------------
+
+
+ //---GetExitCoordinationAltitude-----------------------------------
+
+ int GetExitCoordinationAltitude ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The cordination point altitude for entry point.
+ //-----------------------------------------------------------------
+
+
+ //---GetCoordinatedNextController----------------------------------
+
+ const char * GetCoordinatedNextController ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // - the callsign of the next controller if there is a
+ // coordinated one
+ // - empty else
+ //-----------------------------------------------------------------
+
+
+ //---GetCoordinatedNextControllerState-----------------------------
+
+ int GetCoordinatedNextControllerState ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The state of the next controller coordination. One of the
+ // COORDINATION_STATE_...
+ //-----------------------------------------------------------------
+
+
+ //---GetCorrelatedRadarTarget--------------------------------------
+
+ CRadarTarget GetCorrelatedRadarTarget ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The correlated radar target. If no correlated target then
+ // the returned element is invalid.
+ //-----------------------------------------------------------------
+
+
+ //---CorrelateWithRadarTarget--------------------------------------
+
+ bool CorrelateWithRadarTarget ( CRadarTarget RadarTarget ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => RadarTarget - the radar target to get correlated wit
+ //
+ // Retrun :
+ // true - if success
+ // false - if failed
+ //
+ // Description :
+ // Call this function to correlate an flight plan with a radar
+ // target. Afetr calling it you DO NOT need to call the
+ // CorrelateWithFlightPlan on the radar target.
+ //-----------------------------------------------------------------
+
+
+ //---Uncorrelate---------------------------------------------------
+
+ void Uncorrelate ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // It uncorrelates the flight plan from its current target.
+ // After uncorrelate you DO NOT need to call the Uncorrelate
+ // on the radar target position. After uncorrelating the FP
+ // will not be correlated automatically by the system
+ //-----------------------------------------------------------------
+
+
+ //---StartTracking-------------------------------------------------
+
+ bool StartTracking ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It starts tracking the AC if it was untracked before.
+ //-----------------------------------------------------------------
+
+
+ //---EndTracking---------------------------------------------------
+
+ bool EndTracking ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It releases (drops) the target.
+ //-----------------------------------------------------------------
+
+
+ //---InitiateHandoff-----------------------------------------------
+
+ bool InitiateHandoff ( const char * sTargetController ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sTargetController - the controller to initiate the
+ // handoff to
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It initiates a handoff to the specified target controller.
+ //-----------------------------------------------------------------
+
+
+ //---AcceptHandoff-------------------------------------------------
+
+ void AcceptHandoff ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // It accepts a handoff initiated to me.
+ //-----------------------------------------------------------------
+
+
+ //---RefuseHandoff-------------------------------------------------
+
+ void RefuseHandoff ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // It refuses a handoff initiated to me.
+ //-----------------------------------------------------------------
+
+
+ //---InitiateCoordination------------------------------------------
+
+ bool InitiateCoordination ( const char * sTargetController,
+ const char * sPointName,
+ int Altitude ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sTargetController - the controller to initiate the
+ // handoff to
+ // => sPointName - the requested point name (it
+ // can not be empty)
+ // => Altitude - the requested altitude (pass 0
+ // if only the point is requested)
+ //
+ // Return :
+ // true - if success
+ // false - else
+ //
+ // Description :
+ // It initiates a COPN/COPX request.
+ //-----------------------------------------------------------------
+
+
+ //---AcceptCoordination--------------------------------------------
+
+ void AcceptCoordination ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // It accepts a coordination initiated to me.
+ //-----------------------------------------------------------------
+
+
+ //---RefuseCoordination--------------------------------------------
+
+ void RefuseCoordination ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // It refuses a handoff initiated to me.
+ //-----------------------------------------------------------------
+
+
+ //---PushFlightStrip-----------------------------------------------
+
+ void PushFlightStrip ( const char * sTargetController ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sTargetController - the controller to send the flight
+ // strip to
+ //-----------------------------------------------------------------
+
+
+ //---SetEstimation-------------------------------------------------
+
+ void SetEstimation ( const char * sPointName,
+ const char * sTime ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sPointName - the name along the route
+ // => sTime - the estimated arrival time in HHMM format
+ // in zulu time.
+ //-----------------------------------------------------------------
+
+
+ //---ClearEstimation-----------------------------------------------
+
+ void ClearEstimation ( void ) ;
+ void ClearEstimation ( const char * sPointName ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sPointName - the name along the route
+ //
+ // Description :
+ // It clears the estimated arrival time from the given point.
+ // The first release clears all estimations.
+ //-----------------------------------------------------------------
+
+
+ //---GetExtractedRoute---------------------------------------------
+
+ CFlightPlanExtractedRoute GetExtractedRoute ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // An extracted route object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //-----------------------------------------------------------------
+
+
+ //---GetPositionPredictions----------------------------------------
+
+ CFlightPlanPositionPredictions GetPositionPredictions ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A position prediction array object instance.
+ // The position prediction array contains the position used
+ // by ES to determinate where the AC will be at a given time.
+ // Every element in the array contains data for the position
+ // flown by the next minute. Therefore the size of the array is
+ // always the remaining flight time in minutes.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //-----------------------------------------------------------------
+
+
+ //---GetFPTrackPosition--------------------------------------------
+
+ CRadarTargetPositionData GetFPTrackPosition ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A flight plan track position. This position data points to the
+ // FP track position and can not be used for subsequent
+ // GetPreviousPosition calls.
+ // The FP position is the same as the last radar target position
+ // if the FP is correlated. Otherwise the system calculated position.
+ //-----------------------------------------------------------------
+
+
+ //---GetFlightPlanData---------------------------------------------
+
+ CFlightPlanData GetFlightPlanData ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A flight plan data object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //-----------------------------------------------------------------
+
+
+ //---GetControllerAssignedData-------------------------------------
+
+ CFlightPlanControllerAssignedData GetControllerAssignedData ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // An instance that holds controller assigned data.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //-----------------------------------------------------------------
+
+} ;
+
+
+class DllSpecEuroScope CRadarTarget
+{
+private:
+
+ ESINDEX m_RtPosition ; // the currently referenced AC position
+
+ friend class CPlugInData ;
+ friend class CPlugIn ;
+ friend class CFlightPlan ;
+
+public:
+
+ //---CRadarTarget--------------------------------------------------
+
+ inline CRadarTarget ( void )
+ {
+ m_RtPosition = NULL ;
+ } ;
+
+
+ //---IsValid-------------------------------------------------------
+
+ inline bool IsValid ( void ) const
+ {
+ return m_RtPosition != NULL ;
+ } ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the AC reference is valid
+ // false - else
+ //
+ // Description :
+ // It tests if the AC reference is valid.
+ //-----------------------------------------------------------------
+
+
+ //---GetCallsign---------------------------------------------------
+
+ const char * GetCallsign ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The callsign of the AC.
+ //-----------------------------------------------------------------
+
+
+ //---GetSystemID---------------------------------------------------
+
+ const char * GetSystemID ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The system assigned ID to the radar target. It is surely the
+ // same on all instances - as the code itself is generated from
+ // the callsign.
+ //-----------------------------------------------------------------
+
+
+ //---GetVerticalSpeed----------------------------------------------
+
+ int GetVerticalSpeed ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The calculated vertical speed of the selected AC in feet/minute.
+ // Be careful, it might be extremely inaccurate due the
+ // protocol. Use only for climb/descend/level test
+ // 0 - else
+ //-----------------------------------------------------------------
+
+
+ //---GetTrackHeading-----------------------------------------------
+
+ double GetTrackHeading ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The calculated track direction in degree
+ //-----------------------------------------------------------------
+
+
+ //---GetGS---------------------------------------------------------
+
+ int GetGS ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The ground speed. First it uses the plane reported GS. If
+ // that is 0 then uses the calculated one.
+ //-----------------------------------------------------------------
+
+
+ //---GetCorrelatedFlightPlan---------------------------------------
+
+ CFlightPlan GetCorrelatedFlightPlan ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The currently correlated flight plan. If the radar target
+ // is uncorrelated then the returned flight plan is invalid.
+ //-----------------------------------------------------------------
+
+
+ //---CorrelateWithFlightPlan---------------------------------------
+
+ bool CorrelateWithFlightPlan ( CFlightPlan FlightPlan ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => FlightPlan - the flight plan to be correlated with
+ //
+ // Retrun :
+ // true - if success
+ // false - if failed
+ //
+ // Description :
+ // Call this function to correlate an radar target with a
+ // flight plan. After this function you DO NOT need to call the
+ // CorrelateWithradarTarget on the flight plan.
+ //-----------------------------------------------------------------
+
+
+ //---Uncorrelate---------------------------------------------------
+
+ void Uncorrelate ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // It uncorrelates the radar target from the flight plan.
+ // After it you DO NOT need to call the Uncorrelate on the
+ // flight plan. After uncorrelating the system will never
+ // correlate it automatically.
+ //-----------------------------------------------------------------
+
+
+ //---GetPosition---------------------------------------------------
+
+ CRadarTargetPositionData GetPosition ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A plane position array instance. After calling this function
+ // the returned variable points to the last position of the radar target.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //-----------------------------------------------------------------
+
+
+ //---GetPreviousPosition-------------------------------------------
+
+ CRadarTargetPositionData GetPreviousPosition ( const CRadarTargetPositionData CurrentPosition ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => CurrentPosition - the current position object
+ //
+ // Return :
+ // A plane position object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //-----------------------------------------------------------------
+
+
+} ;
+
+
+class DllSpecEuroScope CController
+{
+private:
+
+ ESINDEX m_CtrPosition ; // the currently referenced AC position
+ bool m_Myself ; // indicates myself is selected
+
+ friend class CPlugInData ;
+ friend class CPlugIn ;
+
+public:
+
+ //---CController---------------------------------------------------
+
+ inline CController ( void )
+ {
+ m_CtrPosition = NULL ;
+ m_Myself = false ;
+ } ;
+
+
+ //---IsValid-------------------------------------------------------
+
+ inline bool IsValid ( void ) const
+ {
+ return m_CtrPosition != NULL || m_Myself ;
+ } ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the CTR reference is valid
+ // false - else
+ //
+ // Description :
+ // It tests if the CTR reference is valid.
+ //-----------------------------------------------------------------
+
+
+ //---GetCallsign---------------------------------------------------
+
+ const char * GetCallsign ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The callsign of the controller.
+ //-----------------------------------------------------------------
+
+
+ //---GetPositionId-------------------------------------------------
+
+ const char * GetPositionId ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The position ID of the selected controller.
+ //-----------------------------------------------------------------
+
+
+ //---GetPositionIdentified-----------------------------------------
+
+ bool GetPositionIdentified ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the controller is identified in the position file
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetPrimaryFrequency-------------------------------------------
+
+ double GetPrimaryFrequency ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // the primary frequency of the controller
+ // 199.980 if no primary frequency is selected
+ //-----------------------------------------------------------------
+
+
+ //---GetFullName---------------------------------------------------
+
+ const char * GetFullName ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The position ID of the selected controller.
+ //-----------------------------------------------------------------
+
+
+ //---GetRating-----------------------------------------------------
+
+ int GetRating ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // the rating of the controller:
+ // 1 - observer, OBS
+ // 2 - old STU or student 1, now Tower (TWR)
+ // 3 - old student 2 - never used
+ // 4 - old STU+ or student 3, now Approach (APP)
+ // 5 - old CTR or controller 1, now Centre (CTR)
+ // 6 - old controller 2 - never used
+ // 7 - old CTR+ or controller 3, now Senior Controller (CTR+)
+ // 8 - instructor 1, INS
+ // 9 - instructor 2 - never used
+ // 10 - instructor 3, INS+
+ // 11 - supervisor, SUP
+ // 12 - administrator, ADM
+ //-----------------------------------------------------------------
+
+
+ //---GetFacility---------------------------------------------------
+
+ int GetFacility ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // the facility of the controller:
+ // 1 - FSS - flight service station
+ // 2 - DEL - delivery
+ // 3 - GND - ground
+ // 4 - TWR - tower
+ // 5 - APP, DEP - approach, departure
+ // 6 - CTR - controller
+ //-----------------------------------------------------------------
+
+
+ //---GetSectorFileName---------------------------------------------
+
+ const char * GetSectorFileName ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The name of the sectorfile used by the controller.
+ //-----------------------------------------------------------------
+
+
+ //---IsController--------------------------------------------------
+
+ bool IsController ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the controller is accepted as controller by the
+ // servers (it has right to track AC, change FP, etc).
+ // false - else
+ //-----------------------------------------------------------------
+
+
+ //---GetPosition---------------------------------------------------
+
+ CPosition GetPosition ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The center position of the controller. It returns only the
+ // main center but never the additional visibility points.
+ //-----------------------------------------------------------------
+
+
+ //---GetRange------------------------------------------------------
+
+ int GetRange ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The visibility range of the controller.
+ //-----------------------------------------------------------------
+
+
+ //---IsBreaking----------------------------------------------------
+
+ bool IsBreaking ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The breaking state of the controller.
+ //-----------------------------------------------------------------
+
+
+ //---IsOngoingAble-------------------------------------------------
+
+ bool IsOngoingAble ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // Indicates if ready for ongoing coordination (indicates
+ // EuroScope on the other side).
+ //-----------------------------------------------------------------
+
+} ;
+
+
+class DllSpecEuroScope CRadarScreen
+{
+private:
+
+ CRadarView * m_pRadarView ; // pointer to the structure behind
+ CPlugIn * m_pPlugIn ;
+ // pointer back to the plugin for easy access
+
+ friend CPlugInData ;
+
+public:
+
+ //---CRadarScreen--------------------------------------------------
+
+ CRadarScreen ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // The default constructor.
+ //-----------------------------------------------------------------
+
+
+ //---GetPlugIn-----------------------------------------------------
+
+ inline CPlugIn * GetPlugIn ( void )
+ {
+ return m_pPlugIn ;
+ } ;
+
+
+ //---GetRadarView--------------------------------------------------
+
+ inline CRadarView * GetRadarView ( void )
+ {
+ return m_pRadarView ;
+ } ;
+
+
+ //---GetToolbarArea------------------------------------------------
+
+ RECT GetToolbarArea ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The rectangle that is cobered by the toolbar in pixels.
+ // This are is not used for radar display.
+ //-----------------------------------------------------------------
+
+
+ //---GetRadarArea--------------------------------------------------
+
+ RECT GetRadarArea ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The rectangle that is covered by the radar screen.
+ //-----------------------------------------------------------------
+
+
+ //---GetChatArea---------------------------------------------------
+
+ RECT GetChatArea ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The rectangle that is covered by the chat lines.
+ //-----------------------------------------------------------------
+
+
+ //---ConvertCoordFromPixelToPosition-------------------------------
+
+ CPosition ConvertCoordFromPixelToPosition ( POINT Pt ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Pt - a pixel coordinates
+ //
+ // Return :
+ // The value converted to Lat, Lon position.
+ //-----------------------------------------------------------------
+
+
+ //---ConvertCoordFromPositionToPixel-------------------------------
+
+ POINT ConvertCoordFromPositionToPixel ( CPosition Pos ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Pos - a lat, lon position
+ //
+ // Return :
+ // The value converted to pixels.
+ //-----------------------------------------------------------------
+
+
+ //---SaveDataToAsr-------------------------------------------------
+
+ void SaveDataToAsr ( const char * sVariableName,
+ const char * sVariableDescription,
+ const char * sValue ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sVariableName - the name under your value will be saved
+ // => sVariableDescription- a user readable name of the variable;
+ // this value will be shown in the
+ // save modified settings dialog; if
+ // empty (never pass NULL), then it
+ // will not be shown
+ // => sValue - the value itself to be stored; it
+ // may contain only printable chars and
+ // never LF or CR or ':'.
+ //
+ // Description :
+ // It saves the value for the plug in the ASR file.
+ //-----------------------------------------------------------------
+
+
+ //---GetDataFromAsr------------------------------------------------
+
+ const char * GetDataFromAsr ( const char * sVariableName ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sVariableName - the name under your value was saved
+ //
+ // Return :
+ // the value found in the ASR or
+ // NULL if not found
+ //
+ // Description :
+ // It loads the value for the plug from the ASR file.
+ //-----------------------------------------------------------------
+
+
+ //---AddScreenObject-----------------------------------------------
+
+ void AddScreenObject ( int ObjectType,
+ const char * sObjectId,
+ RECT Area,
+ bool Moveable,
+ const char * sMessage ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => ObjectType - the type of the object (depends on the plugin)
+ // => sObjectId - the object identifier (most commin is to set
+ // the callisgn or similar)
+ // => Area - the area covered by the screen object
+ // => Moveable - indicates if the user can move it
+ // => sMessage - a message to be diplayed in the message
+ // area of the main screen when the obejct
+ // is clicked
+ //
+ // Description :
+ // This is a really short living object. Define all clickable
+ // areas on the radar screen when drawing your graphics
+ // elements. Call this function from the OnRefresh function
+ // only. The object list is cleared before the next refresh.
+ //-----------------------------------------------------------------
+
+
+ //---RequestRefresh------------------------------------------------
+
+ void RequestRefresh ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // Call this function when you need an update on the screen.
+ // It just posts a request and the screen will be painted
+ // only once when the thread finished all other tasks. Do
+ // call when the content is changed and it is absolutely
+ // necessary to refresj the screen before the standard 1 sec
+ // refresh.
+ //-----------------------------------------------------------------
+
+
+ //---ShowSectorFileElement-----------------------------------------
+
+ void ShowSectorFileElement ( CSectorElement Element,
+ const char * sComponentName,
+ bool Show ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Element - the element to be shown/hidden
+ // => sComponentName - the displayable component name (call
+ // the GetComponentName to retreive
+ // the available component names)
+ // => Show - true to show, false to hide
+ //
+ // Description :
+ // This function shows or hides individual sector file elements
+ // on the screen. This function just saves the flag, but does
+ // not refresh the background map as it takes long time. When
+ // you finished all switching call the RefreshMapContent to
+ // really refresh the elements.
+ //-----------------------------------------------------------------
+
+
+ //---RefreshMapContent---------------------------------------------
+
+ void RefreshMapContent ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // This function refreshes the background map content of the view.
+ // Call this function after setting all the necessary elements
+ // on and off.
+ //-----------------------------------------------------------------
+
+
+ //---StartTagFunction----------------------------------------------
+
+ void StartTagFunction ( const char * sCallsign,
+ const char * sItemPlugInName,
+ int ItemCode,
+ const char * sItemString,
+ const char * sFunctionPlugInName,
+ int FunctionId,
+ POINT Pt,
+ RECT Area ) ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => sCallsign - the AC which TAG is clicked
+ // => sItemPlugInName - the item provider plug-in (for base
+ // EuroScope TAG functions pass NULL)
+ // => ItemCode - the item code
+ // => sItemString - the string of the selected item (as
+ // these are TAG item functions they may
+ // require the actual item string)
+ // => sFunctionPlugInName - the function provider plugin (for base
+ // EuroScope TAG functions pass NULL)
+ // => FunctionId - the ID of the function
+ // => Pt - the mouse position
+ // => Area - the area covered by the TAG item
+ //
+ // Description :
+ // Call this function to execute the inner logic of EuroScope
+ // after clicking on a TAG item. Be sure to ASEL the appropriate
+ // AC before initiating the TAG function as most of them
+ // operates on the ASEL one.
+ //-----------------------------------------------------------------
+
+
+ //---GetDisplayArea------------------------------------------------
+
+ void GetDisplayArea ( CPosition * pLeftDown,
+ CPosition * pRightUp ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // <= pLeftDown - the left down corner of the screen
+ // <= pRightUp - the right up corner of the screen
+ //
+ // Description :
+ // It returns the position of the left-down and right-up corners.
+ //-----------------------------------------------------------------
+
+
+ //---SetDisplayArea------------------------------------------------
+
+ void SetDisplayArea ( CPosition LeftDown,
+ CPosition RightUp ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => LeftDown - the desired left down corner of the screen
+ // => RightUp - the desired right up corner of the screen
+ //
+ // Description :
+ // It update the display area of the screen to fully cover
+ // the defined rectangle. The are might bi bigger if the
+ // aspect ratio of the screen is different.
+ //-----------------------------------------------------------------
+
+
+ //---OnAsrContentLoaded--------------------------------------------
+
+ inline virtual void OnAsrContentLoaded ( bool Loaded )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => Loaded - indicates if the content was really loaded
+ // from a file (true) or the ASR file is ready
+ // just after NEW command.
+ //
+ // Description :
+ // This function is called after the initialization of the
+ // ASR file is complete. It may be after loading it from the
+ // file or just after executing a NEW command.
+ //------------------------------------------------------------------
+
+
+ //---OnAsrContentToBeSaved------------------------------------------
+
+ virtual void OnAsrContentToBeSaved ( void )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Description :
+ // This function is called just before the content change dialog.
+ // is saved. It is the latest time you can register any change
+ // to the ASR file to be prompted to save or not.
+ //------------------------------------------------------------------
+
+
+ //---OnRefresh------------------------------------------------------
+
+ inline virtual void OnRefresh ( HDC hDC,
+ int Phase )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => hDC - handle to the device context
+ // => Phase - the refresh phase
+ //
+ // Description :
+ // This function is called several times during the refresh. The
+ // Phase indicates the actual state:
+ // REFRESH_PHASE_BACK_BITMAP - used to draw the content of
+ // background bitmap, it is updated
+ // only on zooming/panning
+ // REFRESH_PHASE_BEFORE_TAGS - before TAGs are displayed
+ // REFRESH_PHASE_AFTER_TAGS - after TAGs, before lists
+ // REFRESH_PHASE_AFTER_LISTS - after all (before chat,
+ // toolbar and popup menus).
+ // The hDC points to an internal bitmap. Therefore your drawings
+ // will not be displayed immediately. Only when all drawings are
+ // ready the bitmap is copied to the screen.
+ // Normally this function is called once a second. Be fast and
+ // efficient to draw all your drawings in a resonable short time.
+ // When something is dragged on the screen this function will be
+ // called far more often.
+ // In the current version there is no way to refresh only part
+ // of the radar screen. It is painted as whole all the times.
+ // Therefore a fast drawing is really necessary.
+ //------------------------------------------------------------------
+
+
+ //---OnAsrContentToBeClosed------------------------------------------
+
+ virtual void OnAsrContentToBeClosed ( void ) = NULL ;
+ //------------------------------------------------------------------
+ // Description :
+ // This function is called just before close of the ASR file.
+ // Actually you can not save data here, but you may clean up
+ // things.
+ // IMPORTANT: You MUST free the instance as the last action
+ // of this callback. Call: delete this.
+ //------------------------------------------------------------------
+
+
+ //---OnControllerPositionUpdate------------------------------------
+
+ inline virtual void OnControllerPositionUpdate ( CController Controller )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Controller - the controller reference whose position
+ // is updated
+ //
+ // Description :
+ // All plugins must implement this function to handle the
+ // events when a controller position is updated.
+ //-----------------------------------------------------------------
+
+
+ //---OnControllerDisconnect----------------------------------------
+
+ inline virtual void OnControllerDisconnect ( CController Controller )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Controller - the controller reference
+ //
+ // Description :
+ // All plugins must implement this function to handle the
+ // events when a controller is logged off or its position
+ // update is timed out.
+ //-----------------------------------------------------------------
+
+
+ //---OnRadarTargetPositionUpdate--------------------------------------
+
+ inline virtual void OnRadarTargetPositionUpdate ( CRadarTarget RadarTarget )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => RadarTarget - the radara reference whose position
+ // is updated
+ //
+ // Description :
+ // All plugins must implement this function to handle the
+ // events when a radar target position is updated.
+ //-----------------------------------------------------------------
+
+
+ //---OnFlightPlanDisconnect----------------------------------------
+
+ inline virtual void OnFlightPlanDisconnect ( CFlightPlan FlightPlan )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => FlightPlan - the flight plan reference
+ //
+ // Description :
+ // All plugins must implement this function to handle the
+ // events when a flight plan is logged off or its position
+ // update is timed out.
+ //-----------------------------------------------------------------
+
+
+ //---OnFlightPlanFlightPlanDataUpdate------------------------------
+
+ inline virtual void OnFlightPlanFlightPlanDataUpdate ( CFlightPlan FlightPlan )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => FlightPlan - the flight plan reference whose flight plan
+ // data is updated
+ //
+ // Description :
+ // All plugins must implement this function to handle the
+ // events when a flight plan flight plan data is updated.
+ //-----------------------------------------------------------------
+
+
+ //---OnFlightPlanControllerAssignedDataUpdate----------------------
+
+ inline virtual void OnFlightPlanControllerAssignedDataUpdate ( CFlightPlan FlightPlan,
+ int DataType )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => FlightPlan - the flight plan reference whose controller
+ // assigned data is updated
+ // => DataType - the type of the data updated (CTR_DATA_TYPE ...)
+ //
+ // Description :
+ // All plugins must implement this function to handle the
+ // events when a flight plan controller assigned data is updated.
+ //-----------------------------------------------------------------
+
+
+ //---OnFlightPlanFlightStripPushed---------------------------------
+
+ inline virtual void OnFlightPlanFlightStripPushed ( CFlightPlan FlightPlan,
+ const char * sSenderController,
+ const char * sTargetController )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => FlightPlan - the flight plan reference whose flight
+ // stirp is pushed from one controller
+ // to another
+ // => sSenderController - the one who sent the strip
+ // => sTargetController - the one who received the strip
+ //
+ // Description :
+ // This function is called when a strip is pushed to you or
+ // by you. One of SenderController or TargetController is always
+ // you.
+ //------------------------------------------------------------------
+
+
+ //---OnCompileCommand-----------------------------------------------
+
+ inline virtual bool OnCompileCommand ( const char * sCommandLine )
+ {
+ return false ;
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => sCommandLine - the full command line
+ //
+ // Return :
+ // true - if the command is compiled
+ // false - else
+ //
+ // Description :
+ // When a command is not interpreted by EuroScope it calls the
+ // plugins. Firt this functions are called from the radar
+ // screen handlers. If all refuses then the plug-in level
+ // functions are called too. If one function return true, no
+ // more functions are called.
+ //------------------------------------------------------------------
+
+
+ //---OnOverScreenObject---------------------------------------------
+
+ inline virtual void OnOverScreenObject ( int ObjectType,
+ const char * sObjectId,
+ POINT Pt,
+ RECT Area )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => ObjectType - the type of the screen object
+ // => sObjectId - the ID of the screen object
+ // => Pt - the mouse position
+ // => Area - the area originally registered for the
+ // screen object
+ //
+ // Description :
+ // This function is called whenever the mouse is over a view
+ // object that was registered by the plugin.
+ //------------------------------------------------------------------
+
+
+ //---OnButtonDownScreenObject---------------------------------------
+
+ inline virtual void OnButtonDownScreenObject ( int ObjectType,
+ const char * sObjectId,
+ POINT Pt,
+ RECT Area,
+ int Button )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => ObjectType - the type of the screen object
+ // => sObjectId - the ID of the screen object
+ // => Pt - the mouse position
+ // => Area - the area originally registered for the
+ // screen object
+ // => Button - BUTTON_LEFT, BUTTON_MIDDLE, BUTTON_RIGHT
+ //
+ // Description :
+ // This function is called whenever the mouse button is pressed
+ // an object that was registered by the plugin.
+ //------------------------------------------------------------------
+
+
+ //---OnButtonUpScreenObject-----------------------------------------
+
+ inline virtual void OnButtonUpScreenObject ( int ObjectType,
+ const char * sObjectId,
+ POINT Pt,
+ RECT Area,
+ int Button )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => ObjectType - the type of the screen object
+ // => sObjectId - the ID of the screen object
+ // => Pt - the mouse position
+ // => Area - the area originally registered for the
+ // screen object
+ // => Button - BUTTON_LEFT, BUTTON_MIDDLE, BUTTON_RIGHT
+ //
+ // Description :
+ // This function is called whenever the mouse button is released
+ // an object that was registered by the plugin.
+ //------------------------------------------------------------------
+
+
+ //---OnClickScreenObject--------------------------------------------
+
+ inline virtual void OnClickScreenObject ( int ObjectType,
+ const char * sObjectId,
+ POINT Pt,
+ RECT Area,
+ int Button )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => ObjectType - the type of the screen object
+ // => sObjectId - the ID of the screen object
+ // => Pt - the mouse position
+ // => Area - the area originally registered for the
+ // screen object
+ // => Button - BUTTON_LEFT, BUTTON_MIDDLE, BUTTON_RIGHT
+ //
+ // Description :
+ // This function is called whenever the user clicks on an object
+ // that was registered by the plugin.
+ //------------------------------------------------------------------
+
+
+ //---OnDoubleClickScreenObject--------------------------------------
+
+ inline virtual void OnDoubleClickScreenObject ( int ObjectType,
+ const char * sObjectId,
+ POINT Pt,
+ RECT Area,
+ int Button )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => ObjectType - the type of the screen object
+ // => sObjectId - the ID of the screen object
+ // => Pt - the mouse position
+ // => Area - the area originally registered for the
+ // screen object
+ // => Button - BUTTON_LEFT, BUTTON_MIDDLE, BUTTON_RIGHT
+ //
+ // Description :
+ // This function is called whenever the user doubleclicks on an
+ // object that was registered by the plugin.
+ //------------------------------------------------------------------
+
+
+ //---OnMoveScreenObject---------------------------------------------
+
+ inline virtual void OnMoveScreenObject ( int ObjectType,
+ const char * sObjectId,
+ POINT Pt,
+ RECT Area,
+ bool Released )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => ObjectType - the type of the screen object
+ // => sObjectId - the ID of the screen object
+ // => Pt - the mouse position
+ // => Area - the area originally registered for the
+ // screen object
+ // => Released - indicates that this is the last call of the
+ // move as the user has just released the
+ // object
+ //
+ // Description :
+ // This function is called whenever the user moves the view object.
+ // While it is being dragged this function is called several times
+ // with Released == false. At the end when the object is released
+ // the Released == true, and no more call for the object.
+ //------------------------------------------------------------------
+
+
+ //---OnFunctionCall-------------------------------------------------
+
+ inline virtual void OnFunctionCall ( int FunctionId,
+ const char * sItemString,
+ POINT Pt,
+ RECT Area )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => FunctionId - the ID of the function that is selected
+ // => sItemString - the string of the item initiated the
+ // function call (on popup edit calls it
+ // holds the updated string)
+ // => Pt - the mouse position
+ // => Area - the area originally registered for the
+ // screen object that initiated the function
+ //
+ // Description :
+ // This function is called when a function is initiated. The
+ // function itself can be a TAG item function and the user
+ // clicked on a TAG or on an AC list. This function is also
+ // clalled after popup edit and menu items.
+ //------------------------------------------------------------------
+
+
+} ;
+
+
+class DllSpecEuroScope CFlightPlanList
+{
+private:
+
+ ESINDEX m_Position ;// the currently referenced AC list position
+
+ friend class CPlugInData ;
+ friend class CPlugIn ;
+
+public:
+
+ //---CFlightPlanList-----------------------------------------------
+
+ inline CFlightPlanList ( void )
+ {
+ m_Position = NULL ;
+ } ;
+
+
+ //---IsValid-------------------------------------------------------
+
+ inline bool IsValid ( void ) const
+ {
+ return m_Position != NULL ;
+ } ;
+
+
+ //---GetColumnNumber-----------------------------------------------
+
+ int GetColumnNumber ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The number of the columns defined so far. It is a good idea
+ // to test with this function if the AC list is filled from
+ // the settings before adding new columns.
+ //-----------------------------------------------------------------
+
+
+ //---DeleteAllColumns----------------------------------------------
+
+ void DeleteAllColumns ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // It deletes all previous column definitions.
+ //-----------------------------------------------------------------
+
+
+ //---AddColumnDefinition-------------------------------------------
+
+ void AddColumnDefinition ( const char * sColumnTitle,
+ int Width,
+ bool Centered,
+ const char * sItemProvifer,
+ int ItemCode,
+ const char * sLeftButtonFunctionProvifer,
+ int LeftButtonFunction,
+ const char * sRightButtonFunctionProvifer,
+ int RightButtonFunction ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sColumnTitle - the title string of the column
+ // => Width - width of the column (in chars)
+ // => Centered - indicates centered alignment
+ // => sItemProvifer - TAG item provider for the column; pass
+ // NULL or "" for ES built in items
+ // => ItemCode - the TAG item codes )see above the
+ // built in codes)
+ // => sLeftButtonFunctionProvifer
+ // - the provider of the left button function
+ // (pass NULL, not yet implemented)
+ // => LeftButtonFunction - the left button function (see above
+ // the built in functions)
+ // => sRightButtonFunctionProvifer,
+ // - the provider of the right button function
+ // (pass NULL, not yet implemented)
+ // => RightButtonFunction - the right button function (see above
+ // the built in functions)
+ //
+ // Description :
+ // It adds one column definition to the AC list. Call this
+ // function after registering the AC list immediately. All
+ // column definitions later will be ignored. Also if there are
+ // data about the content of the list in the settings file then
+ // all calls are ignored.
+ //-----------------------------------------------------------------
+
+
+ //---AddFpToTheList------------------------------------------------
+
+ void AddFpToTheList ( CFlightPlan FlightPlan ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => FlightPlan - the FP to be added to the list
+ //
+ // Description :
+ // It adds a new FP to the FP list.
+ //-----------------------------------------------------------------
+
+
+ //---RemoveFpFromTheList-------------------------------------------
+
+ void RemoveFpFromTheList ( CFlightPlan FlightPlan ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => FlightPlan - the FP to be removed from the list
+ //
+ // Description :
+ // It removes a FP to the FP list.
+ //-----------------------------------------------------------------
+
+
+ //---ShowFpList----------------------------------------------------
+
+ void ShowFpList ( bool Show ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Show - show/hide
+ //
+ // Description :
+ // It shows or hides the FP list.
+ //-----------------------------------------------------------------
+
+} ;
+
+
+class DllSpecEuroScope CSectorElement
+{
+private:
+
+ int m_Position ;// the currently referenced element position
+ int m_ElementType ; // the type of the element
+
+ friend class CPlugInData ;
+ friend class CPlugIn ;
+ friend class CRadarScreen ;
+
+public:
+
+ //---CSectorElement------------------------------------------------
+
+ inline CSectorElement ( void )
+ {
+ m_Position = -1 ;
+ m_ElementType = 0 ;
+ } ;
+
+
+ //---IsValid-------------------------------------------------------
+
+ inline bool IsValid ( void ) const
+ {
+ return m_Position != -1 ;
+ } ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the CTR reference is valid
+ // false - else
+ //
+ // Description :
+ // It tests if the CTR reference is valid.
+ //-----------------------------------------------------------------
+
+
+ //---GetElementType------------------------------------------------
+
+ inline int GetElementType ( void ) const
+ {
+ return m_ElementType ;
+ } ;
+
+
+ //---GetName-------------------------------------------------------
+
+ const char * GetName ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // the name of the element
+ //-----------------------------------------------------------------
+
+
+ //---GetPosition---------------------------------------------------
+
+ bool GetPosition ( CPosition * pPosition,
+ int Index ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // <= pPosition - the position of the element
+ // => Index - the index of the required position (star
+ // from zero always)
+ //
+ // Return :
+ // true - if the Index if valid within the element and the
+ // position is optained
+ // false - esle
+ //
+ // Remarks :
+ // Not all element have coordinates. This function may return
+ // false for Index zero.
+ //-----------------------------------------------------------------
+
+
+ //---GetComponentName----------------------------------------------
+
+ const char * GetComponentName ( int Index ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Index - the index of the required component (star
+ // from zero always)
+ //
+ // Return :
+ // the name of the component or
+ // empty string if the index is invalid
+ //
+ // Description :
+ // It returns the name of the individual components that can be
+ // switched on or off in the drawings.
+ //-----------------------------------------------------------------
+
+
+ //---GetFrequency--------------------------------------------------
+
+ double GetFrequency ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // the frequency of the VOR, NDB, AIRPORT elements
+ // 0.0 for all the rest
+ //-----------------------------------------------------------------
+
+
+ //---GetRunwayName-------------------------------------------------
+
+ const char * GetRunwayName ( int Index ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Index - 0 or 1
+ //
+ // Return :
+ // the name of the runway
+ // empty string if the index is invalid
+ //
+ // Description :
+ // It returns the name of the runway. Index 0 and 1 is valid
+ // for runway elements while sid/star elements always return
+ // its runway.
+ //-----------------------------------------------------------------
+
+
+ //---GetRunwayHeading----------------------------------------------
+
+ int GetRunwayHeading ( int Index ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Index - 0 or 1
+ //
+ // Return :
+ // the heading of the runway
+ // -1 if the index is invalid
+ //
+ // Description :
+ // It returns the heding name of the runway.
+ //-----------------------------------------------------------------
+
+
+ //---GetAirportName------------------------------------------------
+
+ const char * GetAirportName ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // the name of the airport this element belongs to
+ // empty string if the type is invalid
+ //
+ // Description :
+ // It returns the name of the runway for runway and sid/star
+ // elements.
+ //-----------------------------------------------------------------
+
+
+ //--IsElementActive------------------------------------------------
+
+ bool IsElementActive ( bool Departure,
+ int Index = 0 ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Departure - indicates if the elements shoudl be tested
+ // if active for arrival (false) or
+ // departure (true)
+ // => Index - 0 or 1
+ //
+ // Return :
+ // true - if the element is active
+ // false - else
+ //
+ // Description :
+ // It returns if the element (that can be airport or runway) is
+ // active for arrival or departure. The Index is used for
+ // runways only.
+ //-----------------------------------------------------------------
+} ;
+
+class DllSpecEuroScope CGrountToAirChannel
+{
+private:
+
+ int m_Index ; // the currently referenced element index
+
+ friend class CPlugIn ;
+ friend class CPlugInData ;
+
+public:
+
+ inline CGrountToAirChannel ( void )
+ {
+ m_Index = -1 ;
+ }
+
+ //---IsValid-------------------------------------------------------
+
+ inline bool IsValid ( void ) const
+ {
+ return m_Index != -1 ;
+ } ;
+ //-----------------------------------------------------------------
+ // Return :
+ // true - if the CTR reference is valid
+ // false - else
+ //
+ // Description :
+ // It tests if the CTR reference is valid.
+ //-----------------------------------------------------------------
+
+
+ //---GetName-------------------------------------------------------
+
+ const char * GetName ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The name of the communication channel.
+ //-----------------------------------------------------------------
+
+
+ //---GetFrequency--------------------------------------------------
+
+ double GetFrequency ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The frequency of the communication channel.
+ //-----------------------------------------------------------------
+
+
+ //---GetVoiceServer------------------------------------------------
+
+ const char * GetVoiceServer ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The voice server name of the communication channel.
+ //-----------------------------------------------------------------
+
+
+ //---GetVoiceChannel-----------------------------------------------
+
+ const char * GetVoiceChannel ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The voice server channel name of the communication channel.
+ //-----------------------------------------------------------------
+
+
+ //---GetIsPrimary--------------------------------------------------
+
+ bool GetIsPrimary ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A flag indicating if the channel is the primary channel.
+ //-----------------------------------------------------------------
+
+
+ //---GetIsAtis-----------------------------------------------------
+
+ bool GetIsAtis ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A flag indicating if the channel is the ATIS channel.
+ //-----------------------------------------------------------------
+
+
+ //---GetIsTextReceiveOn--------------------------------------------
+
+ bool GetIsTextReceiveOn ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A flag indicating if the channel is receiving text messages.
+ //-----------------------------------------------------------------
+
+
+ //---GetIsTextTransmitOn-------------------------------------------
+
+ bool GetIsTextTransmitOn ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A flag indicating if the channel is transmitting text messages.
+ //-----------------------------------------------------------------
+
+
+ //---GetIsVoiceReceiveOn-------------------------------------------
+
+ bool GetIsVoiceReceiveOn ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A flag indicating if the channel is receiving voice. This
+ // flag is set when the check box is set. It alone does not
+ // mean the server connection is on.
+ //-----------------------------------------------------------------
+
+
+ //---GetIsVoiceTransmitOn------------------------------------------
+
+ bool GetIsVoiceTransmitOn ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A flag indicating if the channel is transmitting voice.
+ //-----------------------------------------------------------------
+
+
+ //---GetIsVoiceConnected-------------------------------------------
+
+ bool GetIsVoiceConnected ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A flag indicating if the channel is successfully connected
+ // to the voice server.
+ //-----------------------------------------------------------------
+
+
+ //---TogglePrimary-------------------------------------------------
+
+ void TogglePrimary ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // It changes the primary setting of the channel (like clicking
+ // on the check box).
+ //-----------------------------------------------------------------
+
+
+ //---ToggleAtis----------------------------------------------------
+
+ void ToggleAtis ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // It changes the ATIS setting of the channel (like clicking
+ // on the check box).
+ //-----------------------------------------------------------------
+
+
+ //---ToggleTextReceive---------------------------------------------
+
+ void ToggleTextReceive ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // It changes the text receive setting of the channel (like clicking
+ // on the check box).
+ //-----------------------------------------------------------------
+
+
+ //---ToggleTextTransmit--------------------------------------------
+
+ void ToggleTextTransmit ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // It changes the text transmit setting of the channel (like clicking
+ // on the check box).
+ //-----------------------------------------------------------------
+
+
+ //---ToggleVoiceReceive--------------------------------------------
+
+ void ToggleVoiceReceive ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // It changes the voice receive setting of the channel (like clicking
+ // on the check box).
+ //-----------------------------------------------------------------
+
+
+ //---ToggleVoiceTransmit-------------------------------------------
+
+ void ToggleVoiceTransmit ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // It changes the voice transmit setting of the channel (like clicking
+ // on the check box).
+ //-----------------------------------------------------------------
+
+} ;
+
+
+class DllSpecEuroScope CPlugIn
+{
+private:
+
+ CPlugInData * m_pPluginData ;
+ // pointer to the internal data structure
+
+public:
+
+ //---CPlugIn-------------------------------------------------------
+
+ CPlugIn ( int CompatibilityCode,
+ const char * sPlugInName,
+ const char * sVersionNumber,
+ const char * sAuthorName,
+ const char * sCopyrigthMessage ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => CompatibilityCode - for compatiblity check
+ // => sPlugInName - the user readable name of the plugin
+ // => sVersionNumber - actual version number
+ // => sAuthorName - the name of the author
+ // => sCopyrightMessage - the name of the author
+ //
+ // Description :
+ // The default constructor.
+ //-----------------------------------------------------------------
+
+
+ //---~CPlugIn------------------------------------------------------
+
+ virtual ~CPlugIn ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // The descriptoz. Keep it virtual.
+ //-----------------------------------------------------------------
+
+
+ //---OnControllerPositionUpdate------------------------------------
+
+ inline virtual void OnControllerPositionUpdate ( CController Controller )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Controller - the controller reference whose position
+ // is updated
+ //
+ // Description :
+ // All plugins must implement this function to handle the
+ // events when a controller position is updated.
+ //-----------------------------------------------------------------
+
+
+ //---OnControllerDisconnect----------------------------------------
+
+ inline virtual void OnControllerDisconnect ( CController Controller )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Controller - the controller reference
+ //
+ // Description :
+ // All plugins must implement this function to handle the
+ // events when a controller is logged off or its position
+ // update is timed out.
+ //-----------------------------------------------------------------
+
+
+ //---OnRadarTergetPositionUpdate--------------------------------------
+
+ inline virtual void OnRadarTargetPositionUpdate ( CRadarTarget RadarTarget )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => radarTarget - the radar target reference whose position
+ // is updated
+ //
+ // Description :
+ // All plugins must implement this function to handle the
+ // events when a radara target position is updated.
+ //-----------------------------------------------------------------
+
+
+ //---OnFlightPlanDisconnect----------------------------------------
+
+ inline virtual void OnFlightPlanDisconnect ( CFlightPlan FlightPlan )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => FlightPlan - the flight plan reference
+ //
+ // Description :
+ // All plugins must implement this function to handle the
+ // events when a fight plan is logged off or its position
+ // update is timed out.
+ //-----------------------------------------------------------------
+
+
+ //---OnFlightPlanFlightPlanDataUpdate------------------------------
+
+ inline virtual void OnFlightPlanFlightPlanDataUpdate ( CFlightPlan FlightPlan )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => FlightPlan - the flight plan reference whose flight plan
+ // data is updated
+ //
+ // Description :
+ // All plugins must implement this function to handle the
+ // events when a flight plan flight plan data is updated.
+ //-----------------------------------------------------------------
+
+
+ //---OnPlaneInformationUpdate--------------------------------------
+
+ inline virtual void OnPlaneInformationUpdate ( const char * sCallsign,
+ const char * sLivery,
+ const char * sPlaneType )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sCallsign - the callsign of the plane
+ // => sLivery - the livery set in the pilot client
+ // => sPlaneType - the manufacturer and type set in the pilot client
+ //
+ // Description :
+ // This function is called when a SqwakBox plane information
+ // update message is received.
+ //-----------------------------------------------------------------
+
+
+ //---OnFlightPlanControllerAssignedDataUpdate----------------------
+
+ inline virtual void OnFlightPlanControllerAssignedDataUpdate ( CFlightPlan FlightPlan,
+ int DataType )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => FlightPlan - the flight plan reference whose controller
+ // assigned data is updated
+ // => DataType - the type of the data updated (CTR_DATA_TYPE ...)
+ //
+ // Description :
+ // All plugins must implement this function to handle the
+ // events when a plane controller assigned data is updated.
+ //-----------------------------------------------------------------
+
+
+ //---OnFlightPlanFlightStripPushed---------------------------------
+
+ inline virtual void OnFlightPlanFlightStripPushed ( CFlightPlan FlightPlan,
+ const char * sSenderController,
+ const char * sTargetController )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => FlightPlan - the FP reference whose flight
+ // stirp is pushed from one controller
+ // to another
+ // => sSenderController - the one who sent the strip
+ // => sTargetController - the one who received the strip
+ //
+ // Description :
+ // This function is called when a strip is pushed to you or
+ // by you. One of SenderController or TargetController is always
+ // you.
+ //------------------------------------------------------------------
+
+
+ //---OnRadarScreenCreated------------------------------------------
+
+ inline virtual CRadarScreen * OnRadarScreenCreated ( const char * sDisplayName,
+ bool NeedRadarContent,
+ bool GeoReferenced,
+ bool CanBeSaved,
+ bool CanBeCreated )
+ {
+ return NULL ;
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sDisplayName - the name of the display that is just
+ // created; if the name is
+ // "Standard ES radar screen"
+ // it is a standard ES radar screen
+ // => NeedRadarContent,
+ // => GeoReferenced,
+ // => CanBeSaved,
+ // => CanBeCreated - other radar screen attributes
+ // see them at RegisterDisplayType
+ //
+ // Return :
+ // an instance to your own radar scren class member or
+ // NULL if this type is not handled by your plug-in
+ //
+ // Description :
+ // When a new radar display is opened your plug-in is called
+ // to create an screen object instance. You may create your own
+ // radar handling class that is derived from CRadarScreen.
+ // Allocate a new instance and return the pointer to handle
+ // all the events from there.
+ //-----------------------------------------------------------------
+
+
+ //---OnCompileCommand-----------------------------------------------
+
+ inline virtual bool OnCompileCommand ( const char * sCommandLine )
+ {
+ return false ;
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => sCommandLine - the full command line
+ //
+ // Return :
+ // true - if the command is compiled
+ // false - else
+ //
+ // Description :
+ // When a command is not interpreted by EuroScope it calls the
+ // plugins. Firt the radar screens are called. If all refuses
+ // then the plug-in level functions are called too. If one
+ // function return true, no more functions are called.
+ //------------------------------------------------------------------
+
+
+ //---OnCompileFrequencyChat-----------------------------------------
+
+ inline virtual void OnCompileFrequencyChat ( const char * sSenderCallsign,
+ double Frequency,
+ const char * sChatMessage )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => sSenderCallsign - the sender
+ // => Frequency - the frequency where you received the
+ // message
+ // => sChatMessage - the full message string
+ //
+ // Description :
+ // When a frequency message is received you have the possibility
+ // to process, display its content. This function may be called
+ // for several times with the same message if it is sent to
+ // several frequencies.
+ //------------------------------------------------------------------
+
+
+ //---OnCompilePrivateChat-------------------------------------------
+
+ inline virtual void OnCompilePrivateChat ( const char * sSenderCallsign,
+ const char * sReceiverCallsign,
+ const char * sChatMessage )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => sSenderCallsign - the sender
+ // => sReceiverCallsign - the receivers callsign
+ // server - for messages from the SERVER
+ // ATC - ATC messages
+ // Broadcast- broadcast messages
+ // SUP - supervisor requests
+ // => sChatMessage - the full message string
+ //
+ // Description :
+ // When a private message is received you have the possibility
+ // to process, display its content.
+ //------------------------------------------------------------------
+
+
+ //---OnGetTagItem---------------------------------------------------
+
+ inline virtual void OnGetTagItem ( CFlightPlan FlightPlan,
+ CRadarTarget RadarTarget,
+ int ItemCode,
+ int TagData,
+ char sItemString [ 16 ],
+ int * pColorCode,
+ COLORREF * pRGB,
+ double * pFontSize )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => FlightPlan - the FP reference whose TAG item is
+ // to be created - it may be invalid
+ // => RadarTraget - the RT reference whose TAG item is
+ // to be created - it may be invalid
+ // => ItemCode - the code of the item
+ // => TagData - the data available for the TAG; values are
+ // - TAG_DATA_UNCORRELATED_RADAR
+ // - TAG_DATA_FLIGHT_PLAN_TRACK
+ // - TAG_DATA_CORRELATED
+ // <= sItemString - the generated string; it is strictly limited
+ // to 15 chars (plust terminator \0)
+ // <= pColorCode - the color code of the item; return one of
+ // the TAG_COLOR_ ... value
+ // TAG_COLOR_DEFAULT - indicates the default for AC state
+ // TAG_COLOR_RGB_DEFINED - do not use and
+ // predefined color, but the return value
+ // in pRGB
+ // <= pRGB - the requested color of the TAG item; it is
+ // used only in case if pColorCode is
+ // TAG_COLOR_RGB_DEFINED
+ // <=> pFontSize - the requested size of the font
+ //
+ // Description :
+ // All plugins must implement this function to handle the
+ // events when a plane position is updated.
+ //-----------------------------------------------------------------
+
+
+ //---OnRefreshFpListContent----------------------------------------
+
+ inline virtual void OnRefreshFpListContent ( CFlightPlanList AcList )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => AcList - the AC list to be refreshed
+ //
+ // Description :
+ // This function is called once in a second just after all plane
+ // data is refreshed in ES memory. You may add/remove planes
+ // to/from the list, or clear the content and add the planes
+ // again.
+ //-----------------------------------------------------------------
+
+
+ //---OnNewMetarReceived--------------------------------------------
+
+ inline virtual void OnNewMetarReceived ( const char * sStation,
+ const char * sFullMetar )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sStation - the airport
+ // => sFullMetar - the original comlete metar string
+ //
+ // Description :
+ // This function is called whenever a new metar data is received
+ // from the server.
+ //-----------------------------------------------------------------
+
+
+ //---OnFunctionCall-------------------------------------------------
+
+ inline virtual void OnFunctionCall ( int FunctionId,
+ const char * sItemString,
+ POINT Pt,
+ RECT Area )
+ {
+ } ;
+ //------------------------------------------------------------------
+ // Parameters :
+ // => FunctionId - the ID of the function that is selected
+ // => sItemString - the string of the item initiated the
+ // function call (on popup edit calls it
+ // holds the updated string)
+ // => Pt - the mouse position
+ // => Area - the area originally registered for the
+ // screen object that initiated the function
+ //
+ // Description :
+ // This function is called when a function is initiated. The
+ // function itself can be a TAG item function and the user
+ // clicked on a TAG or on an AC list. This function is also
+ // clalled after popup edit and menu items.
+ //------------------------------------------------------------------
+
+
+ //---OnAirportRunwayActivityChanged---------------------------------
+
+ inline virtual void OnAirportRunwayActivityChanged ( void )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Description :
+ // This function is called whenever the user closes the
+ // runway activity dialog with OK.
+ //-----------------------------------------------------------------
+
+
+ //---OnAirportRunwayActivityChanged---------------------------------
+
+ inline virtual void OnTimer ( int Counter )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Counter - It counts the secods from the application start
+ //
+ // Description :
+ // This function is called once in a second. Timer is a limited
+ // resource and you can use the one that refreshes the sceens
+ // once in a second.
+ //-----------------------------------------------------------------
+
+
+ //---GetPlugInName-------------------------------------------------
+
+ const char * GetPlugInName ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // the plugin name.
+ //-----------------------------------------------------------------
+
+
+ //---RegisterDisplayType-------------------------------------------
+
+ void RegisterDisplayType ( const char * sDisplayName,
+ bool NeedRadarContent,
+ bool GeoReferenced,
+ bool CanBeSaved,
+ bool CanBeCreated ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sDisplayType - the name of the display type
+ // => NeedRadarContent- indicates that the default radar content
+ // should be displayed in this type
+ // => GeoReferenced - indicates that lat/lon coordnates
+ // can be used in the type, and therefore
+ // zooming in/out a panning is allowed
+ // => CanBeSaved - indicates that ASR file content can
+ // be saved on exit
+ // => CanBeCreated - indicates that it should be listed in
+ // new ASR types
+ //
+ // Description :
+ // Call this function to register your own display type within
+ // EuroScope. You need this only in case you would like to
+ // create a complete new outllok of the view. In your own type
+ // you are free to display anything to the screen.
+ //-----------------------------------------------------------------
+
+
+ //---RegisterTagItemType-------------------------------------------
+
+ void RegisterTagItemType ( const char * sDisplayName,
+ int Code ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sDisplayName - the user readable name of the TAG item
+ // => Code - the item code (must be bigger than 0)
+ //
+ // Description :
+ // It registers a new TAG item type.
+ //-----------------------------------------------------------------
+
+
+ //---RegisterTagItemFunction---------------------------------------
+
+ void RegisterTagItemFunction ( const char * sDisplayName,
+ int Code ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sDisplayName - the user readable name of the TAG item
+ // => Code - the item code (must be bigger than 0)
+ //
+ // Description :
+ // It registers a new TAG item function.
+ //-----------------------------------------------------------------
+
+
+ //---RegisterFpList------------------------------------------------
+
+ CFlightPlanList RegisterFpList ( const char * sListName ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sListName - the name of the list box
+ //
+ // Return :
+ // The new AC list instance. The returned instance may be saved
+ // into your memory area and can be used in further processing.
+ //
+ // Description :
+ // It registers a new AC list.
+ //-----------------------------------------------------------------
+
+
+ //---RegisterToolbarItem-------------------------------------------
+
+ void RegisterToolbarItem ( int ItemId,
+ const char * sItemName ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => ItemId - the ID of the toolbar item
+ // => sItemName - the name of the toolbar item
+ //
+ // Decsription :
+ // It registers a toolbar item for the plugin. To display it
+ // implement the OnToolbarItem... functions.
+ //-----------------------------------------------------------------
+
+
+ //---RefreshToolbar------------------------------------------------
+
+ void RefreshToolbar ( bool ResizeToo ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => ResizeToo - indicates that the plugin would liek to
+ // change the size of the toolbar item
+ //
+ // Description :
+ // Call this function to indicate that the toolbar content is
+ // invalid.
+ //-----------------------------------------------------------------
+
+
+ //---SaveDataToSettings--------------------------------------------
+
+ void SaveDataToSettings ( const char * sVariableName,
+ const char * sVariableDescription,
+ const char * sValue ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sVariableName - the name under your value will be saved
+ // => sVariableDescription- a user readable name of the variable;
+ // this value will be shown in the
+ // save modified settings dialog; if
+ // empty (never pass NULL), then it
+ // will not be shown
+ // => sValue - the value itself to be stored; it
+ // may contain only printable chars and
+ // never LF or CR or ':'.
+ //
+ // Description :
+ // It saves the value for the plug in the settings file.
+ //-----------------------------------------------------------------
+
+
+ //---GetDataFromSettings-------------------------------------------
+
+ const char * GetDataFromSettings ( const char * sVariableName ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sVariableName - the name under your value was saved
+ //
+ // Return :
+ // the value found in the ASR or
+ // NULL if not found
+ //
+ // Description :
+ // It loads the value for the plug in from the settings file.
+ //-----------------------------------------------------------------
+
+
+ //---OpenPopupEdit-------------------------------------------------
+
+ void OpenPopupEdit ( RECT Area,
+ int FunctionId,
+ const char * sInitialValue ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Area - the rectangle where the edit box
+ // appears (it is a good idea to pass the
+ // rectangle coming from the OnFunctionCall)
+ // => FunctionId - the ID of the editing mode; this value
+ // will be passed to the OnFunctionCall
+ // => sInitialValue - the initial content of the edit box
+ //
+ // Description :
+ // It opens up a popup edit box in the Area rectangle with the
+ // sInitialContent. After editing it by the user the
+ // OnFunctionCall is called with the ID and with the new
+ // string value.
+ //-----------------------------------------------------------------
+
+
+ //---OpenPopupList-------------------------------------------------
+
+ void OpenPopupList ( RECT Area,
+ const char * sTitle,
+ int ColumnNumber ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Area - the requested position of the center
+ // (selected element) in the list
+ // => sTitle - the popup list title
+ // => ColumnNumber- the number of the columns in the list
+ // (currently it is limited to 1 and 2)
+ //
+ // Description :
+ // It starts opening a popup list. You must call the
+ // AddPopupListElement to fill the list with content. Without
+ // that it will not be displayed. The popup list is a global
+ // resource of EuroScope and there is only one list available.
+ //-----------------------------------------------------------------
+
+
+ //---AddPopupListElement-------------------------------------------
+
+ void AddPopupListElement ( const char * sString1,
+ const char * sString2,
+ int FunctionId,
+ bool Selected = false,
+ int Checked = POPUP_ELEMENT_NO_CHECKBOX,
+ bool Disabled = false,
+ bool Fixed = false ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sString1,
+ // sString2 - the strings to be displayed in the first
+ // and in the second column (in case of two
+ // columns); sString1 will be passed as
+ // string parameter to OnFunctionCall if the
+ // item is selected
+ // => FunctionId - the function ID to be passed to
+ // OnFunctionCall if the element is selected
+ // => Selected - indicates if the element is the actual
+ // value (pass true only once in a definition)
+ // => Checked - indicates if the item needs a check box in
+ // from or not; and if it has check box then
+ // checked or unchecked
+ // => Disabled - indicates if the element can not be selected
+ // => Fixed - fixed elements are the last ones; they
+ // appear in the bottom and are not scrolled
+ // with the rest; never add more than 3-4 fixed
+ // items
+ //
+ // Description :
+ // It adds a new popup element to the popup list.
+ //-----------------------------------------------------------------
+
+
+ //---GetConnectionType---------------------------------------------
+
+ int GetConnectionType ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // the actual connection type - on of CONNECTION_TYPE_...
+ //-----------------------------------------------------------------
+
+
+ //---SelectActiveSectorfile----------------------------------------
+
+ void SelectActiveSectorfile ( void ) ;
+ //-----------------------------------------------------------------
+ // Description :
+ // It selects the active sectorfile as the source for the
+ // subsequent SectorElementFirst and SectorElementNext calls.
+ //-----------------------------------------------------------------
+
+
+ //---SelectScreenSectorfile----------------------------------------
+
+ void SelectScreenSectorfile ( CRadarScreen * pRadarScreen ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => pRadarScreen - the screen reference
+ //
+ // Description :
+ // It selects the active sectorfile as the source for the
+ // subsequent SectorElementFirst and SectorElementNext calls.
+ //-----------------------------------------------------------------
+
+
+ //---SetASELAircraft-----------------------------------------------
+
+ void SetASELAircraft ( const CFlightPlan FlightPlan ) ;
+ void SetASELAircraft ( const CRadarTarget RadarTarget ) ;
+ //-----------------------------------------------------------------
+ // Parameter :
+ // => FlightPlan - the FP to be selected as ASEL
+ // => RadarTarget - the RT to be selected as ASEL
+ //
+ // Description :
+ // It sets the given FP/RT as ASEL.
+ //-----------------------------------------------------------------
+
+
+ //---FlightPlanSelect----------------------------------------------
+
+ CFlightPlan FlightPlanSelect ( const char * sCallsign ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sCallsign - the callsign of the FP to be selected
+ //
+ // Return :
+ // A flight plan object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the FP with the given callsign.
+ //-----------------------------------------------------------------
+
+
+ //---RadarTargetSelect---------------------------------------------
+
+ CRadarTarget RadarTargetSelect ( const char * sCallsign ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sCallsign - the callsign of the RT to be selected
+ // you can also enter system ID as callsign
+ //
+ // Return :
+ // A radar target object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the RT with the given callsign/system ID.
+ //-----------------------------------------------------------------
+
+
+ //---FlightPlanSelectFirst-----------------------------------------
+
+ CFlightPlan FlightPlanSelectFirst ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // An flight plan object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the first FP in the list.
+ //-----------------------------------------------------------------
+
+
+ //---RadarTargetSelectFirst----------------------------------------
+
+ CRadarTarget RadarTargetSelectFirst ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // An radar target object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the first RT in the list.
+ //-----------------------------------------------------------------
+
+
+ //---FlightPlanSelectNext------------------------------------------
+
+ CFlightPlan FlightPlanSelectNext ( CFlightPlan CurrentFlightPlan ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => CurrentFlightPlan - the actually selected FP element
+ //
+ // Return :
+ // A flight plan object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the next FP in the list.
+ //-----------------------------------------------------------------
+
+
+ //---RadarTargetSelectNext-----------------------------------------
+
+ CRadarTarget RadarTargetSelectNext ( CRadarTarget CurrentRadartarget ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => CurrentRadartarget - the actually selected RT element
+ //
+ // Return :
+ // A radar target object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the next RT in the list.
+ //-----------------------------------------------------------------
+
+
+ //---FlightPlanSelectASEL------------------------------------------
+
+ CFlightPlan FlightPlanSelectASEL ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A flight plan object instance. May be invalid.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the currently ASEL flight plan.
+ //-----------------------------------------------------------------
+
+
+ //---RadarTargetSelectASEL-----------------------------------------
+
+ CRadarTarget RadarTargetSelectASEL ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A radar target object instance. May be invalid.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the currently ASEL radar target.
+ //-----------------------------------------------------------------
+
+
+ //---ControllerSelect----------------------------------------------
+
+ CController ControllerSelect ( const char * sCallsign ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sCallsign - the callsign of the controller to be selected
+ //
+ // Return :
+ // A controller object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the controller with the given callsign.
+ //-----------------------------------------------------------------
+
+
+ //---ControllerSelectByPositionId----------------------------------
+
+ CController ControllerSelectByPositionId ( const char * sPositionId ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sPositionId - the position ID of the controller to be selected
+ //
+ // Return :
+ // A controller object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the controller with the given position ID.
+ //-----------------------------------------------------------------
+
+
+ //---ControllerMyself----------------------------------------------
+
+ CController ControllerMyself ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A controller object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the controller that was logged in in this session.
+ //-----------------------------------------------------------------
+
+
+ //---ControllerSelectFirst-----------------------------------------
+
+ CController ControllerSelectFirst ( void ) const ;
+ //-----------------------------------------------------------------
+ // Return :
+ // A controller object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the first controller in the list.
+ //-----------------------------------------------------------------
+
+
+ //---ControllerSelectNext------------------------------------------
+
+ CController ControllerSelectNext ( CController CurrentController ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => CurrentController - the actually selected controller element
+ //
+ // Return :
+ // A controller object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the next controller in the list.
+ //-----------------------------------------------------------------
+
+
+ //---SectorFileElementSelectFirst----------------------------------
+
+ CSectorElement SectorFileElementSelectFirst ( int ElementType ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => ElementType - the type of the elements to be searched
+ // for; pass SECTOR_ELEMENT_ALL to search
+ // for all element type
+ //
+ // Return :
+ // A sector file element object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the first element (of the given type) from the
+ // previously selected sectorfile.
+ //-----------------------------------------------------------------
+
+
+ //---SectorFileElementSelectNext-----------------------------------
+
+ CSectorElement SectorFileElementSelectNext ( CSectorElement CurrentElement,
+ int ElementType ) const ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => CurrentElement - the actually selected sectorfile element
+ // => ElementType - the type of the elements to be searched
+ // for; pass SECTOR_ELEMENT_ALL to search
+ // for all element type
+ //
+ // Return :
+ // A sectrofile element object instance.
+ //
+ // Remark:
+ // This instance is only valid inside the block you are querying.
+ // Do not save it to a static place or into a member variables.
+ // Subsequent use of an invalid extracted route reference may
+ // cause ES to crash.
+ //
+ // Description :
+ // It selects the next element (of the given type) from the
+ // previously selected sectorfile.
+ //-----------------------------------------------------------------
+
+
+ //---DisplayUserMessage--------------------------------------------
+
+ void DisplayUserMessage ( const char * sHandlerName,
+ const char * sSenderName,
+ const char * sMessage,
+ bool ShowHandler,
+ bool ShowUnread,
+ bool ShowUnreadEvenIfBusy,
+ bool StartFlashing,
+ bool NeedConfirmation ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sHandlerName - the message handler name; this name
+ // above the chat area (the callsign in
+ // case of private chat, ATC, Broadcast,
+ // etc.); use your plug-in name here
+ // => sSenderName - the name of the sender; if empty the
+ // message will be displayed if the user
+ // were sending it
+ // => sMessage - the message itself
+ // => ShowHandler - should the handler be displayed (if hidden)
+ // => ShowUnread - should the handler be colored with
+ // unread message color if not selected
+ // => ShowUnreadEvenIfBusy - as above even if busy flag is set
+ // => StartFlashing - should the handler be flashing
+ // => NeedConfirmation- does this message need a confirmation
+ //
+ // Description :
+ // This function writes a message to the user to the standard
+ // chat area.
+ //-----------------------------------------------------------------
+
+
+ //---GroundToArChannelSelectFirst----------------------------------
+
+ CGrountToAirChannel GroundToArChannelSelectFirst ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The first channel defined in the Voice Communication Setup
+ // (not necessarily the first in the dialog). The return value
+ // is temporary. Do not save it for further use.
+ //-----------------------------------------------------------------
+
+
+ //---GroundToArChannelSelectNext-----------------------------------
+
+ CGrountToAirChannel GroundToArChannelSelectNext ( CGrountToAirChannel CurrentChannel ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => CurrentChannel - the current channel
+ //
+ // Return :
+ // The next channel defined in the Voice Communication Setup
+ // (not necessarily the next in the dialog). The return value
+ // is temporary. Do not save it for further use.
+ //-----------------------------------------------------------------
+
+
+ //---AddAlias------------------------------------------------------
+
+ void AddAlias ( const char * sAliasName,
+ const char * sAliasValue ) ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => sAliasName - the alias name (must begin with .)
+ // => sAliasValue - the value to be used
+ //
+ // Description :
+ // It adds a new alias to the alias interpreter.
+ //-----------------------------------------------------------------
+
+
+ //---OnVoiceTransmitStarted----------------------------------------
+
+ inline virtual void OnVoiceTransmitStarted ( bool OnPrimary )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => OnPrimary - indicates if the transmit started on the
+ // primary voice channel
+ //
+ // Description :
+ // This function is called on a voice transmit start.
+ // Warning: This function is called from a seperated thread,
+ // write a thread-safe handler.
+ //-----------------------------------------------------------------
+
+
+ //---OnVoiceTransmitEnded------------------------------------------
+
+ inline virtual void OnVoiceTransmitEnded ( bool OnPrimary )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // => OnPrimary - indicates if the transmit ended on the
+ // primary voice channel
+ //
+ // Description :
+ // This function is called on a voice transmit end.
+ // Warning: This function is called from a seperated thread,
+ // write a thread-safe handler.
+ //-----------------------------------------------------------------
+
+
+ //---OnVoiceReceiveStarted-----------------------------------------
+
+ inline virtual void OnVoiceReceiveStarted ( CGrountToAirChannel Channel )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Channel - the channel that receives some voice
+ //
+ // Description :
+ // This function is called on a voice receive start.
+ //-----------------------------------------------------------------
+
+
+ //---OnVoiceReceiveEnded-------------------------------------------
+
+ inline virtual void OnVoiceReceiveEnded ( CGrountToAirChannel Channel )
+ {
+ } ;
+ //-----------------------------------------------------------------
+ // Parameters :
+ // => Channel - the channel that received some voice
+ //
+ // Description :
+ // This function is called on a voice receive start.
+ //-----------------------------------------------------------------
+
+
+ //---GetTransitionAltitude-----------------------------------------
+
+ int GetTransitionAltitude ( void ) ;
+ //-----------------------------------------------------------------
+ // Return :
+ // The transition altitude of the system.
+ //-----------------------------------------------------------------
+
+} ;
+
+} // end of EuroScopePlugIn namespace
+
+
+//---EuroScopePlugInInit-----------------------------------------------
+
+void __declspec ( dllexport ) EuroScopePlugInInit ( EuroScopePlugIn :: CPlugIn ** ppPlugInInstance ) ;
+//---------------------------------------------------------------------
+// Parameters :
+// <= ppPlugInInstance- a pointer to the plug-in instance
+//
+// Description :
+// Every plugin have to implement this function. When EuroScope
+// loads the DLL, it searches for this function and calls it. Do
+// all initialization code (including the plugin class instance
+// creation) in this function. Only one plug-in instance is
+// supported by in one DLL
+// Before returning you MUST call the SetPlugInName function.
+// If this call is missing or any parameter is empty your DLL will
+// be unloaded immediately.
+//---------------------------------------------------------------------
+
+
+//---EuroScopePlugInExit-----------------------------------------------
+
+void __declspec ( dllexport ) EuroScopePlugInExit ( void ) ;
+//---------------------------------------------------------------------
+// Description :
+// Every plugin have to implement this function. When EuroScope
+// unloads the DLL (for user request or due exiting) it will call
+// this function. Be sure to clean up all members, especialy
+// delete all plugin class instances.
+//---------------------------------------------------------------------
+
+
diff --git a/lib/EuroScopePlugInDll.lib b/lib/EuroScopePlugInDll.lib
new file mode 100644
index 0000000..d06c98c
Binary files /dev/null and b/lib/EuroScopePlugInDll.lib differ