X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FSound%2Ffg_sound.hxx;h=8774562b24347a594d23e97ff930e3b7c3a78867;hb=5a849b66e855a643c600ad4cfcce1f82e0fcdeb3;hp=37b2d21241c84c77e1bcf0c8917f22c1489901fb;hpb=60e0204fe8c7d140fe529e887d2888453afe9d2a;p=flightgear.git diff --git a/src/Sound/fg_sound.hxx b/src/Sound/fg_sound.hxx index 37b2d2124..8774562b2 100644 --- a/src/Sound/fg_sound.hxx +++ b/src/Sound/fg_sound.hxx @@ -34,32 +34,32 @@ #include "soundmgr.hxx" /** - * Class for handling one sound. + * Class for handling one sound event. * */ -class FGSound : public FGSubsystem +class FGSound { public: - FGSound(const SGPropertyNode *); + FGSound(); virtual ~FGSound(); - virtual void init (); + virtual void init (SGPropertyNode *); virtual void bind (); virtual void unbind (); - virtual void update (int dt); + virtual void update (double dt); protected: enum { MAXPROP=5 }; - enum { ONCE=0, LOOPED }; - enum { LEVEL=0, INVERTED, FLIPFLOP, RAISE, FALL }; + enum { ONCE=0, LOOPED, IN_TRANSIT }; + enum { LEVEL=0, INVERTED, FLIPFLOP }; // Sound properties typedef struct { - const SGPropertyNode * prop; + SGPropertyNode * prop; double (*fn)(double); double factor; double offset; @@ -68,30 +68,18 @@ protected: bool subtract; } _snd_prop; -#if 0 - // Sound source (distance, horizontal position in degrees and - // vertical position in degrees) - typedef struct { - float dist; - float hor; - float vert; - } _pos_prop; -#endif - private: - const SGPropertyNode * _node; - + FGSoundMgr * _mgr; FGSimpleSound * _sample; - const SGPropertyNode * _property; + FGCondition * _condition; - bool _active; + SGPropertyNode * _property; + double _prev_value; - int _mode; - int _type; + bool _active; string _name; - double _factor; - double _offset; + int _mode; vector<_snd_prop> _volume; vector<_snd_prop> _pitch;