Add some tests for AeonWave
This commit is contained in:
58
simgear/sound/aeonwave_test1.cxx
Normal file
58
simgear/sound/aeonwave_test1.cxx
Normal file
@@ -0,0 +1,58 @@
|
||||
#include <stdio.h>
|
||||
#include <cstdlib> // EXIT_FAILURE
|
||||
#include <string>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#define sleep(x) Sleep(x*1000)
|
||||
#else
|
||||
#include <unistd.h> // sleep()
|
||||
#endif
|
||||
|
||||
#include <aax/AeonWave>
|
||||
|
||||
#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;
|
||||
}
|
||||
107
simgear/sound/aeonwave_test2.cxx
Normal file
107
simgear/sound/aeonwave_test2.cxx
Normal file
@@ -0,0 +1,107 @@
|
||||
#include <stdio.h>
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#define sleep(x) Sleep(x*1000)
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include <simgear/debug/logstream.hxx>
|
||||
#include <simgear/misc/sg_path.hxx>
|
||||
#include <simgear/timing/timestamp.hxx>
|
||||
|
||||
#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;
|
||||
}
|
||||
Reference in New Issue
Block a user