Make adf volume and adf on/off seperate properties.
This commit is contained in:
parent
17efea3ec0
commit
430f030cbf
4 changed files with 31 additions and 17 deletions
|
@ -85,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),
|
||||
|
@ -152,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);
|
||||
|
@ -213,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");
|
||||
|
@ -254,7 +260,7 @@ void FGKR_87::update( double dt ) {
|
|||
// Radio
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
if ( on_off_vol_btn >= 0.05 ) {
|
||||
if ( power_btn ) {
|
||||
// buttons
|
||||
if ( adf_btn == 0 ) {
|
||||
ant_mode = 1;
|
||||
|
@ -450,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" );
|
||||
}
|
||||
|
|
|
@ -79,7 +79,8 @@ class FGKR_87 : public FGSubsystem
|
|||
|
||||
// input and buttons
|
||||
double rotation; // compass faceplace rotation
|
||||
double on_off_vol_btn;
|
||||
bool power_btn; // 0 = off, 1 = powered
|
||||
double vol_btn;
|
||||
bool adf_btn; // 0 = normal, 1 = depressed
|
||||
bool bfo_btn; // 0 = normal, 1 = depressed
|
||||
bool frq_btn; // 0 = normal, 1 = depressed
|
||||
|
@ -137,11 +138,15 @@ public:
|
|||
// input and buttons
|
||||
inline double get_rotation () const { return rotation; }
|
||||
inline void set_rotation( double rot ) { rotation = rot; }
|
||||
inline double get_on_off_vol_btn() const { return on_off_vol_btn; }
|
||||
inline void set_on_off_vol_btn( double val ) {
|
||||
inline bool get_power_btn() const { return power_btn; }
|
||||
inline void set_power_btn( bool val ) {
|
||||
power_btn = val;
|
||||
}
|
||||
inline double get_vol_btn() const { return vol_btn; }
|
||||
inline void set_vol_btn( double val ) {
|
||||
if ( val < 0.0 ) val = 0.0;
|
||||
if ( val > 1.0 ) val = 1.0;
|
||||
on_off_vol_btn = val;
|
||||
vol_btn = val;
|
||||
}
|
||||
inline bool get_adf_btn() const { return adf_btn; }
|
||||
inline void set_adf_btn( bool val ) { adf_btn = val; }
|
||||
|
|
|
@ -396,7 +396,8 @@ bool FGATC610x::open() {
|
|||
nav2_stby_freq
|
||||
= fgGetNode( "/radios/nav[1]/frequencies/standby-mhz", true );
|
||||
|
||||
adf_on_off_vol = fgGetNode( "/radios/kr-87/inputs/on-off-volume", true );
|
||||
adf_power = fgGetNode( "/radios/kr-87/inputs/power-btn", true );
|
||||
adf_vol = fgGetNode( "/radios/kr-87/inputs/volume", true );
|
||||
adf_adf_btn = fgGetNode( "/radios/kr-87/inputs/adf-btn", true );
|
||||
adf_bfo_btn = fgGetNode( "/radios/kr-87/inputs/bfo-btn", true );
|
||||
adf_freq = fgGetNode( "/radios/kr-87/outputs/selected-khz", true );
|
||||
|
@ -501,7 +502,7 @@ bool FGATC610x::do_analog_in() {
|
|||
|
||||
// adf volume
|
||||
tmp = (float)analog_in_data[26] / 1024.0f;
|
||||
fgSetFloat( "/radios/kr-87/inputs/on-off-volume", tmp );
|
||||
fgSetFloat( "/radios/kr-87/inputs/volume", tmp );
|
||||
|
||||
// nav2 obs tuner
|
||||
tmp = (float)analog_in_data[29] * 360.0f / 1024.0f;
|
||||
|
@ -898,6 +899,8 @@ bool FGATC610x::do_radio_switches() {
|
|||
!(radio_switch_data[23] >> 3 & 0x01) );
|
||||
fgSetInt( "/radios/kr-87/inputs/set-rst-btn",
|
||||
!(radio_switch_data[23] >> 4 & 0x01) );
|
||||
fgSetInt( "/radios/kr-87/inputs/power-btn",
|
||||
radio_switch_data[23] >> 4 & 0x01 );
|
||||
/* cout << "adf = " << !(radio_switch_data[23] & 0x01)
|
||||
<< " bfo = " << !(radio_switch_data[23] >> 1 & 0x01)
|
||||
<< " stby = " << !(radio_switch_data[23] >> 2 & 0x01)
|
||||
|
@ -1137,7 +1140,7 @@ bool FGATC610x::do_radio_display() {
|
|||
// turns on the decimal point
|
||||
|
||||
// ADF standby frequency / timer
|
||||
if ( adf_on_off_vol->getDoubleValue() >= 0.01 ) {
|
||||
if ( adf_vol->getDoubleValue() >= 0.01 ) {
|
||||
if ( adf_stby_mode->getIntValue() == 0 ) {
|
||||
// frequency
|
||||
float adf_stby = adf_stby_freq->getFloatValue();
|
||||
|
|
|
@ -77,7 +77,7 @@ class FGATC610x : public FGProtocol {
|
|||
SGPropertyNode *nav1_freq, *nav1_stby_freq;
|
||||
SGPropertyNode *nav2_freq, *nav2_stby_freq;
|
||||
SGPropertyNode *adf_adf_btn, *adf_bfo_btn;
|
||||
SGPropertyNode *adf_on_off_vol;
|
||||
SGPropertyNode *adf_power, *adf_vol;
|
||||
SGPropertyNode *adf_freq, *adf_stby_freq;
|
||||
SGPropertyNode *adf_stby_mode, *adf_timer_mode;
|
||||
SGPropertyNode *adf_count_mode, *adf_flight_timer, *adf_elapsed_timer;
|
||||
|
|
Loading…
Add table
Reference in a new issue