00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef SGE_AUDIO_SOUND_HPP_INCLUDED
00022 #define SGE_AUDIO_SOUND_HPP_INCLUDED
00023
00024 #include "../../math/vector.hpp"
00025 #include "../../shared_ptr.hpp"
00026 #include "../../export.hpp"
00027 #include <boost/noncopyable.hpp>
00028
00029 namespace sge
00030 {
00031 namespace audio
00032 {
00033
00034 class SGE_CLASS_SYMBOL sound : boost::noncopyable {
00035 public:
00036 enum sound_status
00037 {
00038 status_stopped,
00039 status_playing,
00040 status_paused
00041 };
00042
00043 virtual void play(const bool) = 0;
00044 virtual void toggle_pause() = 0;
00045 virtual sound_status status() const = 0;
00046 virtual void stop() = 0;
00047 virtual math::vector3 pos() const = 0;
00048 virtual void pos(const math::vector3 &) = 0;
00049 virtual bool positional() const = 0;
00050 virtual void positional(const bool) = 0;
00051 SGE_SYMBOL virtual void update();
00052 SGE_SYMBOL virtual ~sound();
00053 };
00054
00055 typedef shared_ptr<sound> sound_ptr;
00056
00057 }
00058 }
00059
00060 #endif // SOUND_HPP