]> Dogcows Code - chaz/yoink/blobdiff - src/Moof/Sound.cc
settings subsystem now using lua
[chaz/yoink] / src / Moof / Sound.cc
index d9a673c58d58698545904c23b05e7c15e093d9de..4cb291300850dec5c29e38a1808c42a986287789 100644 (file)
@@ -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");
This page took 0.018687 seconds and 4 git commands to generate.