X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FInstrumentation%2Fdme.hxx;h=83078c70a7135e208936d72676e4d1e5cca06d03;hb=de959a14f35ee4e74d405b418bb09689967ee22f;hp=266c5f6f7db6eb661fd02d12f1358cc61cd83271;hpb=1f7e33b73d1c550547ddedb896496f4668b58a0b;p=flightgear.git diff --git a/src/Instrumentation/dme.hxx b/src/Instrumentation/dme.hxx index 266c5f6f7..83078c70a 100644 --- a/src/Instrumentation/dme.hxx +++ b/src/Instrumentation/dme.hxx @@ -7,14 +7,11 @@ #ifndef __INSTRUMENTS_DME_HXX #define __INSTRUMENTS_DME_HXX 1 -#ifndef __cplusplus -# error This library requires C++ -#endif - -#include -#include -#include
+#include +#include +// forward decls +class FGNavRecord; /** * Model a DME radio. @@ -25,36 +22,31 @@ * /position/latitude-deg * /position/altitude-ft * /systems/electrical/outputs/dme - * /instrumentation/dme/serviceable - * /instrumentation/dme/frequencies/source - * /instrumentation/dme/frequencies/selected-mhz + * /instrumentation/"name"/serviceable + * /instrumentation/"name"/frequencies/source + * /instrumentation/"name"/frequencies/selected-mhz * * Output properties: * - * /instrumentation/dme/in-range - * /instrumentation/dme/indicated-distance-nm - * /instrumentation/dme/indicated-ground-speed-kt - * /instrumentation/dme/indicated-time-kt + * /instrumentation/"name"/in-range + * /instrumentation/"name"/indicated-distance-nm + * /instrumentation/"name"/indicated-ground-speed-kt + * /instrumentation/"name"/indicated-time-kt */ -class DME : public FGSubsystem +class DME : public SGSubsystem { public: - DME (); + DME ( SGPropertyNode *node ); virtual ~DME (); virtual void init (); + virtual void reinit (); virtual void update (double delta_time_sec); private: - void search (double frequency, double longitude_rad, - double latitude_rad, double altitude_m); - - SGPropertyNode_ptr _longitude_node; - SGPropertyNode_ptr _latitude_node; - SGPropertyNode_ptr _altitude_node; SGPropertyNode_ptr _serviceable_node; SGPropertyNode_ptr _electrical_node; SGPropertyNode_ptr _source_node; @@ -64,16 +56,24 @@ private: SGPropertyNode_ptr _distance_node; SGPropertyNode_ptr _speed_node; SGPropertyNode_ptr _time_node; + SGPropertyNode_ptr _ident_btn_node; + SGPropertyNode_ptr _volume_node; + + SGPropertyNode_ptr _distance_string; + SGPropertyNode_ptr _speed_string; + SGPropertyNode_ptr _time_string; double _last_distance_nm; double _last_frequency_mhz; double _time_before_search_sec; - bool _transmitter_valid; - Point3D _transmitter; - double _transmitter_elevation_ft; - double _transmitter_range_nm; + FGNavRecord * _navrecord; + + std::string _name; + + int _num; + class AudioIdent * _audioIdent; };