//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// $Id$
#include <simgear/compiler.h>
#include <simgear/structure/subsystem_mgr.hxx>
+#include <simgear/props/tiedpropertylist.hxx>
#include <simgear/timing/timestamp.hxx>
#include <Navaids/navlist.hxx>
-#include <Sound/morse.hxx>
+class SGSampleGroup;
class FGKR_87 : public SGSubsystem
{
- FGMorse morse;
-
- SGPropertyNode *lon_node;
- SGPropertyNode *lat_node;
- SGPropertyNode *alt_node;
- SGPropertyNode *bus_power;
- SGPropertyNode *serviceable;
+private:
+ SGPropertyNode_ptr bus_power;
+ SGPropertyNode_ptr serviceable;
bool need_update;
// internal values
- string ident;
- string trans_ident;
+ std::string ident;
+ std::string trans_ident;
bool valid;
bool inrange;
double stn_lon;
double effective_range;
double dist;
double heading;
- double x;
- double y;
- double z;
+ SGVec3d xyz;
double goal_needle_deg;
double et_flash_time;
// internal periodic station search timer
double _time_before_search_sec;
-public:
+ SGSharedPtr<SGSampleGroup> _sgr;
+ simgear::TiedPropertyList _tiedProperties;
+public:
FGKR_87( SGPropertyNode *node );
~FGKR_87();
void init ();
+ void reinit ();
void bind ();
void unbind ();
void update (double dt_sec);
void search ();
// internal values
- inline const string& get_ident() const { return ident; }
+ inline const std::string& get_ident() const { return ident; }
inline bool get_valid() const { return valid; }
inline bool get_inrange() const { return inrange; }
inline double get_stn_lon() const { return stn_lon; }