X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2Fmoof%2Fsound.hh;h=1f7fcfe788c1e33d5fd44975f4d26e8d98cf8400;hp=5a60f0c1ecafffb143db1e9fef53f5704adc03b4;hb=574af38ed616d1adfa5e6ce35f67cda1f707f89d;hpb=831f04d4bc19a390415ac0bbac4331c7a65509bc diff --git a/src/moof/sound.hh b/src/moof/sound.hh index 5a60f0c..1f7fcfe 100644 --- a/src/moof/sound.hh +++ b/src/moof/sound.hh @@ -1,20 +1,18 @@ -/*] Copyright (c) 2009-2010, Charles McGarvey [************************** +/*] Copyright (c) 2009-2011, Charles McGarvey [***************************** **] All rights reserved. * -* vi:ts=4 sw=4 tw=75 -* * Distributable under the terms and conditions of the 2-clause BSD license; * see the file COPYING for a complete text of the license. * -**************************************************************************/ +*****************************************************************************/ #ifndef _MOOF_SOUND_HH_ #define _MOOF_SOUND_HH_ /** * \file sound.hh - * Load and play sounds, current supports ogg vorbis. + * Load and play sounds, currently supports ogg vorbis. */ #include @@ -22,82 +20,52 @@ #include #include -#include namespace moof { -class sound; -typedef boost::shared_ptr sound_ptr; - -class sound_stream; -typedef boost::shared_ptr sound_stream_ptr; - +// forward declarations +class script; -class sound : public resource +class sound { public: - static sound_ptr alloc(const std::string& name) - { - return sound_ptr(new sound(name)); - } - sound(); explicit sound(const std::string& name); - virtual ~sound() {} - - // this implicitly stops the sound if it is playing void sample(const std::string& name); + void queue(const std::string& name); - virtual void play(); + void play(); void stop(); void pause(); void toggle(); bool is_playing() const; + void buffer_size(scalar seconds); + void position(const vector3& position); void velocity(const vector3& velocity); void gain(scalar gain); void pitch(scalar pitch); void loop(bool looping); - + static void listener_position(const vector3& position); static void listener_velocity(const vector3& velocity); - static void listener_orientation(const vector3& forward, - const vector3& up); + static void listener_orientation(const vector3& forward, const vector3& up); - static bool find_path(std::string& name); + static void import(script& script, const std::string& nspace = ""); -protected: +private: class impl; boost::shared_ptr impl_; }; -class sound_stream : public sound -{ -public: - - static sound_stream_ptr alloc(const std::string& name) - { - return sound_stream_ptr(new sound_stream(name)); - } - - sound_stream(); - explicit sound_stream(const std::string& name) : - sound(name) {} - - void enqueue(const std::string& name); - - void play(); -}; - - } // namespace moof #endif // _MOOF_SOUND_HH_