]> git.mxchange.org Git - flightgear.git/blobdiff - src/Instrumentation/navradio.cxx
allow to trigger widgets via accelerator key, which is defined via "keynum"
[flightgear.git] / src / Instrumentation / navradio.cxx
index fe586b3e945f59193cbae98c6637a5696554769c..60347312467e224391e119953dcb9f65575ea379 100644 (file)
@@ -57,6 +57,8 @@ FGNavRadio::FGNavRadio(SGPropertyNode *node) :
     audio_btn(true),
     nav_freq(0.0),
     nav_alt_freq(0.0),
+    fmt_freq(""),
+    fmt_alt_freq(""),
     nav_heading(0.0),
     nav_radial(0.0),
     nav_target_radial(0.0),
@@ -69,7 +71,7 @@ FGNavRadio::FGNavRadio(SGPropertyNode *node) :
     last_x(0.0),
     name("nav"),
     num(0),
-    _time_before_search_sec(0.0)
+    _time_before_search_sec(-1.0)
 {
     SGPath path( globals->get_fg_root() );
     SGPath term = path;
@@ -161,6 +163,14 @@ FGNavRadio::bind ()
            &FGNavRadio::get_nav_alt_freq, &FGNavRadio::set_nav_alt_freq);
     fgSetArchivable( (branch + "/frequencies/standby-mhz").c_str() );
 
+    fgTie( (branch + "/frequencies/selected-mhz-fmt").c_str() , this,
+         &FGNavRadio::get_fmt_freq, &FGNavRadio::set_fmt_freq );
+    fgSetArchivable( (branch + "/frequencies/selected-mhz-fmt").c_str() );
+
+    fgTie( (branch + "/frequencies/standby-mhz-fmt").c_str() , this,
+           &FGNavRadio::get_fmt_alt_freq, &FGNavRadio::set_fmt_alt_freq);
+    fgSetArchivable( (branch + "/frequencies/standby-mhz-fmt").c_str() );
+
     fgTie( (branch + "/radials/selected-deg").c_str() , this,
            &FGNavRadio::get_nav_sel_radial, &FGNavRadio::set_nav_sel_radial );
     fgSetArchivable((branch + "/radials/selected-deg").c_str() );
@@ -344,6 +354,14 @@ FGNavRadio::update(double dt)
     Point3D station;
     double az1, az2, s;
 
+    // Create "formatted" versions of the nav frequencies for
+    // consistant display output.
+    char tmp[16];
+    sprintf( tmp, "%.2f", nav_freq );
+    fmt_freq = tmp;
+    sprintf( tmp, "%.2f", nav_alt_freq );
+    fmt_alt_freq = tmp;
+
     // On timeout, scan again
     _time_before_search_sec -= dt;
     if ( _time_before_search_sec < 0 ) {