X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FSound%2Ffg_fx.hxx;h=1f5336e359b1ecc67e8f51fc64a29d9eec9d9d1f;hb=cff6b2034de866df70a2b29feb3383ee8ccbbef6;hp=b24825fcfb8ec414cf76634361ab34f1644025d2;hpb=250bab50893b0e0929521aa48779dbc382319bb1;p=flightgear.git diff --git a/src/Sound/fg_fx.hxx b/src/Sound/fg_fx.hxx index b24825fcf..1f5336e35 100644 --- a/src/Sound/fg_fx.hxx +++ b/src/Sound/fg_fx.hxx @@ -1,9 +1,9 @@ -// fgfx.hxx -- Sound effect management class +// fg_fx.hxx -- Sound effect management class // // Started by David Megginson, October 2001 // (Reuses some code from main.cxx, probably by Curtis Olson) // -// Copyright (C) 2001 Curtis L. Olson - curt@flightgear.org +// Copyright (C) 2001 Curtis L. Olson - http://www.flightgear.org/~curt // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License as @@ -17,64 +17,62 @@ // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // // $Id$ #ifndef __FGFX_HXX #define __FGFX_HXX 1 -#ifdef HAVE_CONFIG_H -# include -#endif - #include -#include
-#include
-#include "soundmgr.hxx" +#include + +#include +#include +#include +class SGXmlSound; /** * Generator for FlightGear sound effects. * - * This module uses FGSoundMgr to generate sound effects based - * on current flight conditions. The sound manager must be initialized + * This module uses a FGSampleGroup class to generate sound effects based + * on current flight conditions. The sound manager must be initialized * before this object is. + * + * This module will load and play a set of sound effects defined in an + * xml file and tie them to various property states. */ -class FGFX : public FGSubsystem +class FGFX : public SGSampleGroup { public: - FGFX (); - virtual ~FGFX (); + FGFX ( const std::string &refname, SGPropertyNode *props = 0 ); + virtual ~FGFX (); - virtual void init (); - virtual void bind (); - virtual void unbind (); - virtual void update (); + virtual void init (); + virtual void reinit (); + virtual void update (double dt); + void unbind(); private: - bool _is_cranking; - bool _is_stalling; - bool _is_rumbling; - - // looped sounds - FGSimpleSound * _engine; - FGSimpleSound * _crank; - FGSimpleSound * _wind; - FGSimpleSound * _stall; - FGSimpleSound * _rumble; - - // one-off sounds - FGSimpleSound * _flaps; - FGSimpleSound * _squeal; - FGSimpleSound * _click; + bool _is_aimodel; + SGSharedPtr _avionics; + std::vector _sound; + + SGPropertyNode_ptr _props; + SGPropertyNode_ptr _enabled; + SGPropertyNode_ptr _volume; + SGPropertyNode_ptr _avionics_enabled; + SGPropertyNode_ptr _avionics_volume; + SGPropertyNode_ptr _avionics_ext; + SGPropertyNode_ptr _internal; }; #endif -// end of fgfx.hxx +// end of fg_fx.hxx