X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fsource.h;h=769b35425c14782b280e3451181fbb650510a27b;hb=14008b157c64752ba7c1cef831124992c35c4646;hp=234dcb832f4a2d8e9b4ca0bf66af3e87ea3bbf37;hpb=35ea5cc8d1eb8c806885d27441548f630e7b1266;p=libs%2Fal.git diff --git a/source/source.h b/source/source.h index 234dcb8..769b354 100644 --- a/source/source.h +++ b/source/source.h @@ -1,21 +1,26 @@ -/* $Id$ - -This file is part of libmspal -Copyright © 2008 Mikko Rasa, Mikkosoft Productions -Diestributed under the LGPL -*/ - #ifndef MSP_AL_SOURCE_H_ #define MSP_AL_SOURCE_H_ #include #include +#include "types.h" namespace Msp { namespace AL { class Buffer; +enum SourceState +{ + INITIAL = AL_INITIAL, + PLAYING = AL_PLAYING, + PAUSED = AL_PAUSED, + STOPPED = AL_STOPPED +}; + +/** +Represents an audio source in the 3D environment. +*/ class Source { private: @@ -29,9 +34,28 @@ public: void attribute(ALenum, float); void attribute(ALenum, float, float, float); void attribute(ALenum, const float *); - void set_buffer(Buffer &); - void queue_buffers(const std::vector &); - void queue_buffer(Buffer &); + void get_attribute(ALenum, int *) const; + void get_attribute(ALenum, float *) const; + + SourceState get_state() const; + void set_position(float, float, float); + void set_gain(float); + + void set_rolloff_factor(float); + void set_buffer(const Buffer &); + void queue_buffers(const std::vector &); + void queue_buffer(const Buffer &); + void unqueue_buffers(const std::vector &); + void unqueue_buffer(const Buffer &); + void clear_buffers(); + unsigned get_buffers_queued() const; + unsigned get_buffers_processed() const; + + void set_looping(bool); + void play(); + void pause(); + void stop(); + void rewind(); }; } // namespace AL