]> git.mxchange.org Git - simgear.git/blobdiff - simgear/sound/openal_test2.cxx
Fix crash in SGSoundMgr::stop(): do not try to erase buffer items one at a time
[simgear.git] / simgear / sound / openal_test2.cxx
index ac65e5550c5d6b564331774522ced8a86001e403..eb0da57e5007ccdd98a3b9c361da446156b3ee37 100644 (file)
@@ -1,10 +1,9 @@
 #include <stdio.h>
-#ifdef __MINGW32__
-// This is broken, but allows the file to compile without a POSIX
-// environment.
-static unsigned int sleep(unsigned int secs) { return 0; }
+#ifdef _WIN32
+#include <windows.h>
+#define sleep(x) Sleep(x*1000)
 #else
-#include <unistd.h>    // sleep()
+#include <unistd.h>
 #endif
 
 #include <simgear/debug/logstream.hxx>
@@ -12,6 +11,7 @@ static unsigned int sleep(unsigned int secs) { return 0; }
 
 #include "soundmgr_openal.hxx"
 
+SGGeod pos = SGGeod::fromDeg(0,0);
 
 int main( int argc, char *argv[] ) {
     SGSampleGroup *sgr;
@@ -23,6 +23,7 @@ int main( int argc, char *argv[] ) {
     smgr->init();
     sgr = smgr->find("default", true);
     smgr->set_volume(0.9);
+    smgr->set_position( SGVec3d::fromGeod(pos), pos );
     smgr->activate();
 
     SGSoundSample *sample1 = new SGSoundSample( SRC_DIR, "jet.wav" );
@@ -30,7 +31,7 @@ int main( int argc, char *argv[] ) {
     sample1->set_pitch(1.0);
     sample1->play_looped();
     sgr->add(sample1, "sound1");
-    smgr->update_late(1.0);
+    smgr->update(1.0);
     printf("playing sample1\n");
     sleep(1);
 
@@ -39,7 +40,7 @@ int main( int argc, char *argv[] ) {
     sample2->set_pitch(0.4);
     sample2->play_looped();
     sgr->add(sample2, "sound2");
-    smgr->update_late(1.0);
+    smgr->update(1.0);
     printf("playing sample2\n");
     sleep(1);
 
@@ -48,7 +49,7 @@ int main( int argc, char *argv[] ) {
     sample3->set_pitch(0.8);
     sample3->play_looped();
     sgr->add(sample3, "sound3");
-    smgr->update_late(1.0);
+    smgr->update(1.0);
     printf("playing sample3\n");
     sleep(1);
 
@@ -57,7 +58,7 @@ int main( int argc, char *argv[] ) {
     sample4->set_pitch(1.2);
     sample4->play_looped();
     sgr->add(sample4, "sound4");
-    smgr->update_late(1.0);
+    smgr->update(1.0);
     printf("playing sample4\n");
     sleep(1);
 
@@ -66,7 +67,7 @@ int main( int argc, char *argv[] ) {
     sample5->set_pitch(1.6);
     sample5->play_looped();
     sgr->add(sample5, "sound5");
-    smgr->update_late(1.0);
+    smgr->update(1.0);
     printf("playing sample5\n");
     sleep(1);
 
@@ -75,24 +76,24 @@ int main( int argc, char *argv[] ) {
     sample6->set_pitch(2.0);
     sample6->play_looped();
     sgr->add(sample6, "sound6");
-    smgr->update_late(1.0);
+    smgr->update(1.0);
     printf("playing sample6\n");
     sleep(1);
 
     for (int i=0; i<10; i++) {
         sleep(1);
-        smgr->update_late(1);
+        smgr->update(1);
     }
 
     sgr->stop("sound1");
     sgr->stop("sound2");
     sgr->stop("sound3");
     sleep(0.5);
-    smgr->update_late(0.5);
+    smgr->update(0.5);
     sgr->stop("sound4");
     sgr->stop("sound5");
     sgr->stop("sound6");
-    smgr->update_late(1);
+    smgr->update(1);
     sleep(1);
 
     smgr->unbind();