From d2af9a29115cee6f67e9484769a1b3560300b344 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 21 Jan 2015 12:03:11 -0800 Subject: [PATCH] have Application pass audio pos/orientation to AudioClient --- interface/src/Application.cpp | 4 ++++ interface/src/Application.h | 2 ++ interface/src/Menu.cpp | 2 +- libraries/audio-client/CMakeLists.txt | 18 +++++++++--------- libraries/audio-client/src/AudioClient.h | 2 +- 5 files changed, 17 insertions(+), 11 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 0133327897..874f14112a 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -279,6 +279,10 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : QThread* audioThread = new QThread(this); auto audioIO = DependencyManager::get(); + + audioIO->setPositionGetter(getPositionForAudio); + audioIO->setOrientationGetter(getOrientationForAudio); + audioIO->moveToThread(audioThread); connect(audioThread, &QThread::started, audioIO.data(), &AudioClient::start); diff --git a/interface/src/Application.h b/interface/src/Application.h index 8fbf87f0f5..34377b73a2 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -132,6 +132,8 @@ public: static Application* getInstance() { return static_cast(QCoreApplication::instance()); } static const glm::vec3& getPositionForPath() { return getInstance()->_myAvatar->getPosition(); } static glm::quat getOrientationForPath() { return getInstance()->_myAvatar->getOrientation(); } + static glm::vec3 getPositionForAudio() { return getInstance()->_myAvatar->getHead()->getPosition(); } + static glm::quat getOrientationForAudio() { return getInstance()->_myAvatar->getHead()->getFinalOrientationInWorldFrame(); } Application(int& argc, char** argv, QElapsedTimer &startup_time); ~Application(); diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index bac976bd7d..befdbf1a88 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -41,7 +42,6 @@ #include "Application.h" #include "AccountManager.h" -#include "Audio.h" #include "audio/AudioIOStatsRenderer.h" #include "audio/AudioScope.h" #include "devices/RealSense.h" diff --git a/libraries/audio-client/CMakeLists.txt b/libraries/audio-client/CMakeLists.txt index a9df7d1937..069b65a82a 100644 --- a/libraries/audio-client/CMakeLists.txt +++ b/libraries/audio-client/CMakeLists.txt @@ -5,17 +5,17 @@ setup_hifi_library(Network) link_hifi_libraries(audio) -# call macro to include our dependency includes and bubble them up via a property on our target -include_dependency_includes() - set(GVERB_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/external/gverb") # As Gverb is currently the only reverb library, it's required. find_package(Gverb REQUIRED) -if (GVERB_FOUND) - file(GLOB GVERB_SRCS ${GVERB_SRC_DIRS}/*.c) - include_directories(${GVERB_INCLUDE_DIRS}) - add_library(gverb STATIC ${GVERB_SRCS}) - target_link_libraries(${TARGET_NAME} gverb) -endif (GVERB_FOUND) \ No newline at end of file +file(GLOB GVERB_SRCS ${GVERB_SRC_DIRS}/*.c) +add_library(gverb STATIC ${GVERB_SRCS}) +target_link_libraries(${TARGET_NAME} gverb) + +# append gverb includes to our list of includes to bubble +list(APPEND ${TARGET_NAME}_DEPENDENCY_INCLUDES "${GVERB_INCLUDE_DIRS}") + +# call macro to include our dependency includes and bubble them up via a property on our target +include_dependency_includes() \ No newline at end of file diff --git a/libraries/audio-client/src/AudioClient.h b/libraries/audio-client/src/AudioClient.h index 8426486b9a..c6d3115d1a 100644 --- a/libraries/audio-client/src/AudioClient.h +++ b/libraries/audio-client/src/AudioClient.h @@ -68,7 +68,7 @@ class QAudioInput; class QAudioOutput; class QIODevice; -typedef const glm::vec3& (*PositionGetter)(); +typedef glm::vec3 (*PositionGetter)(); typedef glm::quat (*OrientationGetter)(); class AudioClient : public AbstractAudioInterface, public Dependency {