Tune caves
[oweals/minetest.git] / src / sound.h
index 7f6e4141ef68e6b6c593fb6139b464f04e4ed21f..c342f4e5ef955dbcb9eb49b877541c3c3b07b285 100644 (file)
@@ -22,7 +22,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "irrlichttypes.h"
 #include <string>
-#include <vector>
 #include <set>
 
 class OnDemandSoundFetcher
@@ -30,7 +29,7 @@ class OnDemandSoundFetcher
 public:
        virtual void fetchSounds(const std::string &name,
                        std::set<std::string> &dst_paths,
-                       std::set<std::vector<char> > &dst_datas) = 0;
+                       std::set<std::string> &dst_datas) = 0;
 };
 
 struct SimpleSoundSpec
@@ -53,10 +52,10 @@ public:
        // Multiple sounds can be loaded per name; when played, the sound
        // should be chosen randomly from alternatives
        // Return value determines success/failure
-       virtual bool loadSound(const std::string &name,
+       virtual bool loadSoundFile(const std::string &name,
                        const std::string &filepath) = 0;
-       virtual bool loadSound(const std::string &name,
-                       const std::vector<char> &filedata) = 0;
+       virtual bool loadSoundData(const std::string &name,
+                       const std::string &filedata) = 0;
 
        virtual void updateListener(v3f pos, v3f vel, v3f at, v3f up) = 0;
 
@@ -67,6 +66,8 @@ public:
        virtual int playSoundAt(const std::string &name, bool loop,
                        float volume, v3f pos) = 0;
        virtual void stopSound(int sound) = 0;
+       virtual bool soundExists(int sound) = 0;
+       virtual void updateSoundPosition(int sound, v3f pos) = 0;
 
        int playSound(const SimpleSoundSpec &spec, bool loop)
                { return playSound(spec.name, loop, spec.gain); }
@@ -77,16 +78,18 @@ public:
 class DummySoundManager: public ISoundManager
 {
 public:
-       virtual bool loadSound(const std::string &name,
+       virtual bool loadSoundFile(const std::string &name,
                        const std::string &filepath) {return true;}
-       virtual bool loadSound(const std::string &name,
-                       const std::vector<char> &filedata) {return true;}
+       virtual bool loadSoundData(const std::string &name,
+                       const std::string &filedata) {return true;}
        void updateListener(v3f pos, v3f vel, v3f at, v3f up) {}
        int playSound(const std::string &name, bool loop,
                        float volume) {return 0;}
        int playSoundAt(const std::string &name, bool loop,
                        float volume, v3f pos) {return 0;}
        void stopSound(int sound) {}
+       bool soundExists(int sound) {return false;}
+       void updateSoundPosition(int sound, v3f pos) {}
 };
 
 // Global DummySoundManager singleton