From 7974079b1d32eb3e5f44d31153ccfba2ee82eec6 Mon Sep 17 00:00:00 2001 From: Erik Hofman Date: Sun, 17 Jul 2016 10:26:53 +0200 Subject: [PATCH] Add some tests for AeonWave --- simgear/sound/aeonwave_test1.cxx | 58 +++++++++++++++++ simgear/sound/aeonwave_test2.cxx | 107 +++++++++++++++++++++++++++++++ 2 files changed, 165 insertions(+) create mode 100644 simgear/sound/aeonwave_test1.cxx create mode 100644 simgear/sound/aeonwave_test2.cxx diff --git a/simgear/sound/aeonwave_test1.cxx b/simgear/sound/aeonwave_test1.cxx new file mode 100644 index 00000000..1a90960b --- /dev/null +++ b/simgear/sound/aeonwave_test1.cxx @@ -0,0 +1,58 @@ +#include +#include // EXIT_FAILURE +#include + +#ifdef _WIN32 +#include +#define sleep(x) Sleep(x*1000) +#else +#include // sleep() +#endif + +#include + +#define AUDIOFILE SRC_DIR"/jet.wav" + +bool testForError(AAX::AeonWave& p, std::string s) +{ + enum aaxErrorType error = p.error_no(); + if (error != AAX_ERROR_NONE) { + std::cout << "AeonWave Error: " + << p.error(error) << " at " << s << std::endl; + return true; + } + return false; +} + + +int main( int argc, char *argv[] ) +{ + AAX::AeonWave aax = AAX::AeonWave(AAX_MODE_WRITE_STEREO); + + aax.set(AAX_INITIALIZED); + testForError(aax, "initialization"); + + AAX::DSP dsp; + dsp = AAX::DSP(aax, AAX_VOLUME_FILTER); + dsp.set(AAX_GAIN, 0.0f); + aax.set(dsp); + + dsp = AAX::DSP(aax, AAX_DISTANCE_FILTER); + dsp.set(AAX_AL_INVERSE_DISTANCE_CLAMPED); + aax.set(dsp); + + dsp = AAX::DSP(aax, AAX_VELOCITY_EFFECT); + dsp.set(AAX_DOPPLER_FACTOR, 1.0f); + dsp.set(AAX_SOUND_VELOCITY, 340.3f); + aax.set(dsp); + + testForError(aax, "scenery setup"); + + std::string _vendor = (const char *)aax.info(AAX_VENDOR_STRING); + std::string _renderer = (const char *)aax.info(AAX_RENDERER_STRING); + + std::cout << "Vendor: " << _vendor << std::endl; + std::cout << "Renderer: " << _renderer << std::endl; + + return 0; +} diff --git a/simgear/sound/aeonwave_test2.cxx b/simgear/sound/aeonwave_test2.cxx new file mode 100644 index 00000000..1415139e --- /dev/null +++ b/simgear/sound/aeonwave_test2.cxx @@ -0,0 +1,107 @@ +#include +#ifdef _WIN32 +#include +#define sleep(x) Sleep(x*1000) +#else +#include +#endif + +#include +#include +#include + +#include "soundmgr_aeonwave.hxx" +#include "sample_group.hxx" +#include "sample.hxx" + + +int main( int argc, char *argv[] ) { + 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 = new SGSoundSample("jet.wav", srcDir); + sample1->set_volume(1.0); + sample1->set_pitch(1.0); + sample1->play_looped(); + sgr->add(sample1, "sound1"); +printf("a\n"); + smgr->update(1.0); +printf("b\n"); + printf("playing sample1\n"); + sleep(1); + + SGSoundSample *sample2 = new SGSoundSample("jet_ulaw.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 = new SGSoundSample("jet_ima4.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 = 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 = 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 = 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"); + SGTimeStamp::sleepForMSec(500); + smgr->update(0.5); + sgr->stop("sound4"); + sgr->stop("sound5"); + sgr->stop("sound6"); + smgr->update(1); + sleep(1); + + smgr->unbind(); + sleep(2); + delete smgr; +} -- 2.39.5