From 507419162cc2d46cdc55f512f77cca1eeec79ea8 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Fri, 5 Sep 2014 14:34:55 -0700 Subject: [PATCH] Added stereo option to the AudioInjector --- libraries/audio/src/AudioInjector.cpp | 3 +++ libraries/audio/src/AudioInjectorOptions.cpp | 3 +++ libraries/audio/src/AudioInjectorOptions.h | 4 ++++ libraries/audio/src/InjectedAudioStream.cpp | 2 ++ 4 files changed, 12 insertions(+) diff --git a/libraries/audio/src/AudioInjector.cpp b/libraries/audio/src/AudioInjector.cpp index 88251808a9..7209ecb36a 100644 --- a/libraries/audio/src/AudioInjector.cpp +++ b/libraries/audio/src/AudioInjector.cpp @@ -65,6 +65,9 @@ void AudioInjector::injectAudio() { int numPreSequenceNumberBytes = injectAudioPacket.size(); packetStream << (quint16)0; + // pack the stereo/mono type of the stream + packetStream << _options.isStereo(); + // pack stream identifier (a generated UUID) packetStream << QUuid::createUuid(); diff --git a/libraries/audio/src/AudioInjectorOptions.cpp b/libraries/audio/src/AudioInjectorOptions.cpp index 01aa43a0cd..eab4eb3848 100644 --- a/libraries/audio/src/AudioInjectorOptions.cpp +++ b/libraries/audio/src/AudioInjectorOptions.cpp @@ -17,6 +17,7 @@ AudioInjectorOptions::AudioInjectorOptions(QObject* parent) : _volume(1.0f), _loop(false), _orientation(glm::vec3(0.0f, 0.0f, 0.0f)), + _isStereo(false), _loopbackAudioInterface(NULL) { } @@ -26,6 +27,7 @@ AudioInjectorOptions::AudioInjectorOptions(const AudioInjectorOptions& other) { _volume = other._volume; _loop = other._loop; _orientation = other._orientation; + _isStereo = other._isStereo; _loopbackAudioInterface = other._loopbackAudioInterface; } @@ -34,5 +36,6 @@ void AudioInjectorOptions::operator=(const AudioInjectorOptions& other) { _volume = other._volume; _loop = other._loop; _orientation = other._orientation; + _isStereo = other._isStereo; _loopbackAudioInterface = other._loopbackAudioInterface; } \ No newline at end of file diff --git a/libraries/audio/src/AudioInjectorOptions.h b/libraries/audio/src/AudioInjectorOptions.h index 64936e4bc9..e1beb3e689 100644 --- a/libraries/audio/src/AudioInjectorOptions.h +++ b/libraries/audio/src/AudioInjectorOptions.h @@ -44,6 +44,9 @@ public: const glm::quat& getOrientation() const { return _orientation; } void setOrientation(const glm::quat& orientation) { _orientation = orientation; } + const bool isStereo() const { return _isStereo; } + void setIsStereo(const bool isStereo) { _isStereo = isStereo; } + AbstractAudioInterface* getLoopbackAudioInterface() const { return _loopbackAudioInterface; } void setLoopbackAudioInterface(AbstractAudioInterface* loopbackAudioInterface) { _loopbackAudioInterface = loopbackAudioInterface; } @@ -52,6 +55,7 @@ private: float _volume; bool _loop; glm::quat _orientation; + bool _isStereo; AbstractAudioInterface* _loopbackAudioInterface; }; diff --git a/libraries/audio/src/InjectedAudioStream.cpp b/libraries/audio/src/InjectedAudioStream.cpp index 9a757b774e..84d33c53e3 100644 --- a/libraries/audio/src/InjectedAudioStream.cpp +++ b/libraries/audio/src/InjectedAudioStream.cpp @@ -36,6 +36,8 @@ int InjectedAudioStream::parseStreamProperties(PacketType type, const QByteArray // skip the stream identifier packetStream.skipRawData(NUM_BYTES_RFC4122_UUID); + + packetStream >> _isStereo; // pull the loopback flag and set our boolean uchar shouldLoopback;