]> git.mxchange.org Git - simgear.git/blobdiff - simgear/sound/openal_test2.cxx
Fixes for headless mode.
[simgear.git] / simgear / sound / openal_test2.cxx
index da263620822fedeb0842ad0629faf6c464d8eae8..a136c83e10173c8eee6e7776c2de6fc8a6c2004c 100644 (file)
 #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 "sample_openal.hxx"
+#include <simgear/debug/logstream.hxx>
+#include <simgear/misc/sg_path.hxx>
+
 #include "soundmgr_openal.hxx"
 
 
 int main( int argc, char *argv[] ) {
-    SGSoundMgr sm;
+    SGSampleGroup *sgr;
+    SGSoundMgr *smgr;
+
+    smgr = new SGSoundMgr;
+
+    smgr->bind();
+    smgr->init();
+    sgr = smgr->find("default", true);
+    smgr->set_volume(0.9);
+    smgr->activate();
+
+    SGPath srcDir(SRC_DIR);
 
-    SGSoundSample sample1( SRC_DIR, "jet.wav" );
-    sample1.set_volume(0.5);
-    sample1.set_volume(0.2);
-    sample1.play_looped();
+    SGSoundSample *sample1 = new SGSoundSample("jet.wav", srcDir);
+    sample1->set_volume(1.0);
+    sample1->set_pitch(1.0);
+    sample1->play_looped();
+    sgr->add(sample1, "sound1");
+    smgr->update(1.0);
+    printf("playing sample1\n");
     sleep(1);
 
-    SGSoundSample sample2( SRC_DIR, "jet.wav" );
-    sample2.set_volume(0.5);
-    sample2.set_pitch(0.4);
-    sample2.play_looped();
+    SGSoundSample *sample2 = new SGSoundSample("jet.wav", srcDir);
+    sample2->set_volume(0.5);
+    sample2->set_pitch(0.4);
+    sample2->play_looped();
+    sgr->add(sample2, "sound2");
+    smgr->update(1.0);
+    printf("playing sample2\n");
     sleep(1);
 
-    SGSoundSample sample3( SRC_DIR, "jet.wav" );
-    sample3.set_volume(0.5);
-    sample3.set_pitch(0.8);
-    sample3.play_looped();
+    SGSoundSample *sample3 = new SGSoundSample("jet.wav", srcDir);
+    sample3->set_volume(0.5);
+    sample3->set_pitch(0.8);
+    sample3->play_looped();
+    sgr->add(sample3, "sound3");
+    smgr->update(1.0);
+    printf("playing sample3\n");
     sleep(1);
 
-    SGSoundSample sample4( SRC_DIR, "jet.wav" );
-    sample4.set_volume(0.5);
-    sample4.set_pitch(1.2);
-    sample4.play_looped();
+    SGSoundSample *sample4 = new SGSoundSample("jet.wav", srcDir);
+    sample4->set_volume(0.5);
+    sample4->set_pitch(1.2);
+    sample4->play_looped();
+    sgr->add(sample4, "sound4");
+    smgr->update(1.0);
+    printf("playing sample4\n");
     sleep(1);
 
-    SGSoundSample sample5( SRC_DIR, "jet.wav" );
-    sample5.set_volume(0.5);
-    sample5.set_pitch(1.6);
-    sample5.play_looped();
+    SGSoundSample *sample5 = new SGSoundSample("jet.wav", srcDir);
+    sample5->set_volume(0.5);
+    sample5->set_pitch(1.6);
+    sample5->play_looped();
+    sgr->add(sample5, "sound5");
+    smgr->update(1.0);
+    printf("playing sample5\n");
     sleep(1);
 
-    SGSoundSample sample6( SRC_DIR, "jet.wav" );
-    sample6.set_volume(0.5);
-    sample6.set_pitch(2.0);
-    sample6.play_looped();
+    SGSoundSample *sample6 = new SGSoundSample("jet.wav", srcDir);
+    sample6->set_volume(0.5);
+    sample6->set_pitch(2.0);
+    sample6->play_looped();
+    sgr->add(sample6, "sound6");
+    smgr->update(1.0);
+    printf("playing sample6\n");
+    sleep(1);
+
+    for (int i=0; i<10; i++) {
+        sleep(1);
+        smgr->update(1);
+    }
+
+    sgr->stop("sound1");
+    sgr->stop("sound2");
+    sgr->stop("sound3");
+    sleep(0.5);
+    smgr->update(0.5);
+    sgr->stop("sound4");
+    sgr->stop("sound5");
+    sgr->stop("sound6");
+    smgr->update(1);
     sleep(1);
 
-    sleep(10);
+    smgr->unbind();
+    sleep(2);
+    delete smgr;
 }