#include <simgear/math/sg_random.h>
#include <simgear/misc/sg_path.hxx>
-#include <Aircraft/aircraft.hxx>
#include <Navaids/navlist.hxx>
#include "marker_beacon.hxx"
+#include <Sound/beacon.hxx>
#include <string>
using std::string;
// Constructor
FGMarkerBeacon::FGMarkerBeacon(SGPropertyNode *node) :
audio_vol(NULL),
- need_update(true),
outer_blink(false),
middle_blink(false),
inner_blink(false),
_sgr = smgr->find("avionics", true);
_sgr->tie_to_listener();
- morse.init();
- beacon.init();
- blink.stamp();
+ reinit();
+}
+void
+FGMarkerBeacon::reinit ()
+{
+ blink.stamp();
outer_marker = middle_marker = inner_marker = false;
+ _time_before_search_sec = 0.0;
}
-
void
FGMarkerBeacon::bind ()
{
void
FGMarkerBeacon::update(double dt)
{
- need_update = false;
-
// On timeout, scan again, this needs to run every iteration no
// matter what the power or serviceable state. If power is turned
// off or the unit becomes unserviceable while a beacon sound is
// cout << "OUTER MARKER" << endl;
if ( last_beacon != OUTER ) {
if ( ! _sgr->exists( current_sound_name ) ) {
- SGSoundSample *sound = beacon.get_outer();
+ SGSoundSample *sound = FGBeacon::instance()->get_outer();
if ( sound ) {
_sgr->add( sound, current_sound_name );
}
// cout << "MIDDLE MARKER" << endl;
if ( last_beacon != MIDDLE ) {
if ( ! _sgr->exists( current_sound_name ) ) {
- SGSoundSample *sound = beacon.get_middle();
+ SGSoundSample *sound = FGBeacon::instance()->get_middle();
if ( sound ) {
_sgr->add( sound, current_sound_name );
}
// cout << "INNER MARKER" << endl;
if ( last_beacon != INNER ) {
if ( ! _sgr->exists( current_sound_name ) ) {
- SGSoundSample *sound = beacon.get_inner();
+ SGSoundSample *sound = FGBeacon::instance()->get_inner();
if ( sound ) {
_sgr->add( sound, current_sound_name );
}