Add some tests for AeonWave
This commit is contained in:
@@ -35,12 +35,28 @@ endif()
|
|||||||
simgear_scene_component(sound sound "${SOURCES}" "${HEADERS}")
|
simgear_scene_component(sound sound "${SOURCES}" "${HEADERS}")
|
||||||
|
|
||||||
if(ENABLE_TESTS AND ENABLE_SOUND)
|
if(ENABLE_TESTS AND ENABLE_SOUND)
|
||||||
|
function(create_test TEST_NAME)
|
||||||
|
add_executable(${TEST_NAME} ${TEST_NAME}.cxx)
|
||||||
|
target_link_libraries(${TEST_NAME} ${SOUND_TEST_LIBS})
|
||||||
|
set_target_properties(${TEST_NAME} PROPERTIES
|
||||||
|
COMPILE_DEFINITIONS "SRC_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}\"" )
|
||||||
|
endfunction()
|
||||||
|
|
||||||
set( SOUND_TEST_LIBS
|
set( SOUND_TEST_LIBS
|
||||||
${TEST_LIBS}
|
${TEST_LIBS}
|
||||||
)
|
)
|
||||||
|
|
||||||
if (USE_AEONWAVE)
|
if (USE_AEONWAVE)
|
||||||
|
if (SIMGEAR_SHARED)
|
||||||
|
else()
|
||||||
|
set(SOUND_TEST_LIBS ${SOUND_TEST_LIBS}
|
||||||
|
${AAX_LIBRARY}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
create_test(aeonwave_test1)
|
||||||
|
create_test(aeonwave_test2)
|
||||||
|
|
||||||
else ()
|
else ()
|
||||||
if (SIMGEAR_SHARED)
|
if (SIMGEAR_SHARED)
|
||||||
else()
|
else()
|
||||||
@@ -49,13 +65,6 @@ if(ENABLE_TESTS AND ENABLE_SOUND)
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
function(create_test TEST_NAME)
|
|
||||||
add_executable(${TEST_NAME} ${TEST_NAME}.cxx)
|
|
||||||
target_link_libraries(${TEST_NAME} ${SOUND_TEST_LIBS})
|
|
||||||
set_target_properties(${TEST_NAME} PROPERTIES
|
|
||||||
COMPILE_DEFINITIONS "SRC_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}\"" )
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
create_test(openal_test1)
|
create_test(openal_test1)
|
||||||
create_test(openal_test2)
|
create_test(openal_test2)
|
||||||
create_test(openal_test3)
|
create_test(openal_test3)
|
||||||
|
|||||||
@@ -178,26 +178,29 @@ void SGSoundMgr::init()
|
|||||||
|
|
||||||
d->init();
|
d->init();
|
||||||
|
|
||||||
d->_aax.set(AAX_INITIALIZED);
|
if ( is_working() )
|
||||||
testForError("initialization");
|
{
|
||||||
|
d->_aax.set(AAX_INITIALIZED);
|
||||||
|
testForError("initialization");
|
||||||
|
|
||||||
dsp = AAX::DSP(d->_aax, AAX_VOLUME_FILTER);
|
dsp = AAX::DSP(d->_aax, AAX_VOLUME_FILTER);
|
||||||
dsp.set(AAX_GAIN, 0.0f);
|
dsp.set(AAX_GAIN, 0.0f);
|
||||||
d->_aax.set(dsp);
|
d->_aax.set(dsp);
|
||||||
|
|
||||||
dsp = AAX::DSP(d->_aax, AAX_DISTANCE_FILTER);
|
dsp = AAX::DSP(d->_aax, AAX_DISTANCE_FILTER);
|
||||||
dsp.set(AAX_AL_INVERSE_DISTANCE_CLAMPED);
|
dsp.set(AAX_AL_INVERSE_DISTANCE_CLAMPED);
|
||||||
d->_aax.set(dsp);
|
d->_aax.set(dsp);
|
||||||
|
|
||||||
dsp = AAX::DSP(d->_aax, AAX_VELOCITY_EFFECT);
|
dsp = AAX::DSP(d->_aax, AAX_VELOCITY_EFFECT);
|
||||||
dsp.set(AAX_DOPPLER_FACTOR, 1.0f);
|
dsp.set(AAX_DOPPLER_FACTOR, 1.0f);
|
||||||
dsp.set(AAX_SOUND_VELOCITY, 340.3f);
|
dsp.set(AAX_SOUND_VELOCITY, 340.3f);
|
||||||
d->_aax.set(dsp);
|
d->_aax.set(dsp);
|
||||||
|
testForError("scenery setup");
|
||||||
|
|
||||||
testForError("scenery setup");
|
_vendor = (const char *)d->_aax.info(AAX_VENDOR_STRING);
|
||||||
|
_renderer = (const char *)d->_aax.info(AAX_RENDERER_STRING);
|
||||||
_vendor = (const char *)d->_aax.info(AAX_VENDOR_STRING);
|
}
|
||||||
_renderer = (const char *)d->_aax.info(AAX_RENDERER_STRING);
|
testForError("init");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -295,7 +298,7 @@ void SGSoundMgr::resume()
|
|||||||
void SGSoundMgr::update( double dt )
|
void SGSoundMgr::update( double dt )
|
||||||
{
|
{
|
||||||
#ifdef ENABLE_SOUND
|
#ifdef ENABLE_SOUND
|
||||||
if (_active) {
|
if ( is_working() && _active ) {
|
||||||
if (_changed) {
|
if (_changed) {
|
||||||
d->update_pos_and_orientation();
|
d->update_pos_and_orientation();
|
||||||
}
|
}
|
||||||
@@ -655,9 +658,9 @@ vector<const char*> SGSoundMgr::get_available_devices()
|
|||||||
while (const char* r = d->_aax.devices()) {
|
while (const char* r = d->_aax.devices()) {
|
||||||
while (const char* i = d->_aax.interfaces()) {
|
while (const char* i = d->_aax.interfaces()) {
|
||||||
std::string name = be;
|
std::string name = be;
|
||||||
if (i && r) name += on + r + colon + i;
|
if (*i && *r) name += on + r + colon + i;
|
||||||
else if (r) name += on + r;
|
else if (*r) name += on + r;
|
||||||
else if (i) name += colon + i;
|
else if (*i) name += colon + i;
|
||||||
|
|
||||||
d->_devices.push_back( strdup(name.c_str()) );
|
d->_devices.push_back( strdup(name.c_str()) );
|
||||||
}
|
}
|
||||||
@@ -693,7 +696,7 @@ bool SGSoundMgr::testForError(std::string s, std::string name)
|
|||||||
|
|
||||||
bool SGSoundMgr::is_working() const
|
bool SGSoundMgr::is_working() const
|
||||||
{
|
{
|
||||||
return (d->_aax != NULL);
|
return ((const void*)d->_aax != NULL ? true : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
const SGQuatd& SGSoundMgr::get_orientation() const
|
const SGQuatd& SGSoundMgr::get_orientation() const
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ public:
|
|||||||
*
|
*
|
||||||
* @return Velocity vector of the OpenAL listener
|
* @return Velocity vector of the OpenAL listener
|
||||||
*/
|
*/
|
||||||
inline SGVec3f get_velocity() { SGVec3f f(_velocity); return f; }
|
inline SGVec3f get_velocity() { SGVec3d f(_velocity); return toVec3f(f); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the orientation of the sound manager
|
* Set the orientation of the sound manager
|
||||||
|
|||||||
Reference in New Issue
Block a user