diff --git a/sound/imp/input_filter.h b/sound/imp/input_filter.h index c3da8599d2..4fcae320c2 100644 --- a/sound/imp/input_filter.h +++ b/sound/imp/input_filter.h @@ -1,7 +1,7 @@ #ifndef MANGLE_INPUT_FILTER_H #define MANGLE_INPUT_FILTER_H -#include "sound.h" +#include "../sound.h" #include diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 0000000000..8144904045 --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1 @@ +*_test diff --git a/tests/Makefile b/tests/Makefile new file mode 100644 index 0000000000..6aeaa5eb51 --- /dev/null +++ b/tests/Makefile @@ -0,0 +1,14 @@ +GCC=g++ -I../ + +all: ogrevfs_audiere_openal_test + +I_OGRE=$(shell pkg-config --cflags OGRE) +L_OGRE=$(shell pkg-config --libs OGRE) +L_OPENAL=$(shell pkg-config --libs openal) +L_AUDIERE=-laudiere + +ogrevfs_audiere_openal_test: ogrevfs_audiere_openal_test.cpp ../vfs/imp_server/ogre_vfs.cpp ../sound/imp/input_audiere.cpp ../sound/imp/output_openal.cpp ../stream/imp_client/audiere_file.cpp + $(GCC) $^ -o $@ $(I_OGRE) $(L_OGRE) $(L_OPENAL) $(L_AUDIERE) + +clean: + rm *_test diff --git a/tests/ogrevfs_audiere_openal_test.cpp b/tests/ogrevfs_audiere_openal_test.cpp new file mode 100644 index 0000000000..7bc6131da9 --- /dev/null +++ b/tests/ogrevfs_audiere_openal_test.cpp @@ -0,0 +1,52 @@ +/* + This example combines: + + - the OGRE VFS system (to read from zip) + - Audiere (for decoding sound data) + - OpenAL (for sound playback) + + */ + +#include "sound/imp/openal_audiere.h" +#include "vfs/imp_server/ogre_vfs.h" +#include +#include + +using namespace Ogre; +using namespace Mangle; +using namespace std; + +int main() +{ + // Disable Ogre logging + new LogManager; + Log *log = LogManager::getSingleton().createLog(""); + log->setDebugOutputEnabled(false); + + // Set up Root + Root *root = new Root("","",""); + + // Add zip file with a sound in it + root->addResourceLocation("sound.zip", "Zip", "General"); + + // Ogre file system + VFS::OgreVFS vfs; + + Sound::OpenAL_Audiere_Manager mg; + Sound::Sound *snd = mg.load(vfs.open("owl.ogg")); + + Sound::Instance *s = snd->getInstance(false, false); + cout << "Playing 'owl.ogg' from 'sound.zip'\n"; + s->play(); + + while(s->isPlaying()) + { + usleep(10000); + if(mg.needsUpdate) mg.update(); + } + + if(s) s->drop(); + if(snd) snd->drop(); + + return 0; +} diff --git a/tests/sound.zip b/tests/sound.zip new file mode 100644 index 0000000000..fd32b35299 Binary files /dev/null and b/tests/sound.zip differ