]> git.tdb.fi Git - libs/al.git/commitdiff
Add gain to SoundScape
authorMikko Rasa <tdb@tdb.fi>
Sat, 18 Jan 2014 14:01:12 +0000 (16:01 +0200)
committerMikko Rasa <tdb@tdb.fi>
Sat, 18 Jan 2014 14:01:12 +0000 (16:01 +0200)
source/soundscape.cpp
source/soundscape.h

index e12f39befacded7c6fe2809100e012e5e91e77dc..cc07285bfdded63e99909852f259764847a103ef 100644 (file)
@@ -6,12 +6,23 @@ using namespace std;
 namespace Msp {
 namespace AL {
 
+SoundScape::SoundScape():
+       gain(1)
+{ }
+
 SoundScape::~SoundScape()
 {
        for(list<Source *>::iterator i=sources.begin(); i!=sources.end(); ++i)
                delete *i;
 }
 
+void SoundScape::set_gain(float g)
+{
+       gain = g;
+       for(list<Source *>::iterator i=sources.begin(); i!=sources.end(); ++i)
+               (*i)->set_gain(gain);
+}
+
 void SoundScape::add_source(Source &src)
 {
        sources.push_back(&src);
@@ -23,6 +34,7 @@ Source &SoundScape::play(const Buffer &buf, float x, float y, float z)
        add_source(*src);
        src->set_buffer(buf);
        src->set_position(x, y, z);
+       src->set_gain(gain);
        src->play();
        return *src;
 }
index 97685328c87fb9f1c804c11e66fd274443c35df8..a703c992a79fb030f6848909c6dc71dc83cd9619 100644 (file)
@@ -15,11 +15,14 @@ A SoundScape offers an easy way to play positional sound effects.
 class SoundScape
 {
 private:
+       float gain;
        std::list<Source *> sources;
 
 public:
+       SoundScape();
        ~SoundScape();
 
+       void set_gain(float);
        void add_source(Source &);
        Source &play(const Buffer &, float, float, float);
        void tick();