![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 * Copyright (c) 2012 MAK Technologies, Inc. 00003 * All rights reserved. 00004 ******************************************************************************/ 00005 00009 00010 #pragma once 00011 00012 #include <vrvCore/vrvCore.h> 00013 00014 #include <vrvCore/DtSharedSettings.h> 00015 00016 #include <vrvCore/DtRecordSettingsBackup.h> 00017 00018 #include <makArchives/DtRadioCommunicationsSettingsRecord.h> 00019 00020 #include <boost/unordered_map.hpp> 00021 00022 #include <vrvUtil/event_signal.h> 00023 00024 #include <vector> 00025 00026 namespace makVrv 00027 { 00028 00029 class DtSharedRadioCommunicationsSettings; 00030 00031 typedef DtSharedRecordSettingsBackup<DtSharedRadioCommunicationsSettings, 00032 makArchives::DtRadioCommunicationsSettingsRecord> DtRadioCommunicationsSettingsBackup; 00033 00036 class DT_DLL_VRVCORE DtSharedRadioCommunicationsSettings : public DtSharedSettings 00037 { 00038 protected: 00039 00041 typedef makArchives::DtRadioCommunicationsSettingsRecord::CommLineMode 00042 CommLineMode; 00043 00045 typedef makArchives::DtRadioCommunicationsSettingsRecord::DefaultColoringMode 00046 DefaultColoringMode; 00047 00048 public: 00049 00051 virtual ~DtSharedRadioCommunicationsSettings(); 00052 00055 00058 00061 virtual float commLineLifetime() const; 00062 virtual void setCommLineLifetime( float lifetime ); 00064 00067 virtual float squawkIndicatorLifetime() const; 00068 virtual void setSquawkIndicatorLifetime( float lifetime ); 00070 00073 virtual float commLineAnimationRate() const; 00074 virtual void setCommLineAnimationRate( float rate ); 00076 00079 virtual float squawkIndicatorAnimationRate() const; 00080 virtual void setSquawkIndicatorAnimationRate( float rate ); 00082 00085 virtual bool displayCommLines() const; 00086 virtual void setDisplayCommLines( bool show ); 00088 00091 virtual bool displaySquawkIndicators() const; 00092 virtual void setDisplaySquawkIndicators( bool show ); 00094 00097 virtual bool displayRadioCommunications() const; 00098 virtual void setDisplayRadioCommunications( bool show ); 00100 00103 virtual CommLineMode commLineRenderMode() const; 00104 virtual void setCommLineRenderMode( CommLineMode mode ); 00106 00109 virtual double greatCircleExaggerationAmount() const; 00110 virtual void setGreatCircleExaggerationAmount( double amount ); 00112 00115 virtual DefaultColoringMode defaultColoringMode() const; 00116 virtual void setDefaultColoringMode( DefaultColoringMode mode ); 00118 00120 00123 00125 virtual bool showDefaultFrequency() const; 00126 virtual void setShowDefaultFrequency( bool show ); 00127 00129 virtual void getDefaultFrequencyColor( float& r, float& g, float& b ) const; 00130 virtual void setDefaultFrequencyColor( float r, float g, float b ); 00131 00133 00136 00138 virtual void getFrequencyRange( int rangeIndex, float& lowFreq, float& highFreq ) const; 00139 virtual int addFrequencyRange( float lowFreq, float highFreq ); 00140 00142 virtual void getFrequencyRangeColor( int rangeIndex, float& r, float& g, float& b ) const; 00143 virtual void setFrequencyRangeColor( int rangeIndex, float r, float g, float b ); 00144 00146 virtual bool showFrequencyRangeFrequency( int rangeIndex ) const; 00147 virtual void setShowFrequencyRangeFrequency( int rangeIndex, bool show ); 00148 00150 virtual int numFrequencyRanges() const; 00151 00153 virtual void clearFrequencyRanges(); 00154 00156 00158 00161 00163 void setFromRecord( const makArchives::DtRadioCommunicationsSettingsRecord& rec ); 00164 00166 void getRecord( makArchives::DtRadioCommunicationsSettingsRecord& rec ) const; 00167 00169 virtual const DtRadioCommunicationsSettingsBackup* settingsBackup() const; 00170 00172 virtual DtRadioCommunicationsSettingsBackup* settingsBackup(); 00173 00175 virtual void backup(); 00176 00178 00180 static std::string className(); 00181 00182 protected: 00183 00185 friend class DtReadSettingsLock<DtSharedRadioCommunicationsSettings>; 00187 friend class DtWriteSettingsLock<DtSharedRadioCommunicationsSettings>; 00188 00190 DtSharedRadioCommunicationsSettings( DtSharedSettingsManager& manager ); 00191 00192 protected: 00193 00197 struct FrequencyRangeAttributes 00198 { 00199 00200 FrequencyRangeAttributes() 00201 : myHighFrequency( -1 ) 00202 , myLowFrequency( -1 ) 00203 , myShowFrequencyFlag( true ) 00204 { 00205 // Default myColor: magenta 00206 myColor[0] = myColor[2] = 1.0; 00207 myColor[1] = 0.0; 00208 } 00209 00210 float myHighFrequency; 00211 float myLowFrequency; 00212 bool myShowFrequencyFlag; 00213 float myColor[3]; 00214 00215 }; 00216 00217 protected: 00218 00220 typedef std::vector<FrequencyRangeAttributes> FrequencyRangeAttributesList; 00221 00222 FrequencyRangeAttributesList myFrequencyRangeAttributes; 00223 00224 float myDefaultFrequencyRangeColor[3]; 00225 bool myShowDefaultFrequencyFlag; 00226 00227 float myCommLineLifetime; 00228 float mySquawkIndicatorLifetime; 00229 00230 float myCommLineAnimationRate; 00231 float mySquawkIndicatorAnimationRate; 00232 00233 bool myDisplayCommLinesFlag; 00234 bool myDisplaySquawkIndicatorsFlag; 00235 bool myDisplayRadioCommunicationsFlag; 00236 CommLineMode myCommunicationLineRenderMode; 00237 float myGreatCircleExaggerationAmount; 00238 DefaultColoringMode myDefaultColoringMode; 00239 00240 DtRadioCommunicationsSettingsBackup* mySettingsBackup; 00241 00242 }; 00243 00244 }