Skip to content

Commit

Permalink
libgui|Sound: Added more 3D audio properties
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Apr 4, 2014
1 parent e136d59 commit 725aeca
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
4 changes: 4 additions & 0 deletions doomsday/libgui/include/de/audio/sound.h
Expand Up @@ -85,6 +85,8 @@ class Sound
virtual Sound &setFrequency(dfloat factor);
virtual Sound &setPosition(de::Vector3f const &position, Positioning positioning = Absolute);
virtual Sound &setVelocity(de::Vector3f const &velocity);
virtual Sound &setMinDistance(dfloat minDistance);
virtual Sound &setSpatialSpread(dfloat degrees);

// Methods for querying the sound status:

Expand All @@ -98,6 +100,8 @@ class Sound
virtual Positioning positioning() const;
virtual de::Vector3f position() const;
virtual de::Vector3f velocity() const;
virtual dfloat minDistance() const;
virtual dfloat spatialSpread() const;

DENG2_AS_IS_METHODS()

Expand Down
28 changes: 28 additions & 0 deletions doomsday/libgui/src/audio/sound.cpp
Expand Up @@ -28,12 +28,16 @@ DENG2_PIMPL_NOREF(Sound)
Vector3f position;
Vector3f velocity;
Positioning positioning;
dfloat minDistance;
dfloat spread;

Instance()
: volume(1.f)
, pan(0.f)
, frequency(1.f)
, positioning(Stereo)
, minDistance(1.f)
, spread(0)
{}

DENG2_PIMPL_AUDIENCE(Stop)
Expand Down Expand Up @@ -82,6 +86,20 @@ Sound &Sound::setVelocity(Vector3f const &velocity)
return *this;
}

Sound &Sound::setMinDistance(dfloat minDistance)
{
d->minDistance = minDistance;
update();
return *this;
}

Sound &Sound::setSpatialSpread(dfloat degrees)
{
d->spread = degrees;
update();
return *this;
}

bool Sound::isPlaying() const
{
return mode() != NotPlaying;
Expand Down Expand Up @@ -117,4 +135,14 @@ Vector3f Sound::velocity() const
return d->velocity;
}

dfloat Sound::minDistance() const
{
return d->minDistance;
}

dfloat Sound::spatialSpread() const
{
return d->spread;
}

} // namespace de

0 comments on commit 725aeca

Please sign in to comment.