class OnExitHandler {
public:
virtual void onExit() = 0;
+ virtual ~OnExitHandler() {}
};
class OnExit {
_PO_trackDistance_m( rootNode->getNode("track-distance-m",true) ),
_PO_heightAboveStation_ft( rootNode->getNode("height-above-station-ft",true) )
{}
+ virtual ~OutputProperties() {}
protected:
SGPropertyNode_ptr _rootNode;
_num( node->getIntValue("number",0)),
_metarBridge( new MetarBridge() ),
_useFrequencyFormatter( _rootNode->getNode("frequencies/selected-mhz",true),
- _rootNode->getNode("frequencies/selected-mhz-fmt",true), 0.025 ),
+ _rootNode->getNode("frequencies/selected-mhz-fmt",true), 0.025, 118.0, 136.0 ),
_stbyFrequencyFormatter( _rootNode->getNode("frequencies/standby-mhz",true),
- _rootNode->getNode("frequencies/standby-mhz-fmt",true), 0.025 ),
+ _rootNode->getNode("frequencies/standby-mhz-fmt",true), 0.025, 118.0, 136.0 ),
_signalQualityComputer( new SimpleDistanceSquareSignalQualityComputer(10*SG_NM_TO_METER) ),
_stationTTL(0.0),
class FrequencyFormatter : public SGPropertyChangeListener {
public:
- FrequencyFormatter( SGPropertyNode_ptr freqNode, SGPropertyNode_ptr fmtFreqNode, double channelSpacing ) :
+ FrequencyFormatter( SGPropertyNode_ptr freqNode, SGPropertyNode_ptr fmtFreqNode, double channelSpacing, double min, double max ) :
_freqNode( freqNode ),
_fmtFreqNode( fmtFreqNode ),
- _channelSpacing(channelSpacing)
+ _channelSpacing(channelSpacing),
+ _min(min),
+ _max(max)
{
_freqNode->addChangeListener( this );
valueChanged(_freqNode);
{
double d = SGMiscd::roundToInt(_freqNode->getDoubleValue() / _channelSpacing) * _channelSpacing;
// strip last digit, do not round
- return ((int)(d*100))/100.0;
+ double f = ((int)(d*100))/100.0;
+ if( f < _min ) return _min;
+ if( f >= _max ) return _max;
+ return f;
}
private:
SGPropertyNode_ptr _freqNode;
SGPropertyNode_ptr _fmtFreqNode;
double _channelSpacing;
+ double _min;
+ double _max;
};
_name(node->getStringValue("name", "nav")),
_num(node->getIntValue("number", 0)),
_rootNode(fgGetNode( std::string("/instrumentation/") + _name, _num, true)),
- _useFrequencyFormatter( _rootNode->getNode("frequencies/selected-mhz",true), _rootNode->getNode("frequencies/selected-mhz-fmt",true), 0.05 ),
- _stbyFrequencyFormatter( _rootNode->getNode("frequencies/standby-mhz",true), _rootNode->getNode("frequencies/standby-mhz-fmt",true), 0.05 ),
+ _useFrequencyFormatter( _rootNode->getNode("frequencies/selected-mhz",true), _rootNode->getNode("frequencies/selected-mhz-fmt",true), 0.05, 108.0, 118.0 ),
+ _stbyFrequencyFormatter( _rootNode->getNode("frequencies/standby-mhz",true), _rootNode->getNode("frequencies/standby-mhz-fmt",true), 0.05, 108.0, 118.0 ),
_navIndicator(_rootNode),
_stationTTL(0.0),
_frequency(-1.0),