X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fobject%2Fambient_sound.h;h=433e60ece25f07de1983f7fbe247136a08261f2b;hb=ef57f7881d5b4e01729b1f1cced3e868a40fb237;hp=f6fd285088dc554735106bd6072f099a67de17d6;hpb=a21fb5079827ea71ff263a6ad3311b89976b445e;p=supertux.git diff --git a/src/object/ambient_sound.h b/src/object/ambient_sound.h index f6fd28508..433e60ece 100644 --- a/src/object/ambient_sound.h +++ b/src/object/ambient_sound.h @@ -24,9 +24,12 @@ * (distance_bias) to the source, then fading proportional to * inverse square distance * - * This is experimental and clicks a little. It is not possible to - * get the clicks out without sample-granular volume adjustment. - * + * - parameters for point source: + * x, y position + * distance_factor high = steep fallofff + * distance_bias high = big "100% disc" + * silence_distance defaults reasonably. + * * basti_ */ @@ -43,22 +46,25 @@ class AmbientSound : public GameObject { public: AmbientSound(const lisp::Lisp& lisp); - + ~AmbientSound(); protected: virtual void hit(Player& player); virtual void action(float time); virtual void draw(DrawingContext&); - virtual void startPlaying(); + virtual void start_playing(); + virtual void stop_playing(); private: Vector position; std::string sample; int playing; + int latency; float distance_factor; /// distance scaling float distance_bias; /// 100% volume disc radius float silence_distance; /// not implemented yet + float maximumvolume; /// maximum volume float targetvolume; /// how loud we want to be float currentvolume; /// how loud we are