1
0
Fork 0

- added gear up and gear down sounds

- changed all sound file properties to end in /path for pathname, and
  added /sound and /pitch (with current values as defaults)
- don't activate the stall horn if CAS is less than 30kt (this needs
  to be refined somehow)
- declarations to support changes to cxx file
This commit is contained in:
curt 2001-12-03 22:48:49 +00:00
parent 5513830175
commit cec011503c
2 changed files with 71 additions and 14 deletions

View file

@ -40,14 +40,18 @@ static const char * crank_names[FGFX::MAX_ENGINES] = {
FGFX::FGFX () FGFX::FGFX ()
: _old_flap_position(0), : _old_flap_position(0),
_old_gear_position(0),
_wind(0), _wind(0),
_stall(0), _stall(0),
_rumble(0), _rumble(0),
_flaps(0), _flaps(0),
_gear_up(0),
_gear_dn(0),
_squeal(0), _squeal(0),
_click(0), _click(0),
_stall_warning_prop(0), _stall_warning_prop(0),
_flaps_prop(0) _flaps_prop(0),
_gear_prop(0)
{ {
for (int i = 0; i < MAX_ENGINES; i++) { for (int i = 0; i < MAX_ENGINES; i++) {
_engine[i] = 0; _engine[i] = 0;
@ -70,6 +74,8 @@ FGFX::~FGFX ()
delete _rumble; delete _rumble;
delete _flaps; delete _flaps;
delete _gear_up;
delete _gear_dn;
delete _squeal; delete _squeal;
delete _click; delete _click;
} }
@ -86,14 +92,17 @@ FGFX::init ()
for (int i = 0; i < MAX_ENGINES; i++) { for (int i = 0; i < MAX_ENGINES; i++) {
// Engine // Engine
_engine[i] = _engine[i] =
new FGSimpleSound(fgGetString("/sim/sounds/engine", "Sounds/wasp.wav")); new FGSimpleSound(fgGetString("/sim/sounds/engine/path",
"Sounds/wasp.wav"));
_engine[i]->set_volume(fgGetFloat("/sim/sounds/engine/volume", 1.0));
_engine[i]->set_pitch(fgGetFloat("/sim/sounds/engine/pitch", 1.0));
mgr->add(_engine[i], engine_names[i]); mgr->add(_engine[i], engine_names[i]);
// Starter // Starter
_crank[i] = new FGSimpleSound(fgGetString("/sim/sounds/cranking", _crank[i] = new FGSimpleSound(fgGetString("/sim/sounds/cranking/path",
"Sounds/cranking.wav")); "Sounds/cranking.wav"));
_crank[i]->set_pitch(1.25); _crank[i]->set_volume(fgGetFloat("/sim/sounds/cranking/volume", 0.175));
_crank[i]->set_volume(0.175); _crank[i]->set_pitch(fgGetFloat("/sim/sounds/cranking/pitch", 1.25));
mgr->add(_crank[i], crank_names[i]); mgr->add(_crank[i], crank_names[i]);
} }
@ -101,45 +110,70 @@ FGFX::init ()
// //
// Create and add the wind noise. // Create and add the wind noise.
// //
_wind = new FGSimpleSound(fgGetString("/sim/sounds/wind", _wind = new FGSimpleSound(fgGetString("/sim/sounds/wind/path",
"Sounds/wind.wav")); "Sounds/wind.wav"));
_wind->set_volume(fgGetFloat("/sim/sounds/wind/volume", 1.0));
_wind->set_pitch(fgGetFloat("/sim/sounds/wind/pitch", 1.0));
mgr->add(_wind, "wind"); mgr->add(_wind, "wind");
// //
// Create and add the stall noise. // Create and add the stall noise.
// //
_stall = new FGSimpleSound(fgGetString("/sim/sounds/stall", _stall = new FGSimpleSound(fgGetString("/sim/sounds/stall/path",
"Sounds/stall.wav")); "Sounds/stall.wav"));
_stall->set_volume(fgGetFloat("/sim/sounds/stall/volume", 1.0));
_stall->set_pitch(fgGetFloat("/sim/sounds/stall/pitch", 1.0));
mgr->add(_stall, "stall"); mgr->add(_stall, "stall");
// //
// Create and add the rumble noise. // Create and add the rumble noise.
// //
_rumble = new FGSimpleSound(fgGetString("/sim/sounds/rumble", _rumble = new FGSimpleSound(fgGetString("/sim/sounds/rumble/path",
"Sounds/rumble.wav")); "Sounds/rumble.wav"));
_rumble->set_volume(fgGetFloat("/sim/sounds/rumble/volume", 1.0));
_rumble->set_pitch(fgGetFloat("/sim/sounds/rumble/pitch", 1.0));
mgr->add(_rumble, "rumble"); mgr->add(_rumble, "rumble");
// //
// Create and add the flaps noise // Create and add the flaps noise
// //
_flaps = new FGSimpleSound(fgGetString("/sim/sounds/flaps", _flaps = new FGSimpleSound(fgGetString("/sim/sounds/flaps/path",
"Sounds/flaps.wav")); "Sounds/flaps.wav"));
_flaps->set_volume(0.50); _flaps->set_volume(fgGetFloat("/sim/sounds/flaps/volume", 0.5));
_flaps->set_pitch(fgGetFloat("/sim/sounds/flaps/pitch", 1.0));
mgr->add(_flaps, "flaps"); mgr->add(_flaps, "flaps");
//
// Create and add the gear noises.
//
_gear_up = new FGSimpleSound(fgGetString("/sim/sounds/gear-up/path",
"Sounds/gear-up.wav"));
_gear_dn = new FGSimpleSound(fgGetString("/sim/sounds/gear-down/path",
"Sounds/gear-dn.wav"));
_gear_up->set_volume(fgGetFloat("/sim/sounds/gear-up/volume", 1.0));
_gear_dn->set_volume(fgGetFloat("/sim/sounds/gear-down/volume", 1.0));
_gear_up->set_pitch(fgGetFloat("/sim/sounds/gear-up/pitch", 1.0));
_gear_dn->set_pitch(fgGetFloat("/sim/sounds/gear-down/pitch", 1.0));
mgr->add(_gear_up, "gear-up");
mgr->add(_gear_dn, "gear-down");
// //
// Create and add the squeal noise. // Create and add the squeal noise.
// //
_squeal = new FGSimpleSound(fgGetString("/sim/sounds/squeal", _squeal = new FGSimpleSound(fgGetString("/sim/sounds/squeal/path",
"Sounds/squeal.wav")); "Sounds/squeal.wav"));
_squeal->set_volume(fgGetFloat("/sim/sounds/squeal/volume", 1.0));
_squeal->set_pitch(fgGetFloat("/sim/sounds/squeal/pitch", 1.0));
mgr->add(_squeal, "squeal"); mgr->add(_squeal, "squeal");
// //
// Create and add the click noise. // Create and add the click noise.
_click = new FGSimpleSound(fgGetString("/sim/sounds/click", _click = new FGSimpleSound(fgGetString("/sim/sounds/click/path",
"Sounds/click.wav")); "Sounds/click.wav"));
_flaps->set_volume(fgGetFloat("/sim/sounds/click/volume", 1.0));
_flaps->set_pitch(fgGetFloat("/sim/sounds/click/pitch", 1.0));
mgr->add(_click, "click"); mgr->add(_click, "click");
@ -155,7 +189,9 @@ FGFX::init ()
_engine_cranking_prop[i] = fgGetNode(buf, true); _engine_cranking_prop[i] = fgGetNode(buf, true);
} }
_stall_warning_prop = fgGetNode("/sim/aircraft/alarms/stall-warning", true); _stall_warning_prop = fgGetNode("/sim/aircraft/alarms/stall-warning", true);
_vc_prop = fgGetNode("/velocities/airspeed-kt", true);
_flaps_prop = fgGetNode("/controls/flaps", true); _flaps_prop = fgGetNode("/controls/flaps", true);
_gear_prop = fgGetNode("/controls/gear-down", true);
} }
void void
@ -249,7 +285,8 @@ FGFX::update ()
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
double stall = _stall_warning_prop->getDoubleValue(); double stall = _stall_warning_prop->getDoubleValue();
if (stall > 0.0) { double vc = _vc_prop->getDoubleValue();
if (stall > 0.0 && vc > 30.0) {
_stall->set_volume(stall); _stall->set_volume(stall);
set_playing("stall", true); set_playing("stall", true);
} else { } else {
@ -306,7 +343,7 @@ FGFX::update ()
} }
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Check for flap movement. // Check for flap movement.
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
@ -316,6 +353,21 @@ FGFX::update ()
_old_flap_position = flap_position; _old_flap_position = flap_position;
} }
////////////////////////////////////////////////////////////////////
// Check for gear movement.
////////////////////////////////////////////////////////////////////
double gear_position = _gear_prop->getDoubleValue();
if (gear_position != _old_gear_position) {
if (gear_position < _old_gear_position) {
mgr->play_once("gear-up");
} else {
mgr->play_once("gear-down");
}
_old_gear_position = gear_position;
}
// TODO: click // TODO: click
} }

