From d0e8c294dab7fb2549fc0aa02b0caa3e240fd872 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 11 Nov 2014 11:22:16 -0800 Subject: [PATCH] handle passing of local audio interface to AudioInjector --- interface/src/Application.cpp | 2 +- libraries/audio/src/AudioInjector.h | 5 +++++ libraries/audio/src/AudioScriptingInterface.cpp | 3 ++- libraries/audio/src/AudioScriptingInterface.h | 6 ++---- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 7f80407a6b..77cfcfd548 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -417,7 +417,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : _trayIcon->show(); // set the local loopback interface for local sounds from audio scripts - AudioScriptingInterface::getInstance().setLocalLoopbackInterface(&_audio); + AudioScriptingInterface::getInstance().setLocalAudioInterface(&_audio); #ifdef HAVE_RTMIDI // setup the MIDIManager diff --git a/libraries/audio/src/AudioInjector.h b/libraries/audio/src/AudioInjector.h index e53e2dbcad..12e4c62d5d 100644 --- a/libraries/audio/src/AudioInjector.h +++ b/libraries/audio/src/AudioInjector.h @@ -21,6 +21,8 @@ #include "AudioInjectorOptions.h" #include "Sound.h" +class AbstractAudioInterface; + class AudioInjector : public QObject { Q_OBJECT public: @@ -29,6 +31,8 @@ public: bool isFinished() const { return _isFinished; } int getCurrentSendPosition() const { return _currentSendPosition; } + + void setLocalAudioInterface(AbstractAudioInterface* localAudioInterface) { _localAudioInterface = localAudioInterface; } public slots: void injectAudio(); void stop() { _shouldStop = true; } @@ -45,6 +49,7 @@ private: float _loudness; bool _isFinished; int _currentSendPosition; + AbstractAudioInterface* _localAudioInterface; }; diff --git a/libraries/audio/src/AudioScriptingInterface.cpp b/libraries/audio/src/AudioScriptingInterface.cpp index eee43ec18c..cb010ef11d 100644 --- a/libraries/audio/src/AudioScriptingInterface.cpp +++ b/libraries/audio/src/AudioScriptingInterface.cpp @@ -22,7 +22,7 @@ AudioScriptingInterface& AudioScriptingInterface::getInstance() { } AudioScriptingInterface::AudioScriptingInterface() : - _localLoopbackInterface(NULL) + _localAudioInterface(NULL) { } @@ -45,6 +45,7 @@ void AudioScriptingInterface::stopAllInjectors() { AudioInjector* AudioScriptingInterface::playSound(Sound* sound, const AudioInjectorOptions& injectorOptions) { AudioInjector* injector = new AudioInjector(sound, injectorOptions); + injector->setLocalAudioInterface(_localAudioInterface); QThread* injectorThread = new QThread(); diff --git a/libraries/audio/src/AudioScriptingInterface.h b/libraries/audio/src/AudioScriptingInterface.h index 2af690e772..0017806b40 100644 --- a/libraries/audio/src/AudioScriptingInterface.h +++ b/libraries/audio/src/AudioScriptingInterface.h @@ -18,8 +18,6 @@ #include "AudioInjector.h" #include "Sound.h" -const AudioInjectorOptions DEFAULT_INJECTOR_OPTIONS; - class AudioScriptingInterface : public QObject { Q_OBJECT public: @@ -27,7 +25,7 @@ public: void stopAllInjectors(); - void setLocalLoopbackInterface(AbstractAudioInterface* audioInterface) { _localLoopbackInterface = audioInterface; } + void setLocalAudioInterface(AbstractAudioInterface* audioInterface) { _localAudioInterface = audioInterface; } public slots: static float getLoudness(AudioInjector* injector); @@ -42,7 +40,7 @@ public slots: private: AudioScriptingInterface(); QList< QPointer > _activeInjectors; - AbstractAudioInterface* _localLoopbackInterface; + AbstractAudioInterface* _localAudioInterface; }; void registerAudioMetaTypes(QScriptEngine* engine);