X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fsoundscape.cpp;h=cc07285bfdded63e99909852f259764847a103ef;hb=HEAD;hp=d36b3bf7c1648c236fa3fde5c0890a9e707b0268;hpb=58dc1e7c15f928d0f861a20c46f2be4112bf5baf;p=libs%2Fal.git diff --git a/source/soundscape.cpp b/source/soundscape.cpp index d36b3bf..cc07285 100644 --- a/source/soundscape.cpp +++ b/source/soundscape.cpp @@ -1,10 +1,3 @@ -/* $Id$ - -This file is part of libmspal -Copyright © 2008 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #include "source.h" #include "soundscape.h" @@ -13,12 +6,23 @@ using namespace std; namespace Msp { namespace AL { +SoundScape::SoundScape(): + gain(1) +{ } + SoundScape::~SoundScape() { for(list::iterator i=sources.begin(); i!=sources.end(); ++i) delete *i; } +void SoundScape::set_gain(float g) +{ + gain = g; + for(list::iterator i=sources.begin(); i!=sources.end(); ++i) + (*i)->set_gain(gain); +} + void SoundScape::add_source(Source &src) { sources.push_back(&src); @@ -26,10 +30,11 @@ void SoundScape::add_source(Source &src) Source &SoundScape::play(const Buffer &buf, float x, float y, float z) { - Source *src=new Source; + Source *src = new Source; add_source(*src); src->set_buffer(buf); src->set_position(x, y, z); + src->set_gain(gain); src->play(); return *src; } @@ -41,7 +46,7 @@ void SoundScape::tick() if((*i)->get_state()==STOPPED) { delete *i; - i=sources.erase(i); + i = sources.erase(i); } else ++i;