]> git.tdb.fi Git - libs/al.git/blobdiff - source/soundscape.cpp
Add gain to SoundScape
[libs/al.git] / source / soundscape.cpp
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;
 }