#include <boost/shared_ptr.hpp>
#include <moof/math.hh>
-#include <moof/resource.hh>
namespace moof {
-class sound;
-typedef resource_handle<sound> sound_handle;
-class sound_stream;
-typedef resource_handle<sound_stream> sound_stream_handle;
-
-
-class sound : public resource
+class sound
{
public:
- //sound();
+ sound();
explicit sound(const std::string& path);
- virtual ~sound() {}
-
- // this implicitly stops the sound if it is playing
void sample(const std::string& path);
+ void enqueue(const std::string& path);
- virtual void play();
+ void play();
+ void stream();
void stop();
void pause();
+ void rewind();
void toggle();
bool is_playing() const;
void gain(scalar gain);
void pitch(scalar pitch);
void loop(bool looping);
+
+
+ void listener_position(const vector3& position);
+ void listener_velocity(const vector3& velocity);
+ void listener_orientation(const vector3& forward,
+ const vector3& up);
- static void listener_position(const vector3& position);
- static void listener_velocity(const vector3& velocity);
- static void listener_orientation(const vector3& forward,
- const vector3& up);
-protected:
+private:
class impl;
boost::shared_ptr<impl> impl_;
};
-class sound_stream : public sound
-{
-public:
-
- //sound_stream();
- explicit sound_stream(const std::string& path) :
- sound(path) {}
-
- void enqueue(const std::string& path);
-
- void play();
-};
-
-
} // namespace moof
#endif // _MOOF_SOUND_HH_