Browse Source

Audio: Expand RendererTest

Signed-off-by: Squareys <Squareys@googlemail.com>
pull/107/head
Squareys 11 years ago
parent
commit
65c6eb78e3
  1. 2
      src/Magnum/Audio/CMakeLists.txt
  2. 4
      src/Magnum/Audio/Renderer.h
  3. 79
      src/Magnum/Audio/Test/RendererTest.cpp

2
src/Magnum/Audio/CMakeLists.txt

@ -54,7 +54,7 @@ if(BUILD_STATIC_PIC)
set_target_properties(MagnumAudio PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif()
target_link_libraries(MagnumAudio ${CORRADE_PLUGINMANAGER_LIBRARIES} ${OPENAL_LIBRARY})
target_link_libraries(MagnumAudio Magnum ${CORRADE_PLUGINMANAGER_LIBRARIES} ${OPENAL_LIBRARY})
install(TARGETS MagnumAudio
RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR}

4
src/Magnum/Audio/Renderer.h

@ -29,6 +29,8 @@
* @brief Class @ref Magnum::Audio::Renderer
*/
#include <array>
#include <al.h>
#include "Magnum/Magnum.h"
@ -90,6 +92,8 @@ class Renderer {
/**
* @brief Listener orientation
*
* The returned array consists of forward (index 0) and up (index 1) vectors.
* @see @ref setListenerOrientation(), @fn_al{GetListenerfv} with @def_al{ORIENTATION}
*/
static std::array<Vector3, 2> listenerOrientation() {

79
src/Magnum/Audio/Test/RendererTest.cpp

@ -26,6 +26,8 @@
#include <sstream>
#include <Corrade/TestSuite/Tester.h>
#include "Magnum/Magnum.h"
#include "Magnum/Audio/Context.h"
#include "Magnum/Audio/Renderer.h"
namespace Magnum { namespace Audio { namespace Test {
@ -34,10 +36,28 @@ struct RendererTest: TestSuite::Tester {
explicit RendererTest();
void debugError();
void debugDistanceModel();
void listenerOrientation();
void listenerPosition();
void listenerVelocity();
void listenerGain();
void speedOfSound();
void dopplerFactor();
void distanceModel();
Context _context;
};
RendererTest::RendererTest() {
addTests({&RendererTest::debugError});
addTests({&RendererTest::debugError,
&RendererTest::debugDistanceModel,
&RendererTest::listenerOrientation,
&RendererTest::listenerPosition,
&RendererTest::listenerVelocity,
&RendererTest::listenerGain,
&RendererTest::speedOfSound,
&RendererTest::dopplerFactor,
&RendererTest::distanceModel});
}
void RendererTest::debugError() {
@ -46,6 +66,63 @@ void RendererTest::debugError() {
CORRADE_COMPARE(out.str(), "Audio::Renderer::Error::InvalidOperation\n");
}
void RendererTest::debugDistanceModel() {
std::ostringstream out;
Debug(&out) << Renderer::DistanceModel::Inverse;
CORRADE_COMPARE(out.str(), "Audio::Renderer::DistanceModel::Inverse\n");
}
void RendererTest::listenerOrientation() {
constexpr Vector3 up{1.0f, 2.0f, 3.0f}, fwd{3.0f, 2.0f, 1.0f};
Renderer::setListenerOrientation(fwd, up);
std::array<Vector3, 2> orientation = Renderer::listenerOrientation();
CORRADE_COMPARE(orientation[0], fwd);
CORRADE_COMPARE(orientation[1], up);
}
void RendererTest::listenerPosition() {
constexpr Vector3 pos{1.0f, 3.0f, 2.0f};
Renderer::setListenerPosition(pos);
CORRADE_COMPARE(Renderer::listenerPosition(), pos);
}
void RendererTest::listenerVelocity() {
constexpr Vector3 vel{1.0f, 3.0f, 2.0f};
Renderer::setListenerVelocity(vel);
CORRADE_COMPARE(Renderer::listenerVelocity(), vel);
}
void RendererTest::listenerGain() {
constexpr Float gain = 0.512f;
Renderer::setListenerGain(gain);
CORRADE_COMPARE(Renderer::listenerGain(), gain);
}
void RendererTest::speedOfSound() {
constexpr Float speed = 1.25f;
Renderer::setSpeedOfSound(speed);
CORRADE_COMPARE(Renderer::speedOfSound(), speed);
}
void RendererTest::dopplerFactor() {
constexpr Float factor = 0.3335f;
Renderer::setDopplerFactor(factor);
CORRADE_COMPARE(Renderer::dopplerFactor(), factor);
}
void RendererTest::distanceModel() {
constexpr Renderer::DistanceModel model = Renderer::DistanceModel::InverseClamped;
Renderer::setDistanceModel(model);
CORRADE_COMPARE(Renderer::distanceModel(), model);
}
}}}
CORRADE_TEST_MAIN(Magnum::Audio::Test::RendererTest)

Loading…
Cancel
Save