View file

@ -65,6 +65,7 @@ private:
void set_playing (const char * soundName, bool state = true); void set_playing (const char * soundName, bool state = true);
double _old_flap_position; double _old_flap_position;
double _old_gear_position;
bool _gear_on_ground[MAX_GEAR]; bool _gear_on_ground[MAX_GEAR];
@ -77,6 +78,8 @@ private:
// one-off sounds // one-off sounds
FGSimpleSound * _flaps; FGSimpleSound * _flaps;
FGSimpleSound * _gear_up;
FGSimpleSound * _gear_dn;
FGSimpleSound * _squeal; FGSimpleSound * _squeal;
FGSimpleSound * _click; FGSimpleSound * _click;
@ -84,7 +87,9 @@ private:
const SGPropertyNode * _engine_running_prop[MAX_ENGINES]; const SGPropertyNode * _engine_running_prop[MAX_ENGINES];
const SGPropertyNode * _engine_cranking_prop[MAX_ENGINES]; const SGPropertyNode * _engine_cranking_prop[MAX_ENGINES];
const SGPropertyNode * _stall_warning_prop; const SGPropertyNode * _stall_warning_prop;
const SGPropertyNode * _vc_prop;
const SGPropertyNode * _flaps_prop; const SGPropertyNode * _flaps_prop;
const SGPropertyNode * _gear_prop;
}; };