From aeb273a882519ba45d43e9f40ce52cd6844f8fd3 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 16 Dec 2014 10:46:24 -0800 Subject: [PATCH] move environment mute to Audio --- interface/src/Audio.cpp | 19 +++++++++++++++++++ interface/src/Audio.h | 1 + interface/src/Menu.cpp | 29 ++--------------------------- interface/src/Menu.h | 1 - 4 files changed, 22 insertions(+), 28 deletions(-) diff --git a/interface/src/Audio.cpp b/interface/src/Audio.cpp index 101d16d3ba..d3eceabf77 100644 --- a/interface/src/Audio.cpp +++ b/interface/src/Audio.cpp @@ -992,6 +992,25 @@ void Audio::processReceivedSamples(const QByteArray& inputBuffer, QByteArray& ou } } +void Audio::sendMuteEnvironmentPacket() { + QByteArray mutePacket = byteArrayWithPopulatedHeader(PacketTypeMuteEnvironment); + QDataStream mutePacketStream(&mutePacket, QIODevice::Append); + + const float MUTE_RADIUS = 50; + + mutePacketStream.writeBytes(reinterpret_cast(&Application::getInstance()->getAvatar()->getPosition()), + sizeof(glm::vec3)); + mutePacketStream.writeBytes(reinterpret_cast(&MUTE_RADIUS), sizeof(float)); + + // grab our audio mixer from the NodeList, if it exists + SharedNodePointer audioMixer = NodeList::getInstance()->soloNodeOfType(NodeType::AudioMixer); + + if (audioMixer) { + // send off this mute packet + NodeList::getInstance()->writeDatagram(mutePacket, audioMixer); + } +} + void Audio::addReceivedAudioToStream(const QByteArray& audioByteArray) { if (_audioOutput) { // Audio output must exist and be correctly set up if we're going to process received audio diff --git a/interface/src/Audio.h b/interface/src/Audio.h index 47fe00a84c..0d6b8482a5 100644 --- a/interface/src/Audio.h +++ b/interface/src/Audio.h @@ -150,6 +150,7 @@ public slots: void addLastFrameRepeatedWithFadeToScope(int samplesPerChannel); void addStereoSamplesToScope(const QByteArray& samples); void processReceivedSamples(const QByteArray& inputBuffer, QByteArray& outputBuffer); + void sendMuteEnvironmentPacket(); virtual bool outputLocalInjector(bool isStereo, qreal volume, AudioInjector* injector); diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 45ac2ae023..f0a11a6265 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -80,7 +80,6 @@ const QString DEFAULT_FACESHIFT_HOSTNAME = "localhost"; const float DEFAULT_AVATAR_LOD_DISTANCE_MULTIPLIER = 1.0f; const int ONE_SECOND_OF_FRAMES = 60; const int FIVE_SECONDS_OF_FRAMES = 5 * ONE_SECOND_OF_FRAMES; -const float MUTE_RADIUS = 50; const QString CONSOLE_TITLE = "Scripting Console"; const float CONSOLE_WINDOW_OPACITY = 0.95f; @@ -546,8 +545,8 @@ Menu::Menu() : addActionToQMenuAndActionHash(audioDebugMenu, MenuOption::MuteEnvironment, 0, - this, - SLOT(muteEnvironment())); + appInstance->getAudio(), + SLOT(sendMuteEnvironmentPacket())); addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioSourceInject, 0, @@ -1141,30 +1140,6 @@ void Menu::toggleAddressBar() { } } -void Menu::muteEnvironment() { - int headerSize = numBytesForPacketHeaderGivenPacketType(PacketTypeMuteEnvironment); - int packetSize = headerSize + sizeof(glm::vec3) + sizeof(float); - - glm::vec3 position = Application::getInstance()->getAvatar()->getPosition(); - - char* packet = (char*)malloc(packetSize); - populatePacketHeader(packet, PacketTypeMuteEnvironment); - memcpy(packet + headerSize, &position, sizeof(glm::vec3)); - memcpy(packet + headerSize + sizeof(glm::vec3), &MUTE_RADIUS, sizeof(float)); - - QByteArray mutePacket(packet, packetSize); - - // grab our audio mixer from the NodeList, if it exists - SharedNodePointer audioMixer = NodeList::getInstance()->soloNodeOfType(NodeType::AudioMixer); - - if (audioMixer) { - // send off this mute packet - NodeList::getInstance()->writeDatagram(mutePacket, audioMixer); - } - - free(packet); -} - void Menu::changeVSync() { Application::getInstance()->setVSyncEnabled(isOptionChecked(MenuOption::RenderTargetFramerateVSyncOn)); } diff --git a/interface/src/Menu.h b/interface/src/Menu.h index e5ac80918d..28c33b9386 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -229,7 +229,6 @@ private slots: void toggleChat(); void audioMuteToggled(); void displayNameLocationResponse(const QString& errorString); - void muteEnvironment(); void changeVSync(); private: