X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCockpit%2Fkr_87.cxx;h=2c65a3823e84f1fe8863e1150feea021dc4b533d;hb=430f030cbf8ca11a89a476f411464890bd08f951;hp=611f367c121c56f0b0495b14f69472b165ff0efb;hpb=ac61b8323e2660038800b56c587527dece911906;p=flightgear.git diff --git a/src/Cockpit/kr_87.cxx b/src/Cockpit/kr_87.cxx index 611f367c1..2c65a3823 100644 --- a/src/Cockpit/kr_87.cxx +++ b/src/Cockpit/kr_87.cxx @@ -76,6 +76,8 @@ FGKR_87::FGKR_87() : need_update(true), valid(false), inrange(false), + dist(0.0), + heading(0.0), goal_needle_deg(0.0), et_flash_time(0.0), ant_mode(0), @@ -83,7 +85,8 @@ FGKR_87::FGKR_87() : timer_mode(0), count_mode(0), rotation(0), - on_off_vol_btn(0.5), + power_btn(true), + vol_btn(0.5), adf_btn(true), bfo_btn(false), frq_btn(false), @@ -150,10 +153,14 @@ void FGKR_87::bind () { fgTie("/radios/kr-87/inputs/rotation-deg", this, &FGKR_87::get_rotation, &FGKR_87::set_rotation); fgSetArchivable("/radios/kr-87/inputs/rotation-deg"); - fgTie("/radios/kr-87/inputs/on-off-volume", this, - &FGKR_87::get_on_off_vol_btn, - &FGKR_87::set_on_off_vol_btn); - fgSetArchivable("/radios/kr-87/inputs/on-off-volume"); + fgTie("/radios/kr-87/inputs/power-btn", this, + &FGKR_87::get_power_btn, + &FGKR_87::set_power_btn); + fgSetArchivable("/radios/kr-87/inputs/power-btn"); + fgTie("/radios/kr-87/inputs/volume", this, + &FGKR_87::get_vol_btn, + &FGKR_87::set_vol_btn); + fgSetArchivable("/radios/kr-87/inputs/volume"); fgTie("/radios/kr-87/inputs/adf-btn", this, &FGKR_87::get_adf_btn, &FGKR_87::set_adf_btn); @@ -211,7 +218,8 @@ void FGKR_87::unbind () { // input and buttons fgUntie("/radios/kr-87/inputs/rotation-deg"); - fgUntie("/radios/kr-87/inputs/on-off-volume"); + fgUntie("/radios/kr-87/inputs/power-btn"); + fgUntie("/radios/kr-87/inputs/volume"); fgUntie("/radios/kr-87/inputs/adf-btn"); fgUntie("/radios/kr-87/inputs/bfo-btn"); fgUntie("/radios/kr-87/inputs/frq-btn"); @@ -252,7 +260,7 @@ void FGKR_87::update( double dt ) { // Radio //////////////////////////////////////////////////////////////////////// - if ( on_off_vol_btn >= 0.01 ) { + if ( power_btn ) { // buttons if ( adf_btn == 0 ) { ant_mode = 1; @@ -395,7 +403,39 @@ void FGKR_87::update( double dt ) { et_ann = false; } - + // formatted timer + double time; + int hours, min, sec; + if ( timer_mode == 0 ) { + time = flight_timer; + } else { + time = elapsed_timer; + } + // cout << time << endl; + hours = (int)(time / 3600.0); + time -= hours * 3600.00; + min = (int)(time / 60.0); + time -= min * 60.0; + sec = (int)time; + int big, little; + if ( hours > 0 ) { + big = hours; + if ( big > 99 ) { + big = 99; + } + little = min; + } else { + big = min; + little = sec; + } + if ( big > 99 ) { + big = 99; + } + char formatted_timer[128]; + // cout << big << ":" << little << endl; + snprintf(formatted_timer, 6, "%02d:%02d", big, little); + fgSetString( "/radios/kr-87/outputs/timer-string", formatted_timer ); + while ( goal_needle_deg < 0.0 ) { goal_needle_deg += 360.0; } while ( goal_needle_deg >= 360.0 ) { goal_needle_deg -= 360.0; } @@ -416,11 +456,11 @@ void FGKR_87::update( double dt ) { if ( valid && inrange ) { // play station ident via audio system if on + ident_btn, // otherwise turn it off - if ( on_off_vol_btn >= 0.01 && ident_btn ) { + if ( vol_btn >= 0.01 && ident_btn ) { FGSimpleSound *sound; sound = globals->get_soundmgr()->find( "adf-ident" ); if ( sound != NULL ) { - sound->set_volume( on_off_vol_btn ); + sound->set_volume( vol_btn ); } else { SG_LOG( SG_COCKPIT, SG_ALERT, "Can't find adf-ident sound" ); }