1 // fgfx.hxx -- Sound effect management class
3 // Started by David Megginson, October 2001
4 // (Reuses some code from main.cxx, probably by Curtis Olson)
6 // Copyright (C) 2001 Curtis L. Olson - curt@flightgear.org
8 // This program is free software; you can redistribute it and/or
9 // modify it under the terms of the GNU General Public License as
10 // published by the Free Software Foundation; either version 2 of the
11 // License, or (at your option) any later version.
13 // This program is distributed in the hope that it will be useful, but
14 // WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // General Public License for more details.
18 // You should have received a copy of the GNU General Public License
19 // along with this program; if not, write to the Free Software
20 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
31 #include <simgear/compiler.h>
32 #include <Main/fgfs.hxx>
33 #include <Main/globals.hxx>
35 #include "soundmgr.hxx"
39 * Generator for FlightGear sound effects.
41 * This module uses FGSoundMgr to generate sound effects based
42 * on current flight conditions. The sound manager must be initialized
43 * before this object is.
45 class FGFX : public FGSubsystem
55 virtual void unbind ();
56 virtual void update ();
60 void set_playing (const char * soundName, bool state = true);
62 static const int MAX_GEAR = 20;
64 double _old_flap_position;
66 bool _gear_on_ground[MAX_GEAR];
69 FGSimpleSound * _engine;
70 FGSimpleSound * _crank;
71 FGSimpleSound * _wind;
72 FGSimpleSound * _stall;
73 FGSimpleSound * _rumble;
76 FGSimpleSound * _flaps;
77 FGSimpleSound * _squeal;
78 FGSimpleSound * _click;
80 // Cached property nodes.
81 const SGPropertyNode * _engine_running_prop;
82 const SGPropertyNode * _engine_cranking_prop;
83 const SGPropertyNode * _stall_warning_prop;
84 const SGPropertyNode * _flaps_prop;