X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FSound.cc;fp=src%2FMoof%2FSound.cc;h=4cb291300850dec5c29e38a1808c42a986287789;hp=d9a673c58d58698545904c23b05e7c15e093d9de;hb=ca0f7bdfba63140dca0bd20586d31980f3938eb2;hpb=660e768e64c2c30928c7f157d5ff34195a4347fa diff --git a/src/Moof/Sound.cc b/src/Moof/Sound.cc index d9a673c..4cb2913 100644 --- a/src/Moof/Sound.cc +++ b/src/Moof/Sound.cc @@ -524,13 +524,13 @@ bool Sound::isPlaying() const return impl_->isPlaying(); } -void Sound::setPosition(Vector3 position) +void Sound::setPosition(const Vector3& position) { float p[3] = {position[0], position[1], position[2]}; alSourcefv(impl_->source_, AL_POSITION, p); } -void Sound::setVelocity(Vector3 velocity) +void Sound::setVelocity(const Vector3& velocity) { float v[3] = {velocity[0], velocity[1], velocity[2]}; alSourcefv(impl_->source_, AL_VELOCITY, v); @@ -553,6 +553,31 @@ void Sound::setLooping(bool looping) } +void Sound::setListenerPosition(const Vector3& position) +{ + alListener3f(AL_POSITION, float(position[0]), float(position[1]), + float(position[2])); +} + +void Sound::setListenerVelocity(const Vector3& velocity) +{ + alListener3f(AL_VELOCITY, float(velocity[0]), float(velocity[1]), + float(velocity[2])); +} + +void Sound::setListenerOrientation(const Vector3& forward, const Vector3& up) +{ + float vec[6]; + vec[0] = float(forward[0]); + vec[1] = float(forward[1]); + vec[2] = float(forward[2]); + vec[3] = float(up[0]); + vec[4] = float(up[1]); + vec[5] = float(up[2]); + alListenerfv(AL_ORIENTATION, vec); +} + + std::string Sound::getPath(const std::string& name) { std::string path = Resource::getPath("sounds/" + name + ".ogg");