]> git.tdb.fi Git - libs/al.git/blobdiff - source/source.cpp
Make sound format support optional
[libs/al.git] / source / source.cpp
index ff04adfba0b51949d64ef369438a4aa63349194a..df3063ce50e909c156b5d2322745d7d40f4eb6d5 100644 (file)
@@ -1,10 +1,3 @@
-/* $Id$
-
-This file is part of libmspal
-Copyright © 2008 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #include "buffer.h"
 #include "source.h"
 
@@ -23,66 +16,41 @@ Source::~Source()
        alDeleteSources(1, &id);
 }
 
-void Source::attribute(ALenum attr, int v)
-{
-       alSourcei(id, attr, v);
-}
-
-void Source::attribute(ALenum attr, float v)
-{
-       alSourcef(id, attr, v);
-}
-
-void Source::attribute(ALenum attr, float v0, float v1, float v2)
-{
-       alSource3f(id, attr, v0, v1, v2);
-}
-
-void Source::attribute(ALenum attr, const float *v)
-{
-       alSourcefv(id, attr, v);
-}
-
-void Source::get_attribute(ALenum attr, int *v) const
-{
-       alGetSourcei(id, attr, v);
-}
-
-void Source::get_attribute(ALenum attr, float *v) const
-{
-       alGetSourcef(id, attr, v);
-}
-
 SourceState Source::get_state() const
 {
-       int state;
-       get_attribute(AL_SOURCE_STATE, &state);
+       int state = INITIAL;
+       alGetSourcei(id, AL_SOURCE_STATE, &state);
        return static_cast<SourceState>(state);
 }
 
 void Source::set_position(float x, float y, float z)
 {
-       attribute(AL_POSITION, x, y, z);
+       alSource3f(id, AL_POSITION, x, y, z);
+}
+
+void Source::set_velocity(float x, float y, float z)
+{
+       alSource3f(id, AL_VELOCITY, x, y, z);
 }
 
 void Source::set_looping(bool l)
 {
-       attribute(AL_LOOPING, l);
+       alSourcei(id, AL_LOOPING, l);
 }
 
 void Source::set_gain(float g)
 {
-       attribute(AL_GAIN, g);
+       alSourcef(id, AL_GAIN, g);
 }
 
 void Source::set_rolloff_factor(float f)
 {
-       attribute(AL_ROLLOFF_FACTOR, f);
+       alSourcef(id, AL_ROLLOFF_FACTOR, f);
 }
 
 void Source::set_buffer(const Buffer &buffer)
 {
-       attribute(AL_BUFFER, static_cast<int>(buffer.get_id()));
+       alSourcei(id, AL_BUFFER, buffer.get_id());
 }
 
 void Source::queue_buffers(const vector<const Buffer *> &buffers)
@@ -96,7 +64,7 @@ void Source::queue_buffers(const vector<const Buffer *> &buffers)
 
 void Source::queue_buffer(const Buffer &buffer)
 {
-       uint bid=buffer.get_id();
+       uint bid = buffer.get_id();
        alSourceQueueBuffers(id, 1, &bid);
 }
 
@@ -111,26 +79,26 @@ void Source::unqueue_buffers(const vector<const Buffer *> &buffers)
 
 void Source::unqueue_buffer(const Buffer &buffer)
 {
-       uint bid=buffer.get_id();
+       uint bid = buffer.get_id();
        alSourceUnqueueBuffers(id, 1, &bid);
 }
 
 void Source::clear_buffers()
 {
-       attribute(AL_BUFFER, AL_NONE);
+       alSourcei(id, AL_BUFFER, AL_NONE);
 }
 
 unsigned Source::get_buffers_queued() const
 {
-       int n;
-       get_attribute(AL_BUFFERS_QUEUED, &n);
+       int n = 0;
+       alGetSourceiv(id, AL_BUFFERS_QUEUED, &n);
        return n;
 }
 
 unsigned Source::get_buffers_processed() const
 {
-       int n;
-       get_attribute(AL_BUFFERS_PROCESSED, &n);
+       int n = 0;
+       alGetSourceiv(id, AL_BUFFERS_PROCESSED, &n);
        return n;
 }