+void
+FGRadioStack::init ()
+{
+ search();
+ update();
+
+ // Search radio database once per second
+ global_events.Register( "fgRadioSearch()", fgRadioSearch,
+ fgEVENT::FG_EVENT_READY, 1000);
+}
+
+void
+FGRadioStack::bind ()
+{
+ // User inputs
+ fgTie("/radios/nav1/frequencies/selected", this,
+ &FGRadioStack::get_nav1_freq, &FGRadioStack::set_nav1_freq);
+ fgTie("/radios/nav1/frequencies/standby", this,
+ &FGRadioStack::get_nav1_alt_freq, &FGRadioStack::set_nav1_alt_freq);
+ fgTie("/radios/nav1/radials/selected", this,
+ &FGRadioStack::get_nav1_sel_radial,
+ &FGRadioStack::set_nav1_sel_radial);
+
+ // Radio outputs
+ fgTie("/radios/nav1/radials/actual", this, &FGRadioStack::get_nav1_radial);
+ fgTie("/radios/nav1/to-flag", this, &FGRadioStack::get_nav1_to_flag);
+ fgTie("/radios/nav1/from-flag", this, &FGRadioStack::get_nav1_from_flag);
+ fgTie("/radios/nav1/in-range", this, &FGRadioStack::get_nav1_inrange);
+ fgTie("/radios/nav1/dme/distance", this, &FGRadioStack::get_nav1_dme_dist);
+ fgTie("/radios/nav1/dme/in-range", this,
+ &FGRadioStack::get_nav1_dme_inrange);
+ fgTie("/radios/nav1/heading-needle-deflection", this,
+ &FGRadioStack::get_nav1_heading_needle_deflection);
+ fgTie("/radios/nav1/gs-needle-deflection", this,
+ &FGRadioStack::get_nav1_gs_needle_deflection);
+
+ // User inputs
+ fgTie("/radios/nav2/frequencies/selected", this,
+ &FGRadioStack::get_nav2_freq, &FGRadioStack::set_nav2_freq);
+ fgTie("/radios/nav2/frequencies/standby", this,
+ &FGRadioStack::get_nav2_alt_freq, &FGRadioStack::set_nav2_alt_freq);
+ fgTie("/radios/nav2/radials/selected", this,
+ &FGRadioStack::get_nav2_sel_radial,
+ &FGRadioStack::set_nav2_sel_radial);
+
+ // Radio outputs
+ fgTie("/radios/nav2/radials/actual", this, &FGRadioStack::get_nav2_radial);
+ fgTie("/radios/nav2/to-flag", this, &FGRadioStack::get_nav2_to_flag);
+ fgTie("/radios/nav2/from-flag", this, &FGRadioStack::get_nav2_from_flag);
+ fgTie("/radios/nav2/in-range", this, &FGRadioStack::get_nav2_inrange);
+ fgTie("/radios/nav2/dme/distance", this, &FGRadioStack::get_nav2_dme_dist);
+ fgTie("/radios/nav2/dme/in-range", this,
+ &FGRadioStack::get_nav2_dme_inrange);
+ fgTie("/radios/nav2/heading-needle-deflection", this,
+ &FGRadioStack::get_nav2_heading_needle_deflection);
+ fgTie("/radios/nav2/gs-needle-deflection", this,
+ &FGRadioStack::get_nav2_gs_needle_deflection);
+
+ // User inputs
+ fgTie("/radios/adf/frequencies/selected", this,
+ &FGRadioStack::get_adf_freq, &FGRadioStack::set_adf_freq);
+ fgTie("/radios/adf/frequencies/standby", this,
+ &FGRadioStack::get_adf_alt_freq, &FGRadioStack::set_adf_alt_freq);
+ fgTie("/radios/adf/rotation", this,
+ &FGRadioStack::get_adf_rotation, &FGRadioStack::set_adf_rotation);
+}
+
+void
+FGRadioStack::unbind ()
+{
+ fgUntie("/radios/nav1/frequencies/selected");
+ fgUntie("/radios/nav1/frequencies/standby");
+ fgUntie("/radios/nav1/radials/actual");
+ fgUntie("/radios/nav1/radials/selected");
+ fgUntie("/radios/nav1/to-flag");
+ fgUntie("/radios/nav1/from-flag");
+ fgUntie("/radios/nav1/in-range");
+ fgUntie("/radios/nav1/dme/distance");
+ fgUntie("/radios/nav1/dme/in-range");
+ fgUntie("/radios/nav1/heading-needle-deflection");
+ fgUntie("/radios/nav1/gs-needle-deflection");
+
+ fgUntie("/radios/nav2/frequencies/selected");
+ fgUntie("/radios/nav2/frequencies/standby");
+ fgUntie("/radios/nav2/radials/actual");
+ fgUntie("/radios/nav2/radials/selected");
+ fgUntie("/radios/nav2/to-flag");
+ fgUntie("/radios/nav2/from-flag");
+ fgUntie("/radios/nav2/in-range");
+ fgUntie("/radios/nav2/dme/distance");
+ fgUntie("/radios/nav2/dme/in-range");
+ fgUntie("/radios/nav2/heading-needle-deflection");
+ fgUntie("/radios/nav2/gs-needle-deflection");
+
+ fgUntie("/radios/adf/frequencies/selected");
+ fgUntie("/radios/adf/frequencies/standby");
+ fgUntie("/radios/adf/rotation");
+}
+