From 1cfbfe6611d3bb134264101467a05bef2bd20b05 Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Thu, 16 Jan 2014 14:54:08 -0800 Subject: [PATCH 1/3] fix 3d mode switch on/off issue --- interface/src/Application.cpp | 5 +++++ interface/src/Application.h | 2 ++ interface/src/Menu.cpp | 5 ++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 56632d1cd9..8812a3c49d 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1474,6 +1474,11 @@ void Application::setFullscreen(bool fullscreen) { (_window->windowState() & ~Qt::WindowFullScreen)); } +void Application::setEnable3DTVMode(bool enable3DTVMode) { + resizeGL(_glWidget->width(),_glWidget->height()); +} + + void Application::setRenderVoxels(bool voxelRender) { _voxelEditSender.setShouldSend(voxelRender); if (!voxelRender) { diff --git a/interface/src/Application.h b/interface/src/Application.h index c9c7910368..7e78cced4c 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -232,6 +232,8 @@ private slots: void terminate(); void setFullscreen(bool fullscreen); + void setEnable3DTVMode(bool enable3DTVMode); + void renderThrustAtVoxel(const glm::vec3& thrust); diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 8c91bfb2af..b2583d7c51 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -232,7 +232,10 @@ Menu::Menu() : addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::FirstPerson, Qt::Key_P, true); addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Mirror, Qt::SHIFT | Qt::Key_H); addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::FullscreenMirror, Qt::Key_H); - addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Enable3DTVMode, 0, false); + addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Enable3DTVMode, 0, + false, + appInstance, + SLOT(setEnable3DTVMode(bool))); QMenu* avatarSizeMenu = viewMenu->addMenu("Avatar Size"); From 0ddf9520ddaba0efaaea0e6480243e754061e3a7 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 16 Jan 2014 14:55:03 -0800 Subject: [PATCH 2/3] if audio is muted don't loopback local audio, fixes #1561 --- interface/src/Audio.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/Audio.cpp b/interface/src/Audio.cpp index 600617b2e7..c57b057d63 100644 --- a/interface/src/Audio.cpp +++ b/interface/src/Audio.cpp @@ -297,7 +297,7 @@ void Audio::handleAudioInput() { QByteArray inputByteArray = _inputDevice->readAll(); - if (Menu::getInstance()->isOptionChecked(MenuOption::EchoLocalAudio)) { + if (Menu::getInstance()->isOptionChecked(MenuOption::EchoLocalAudio) && !_muted) { // if this person wants local loopback add that to the locally injected audio if (!_loopbackOutputDevice) { From d85616d690f78f7e1fc34ad95010168592d63dad Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 16 Jan 2014 16:14:25 -0800 Subject: [PATCH 3/3] cleaup matching with node in addOrUpdateNode --- libraries/shared/src/NodeList.cpp | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/libraries/shared/src/NodeList.cpp b/libraries/shared/src/NodeList.cpp index 7b3364b0d8..06d2bbe05b 100644 --- a/libraries/shared/src/NodeList.cpp +++ b/libraries/shared/src/NodeList.cpp @@ -674,9 +674,9 @@ void NodeList::pingPublicAndLocalSocketsForInactiveNode(Node* node) { SharedNodePointer NodeList::addOrUpdateNode(const QUuid& uuid, char nodeType, const HifiSockAddr& publicSocket, const HifiSockAddr& localSocket) { - NodeHash::iterator matchingNodeItem = _nodeHash.find(uuid); - - if (matchingNodeItem == _nodeHash.end()) { + SharedNodePointer matchingNode = _nodeHash.value(uuid); + + if (!matchingNode) { // we didn't have this node, so add them Node* newNode = new Node(uuid, nodeType, publicSocket, localSocket); SharedNodePointer newNodeSharedPointer(newNode, &QObject::deleteLater); @@ -689,29 +689,28 @@ SharedNodePointer NodeList::addOrUpdateNode(const QUuid& uuid, char nodeType, return newNodeSharedPointer; } else { - SharedNodePointer node = matchingNodeItem.value(); - QMutexLocker(&node->getMutex()); + QMutexLocker(&matchingNode->getMutex()); - if (node->getType() == NODE_TYPE_AUDIO_MIXER || - node->getType() == NODE_TYPE_VOXEL_SERVER || - node->getType() == NODE_TYPE_METAVOXEL_SERVER) { + if (matchingNode->getType() == NODE_TYPE_AUDIO_MIXER || + matchingNode->getType() == NODE_TYPE_VOXEL_SERVER || + matchingNode->getType() == NODE_TYPE_METAVOXEL_SERVER) { // until the Audio class also uses our nodeList, we need to update // the lastRecvTimeUsecs for the audio mixer so it doesn't get killed and re-added continously - node->setLastHeardMicrostamp(usecTimestampNow()); + matchingNode->setLastHeardMicrostamp(usecTimestampNow()); } // check if we need to change this node's public or local sockets - if (publicSocket != node->getPublicSocket()) { - node->setPublicSocket(publicSocket); - qDebug() << "Public socket change for node" << *node; + if (publicSocket != matchingNode->getPublicSocket()) { + matchingNode->setPublicSocket(publicSocket); + qDebug() << "Public socket change for node" << *matchingNode; } - if (localSocket != node->getLocalSocket()) { - node->setLocalSocket(localSocket); - qDebug() << "Local socket change for node" << *node; + if (localSocket != matchingNode->getLocalSocket()) { + matchingNode->setLocalSocket(localSocket); + qDebug() << "Local socket change for node" << *matchingNode; } // we had this node already, do nothing for now - return node; + return matchingNode; } }