History

Merge branch 'master' of git://github.com/highfidelity/hifi into 19644

Ryan Huffman committed 12 years ago

Commit cfb1e5a2 parents a1d5d44 e3373a498 files · +3361 −973Browse files

Showing the changes to interface/src/Menu.cpp (1 of 98 files). Show all

Unified · Split

interface/src/Menu.cpp+42−23
@@ -68,6 +68,7 @@ const float DEFAULT_FACESHIFT_EYE_DEFLECTION = 0.25f; · 67 unmodified lines
6868 const float DEFAULT_AVATAR_LOD_DISTANCE_MULTIPLIER = 1.0f;
6969 const int ONE_SECOND_OF_FRAMES = 60;
7070 const int FIVE_SECONDS_OF_FRAMES = 5 * ONE_SECOND_OF_FRAMES;
71+const float MUTE_RADIUS = 50;
7172
7273 Menu::Menu() :
7374 _actionHash(),
@@ -271,9 +272,6 @@ Menu::Menu() : · 197 unmodified lines
271272 addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Bandwidth, 0, true);
272273 addActionToQMenuAndActionHash(viewMenu, MenuOption::BandwidthDetails, 0, this, SLOT(bandwidthDetails()));
273274 addActionToQMenuAndActionHash(viewMenu, MenuOption::OctreeStats, 0, this, SLOT(octreeStatsDetails()));
274− addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::AudioScope, 0, false,
275− appInstance->getAudio(),
276− SLOT(toggleScope()));
277275
278276 QMenu* developerMenu = addMenu("Developer");
279277
@@ -291,7 +289,6 @@ Menu::Menu() : · 11 unmodified lines
291289 addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Metavoxels, 0, true);
292290 addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::BuckyBalls, 0, false);
293291 addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Particles, 0, true);
294− addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Models, 0, true);
295292 addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools, Qt::SHIFT | Qt::Key_L, this, SLOT(lodTools()));
296293
297294 QMenu* voxelOptionsMenu = developerMenu->addMenu("Voxel Options");
@@ -308,6 +305,12 @@ Menu::Menu() : · 10 unmodified lines
308305 addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DontFadeOnVoxelServerChanges);
309306 addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DisableAutoAdjustLOD);
310307
308+ QMenu* modelOptionsMenu = developerMenu->addMenu("Model Options");
309+ addCheckableActionToQMenuAndActionHash(modelOptionsMenu, MenuOption::Models, 0, true);
310+ addCheckableActionToQMenuAndActionHash(modelOptionsMenu, MenuOption::DisplayModelBounds, 0, false);
311+ addCheckableActionToQMenuAndActionHash(modelOptionsMenu, MenuOption::DisplayModelElementProxy, 0, false);
312+ addCheckableActionToQMenuAndActionHash(modelOptionsMenu, MenuOption::DisplayModelElementChildProxies, 0, false);
313+
311314 QMenu* avatarOptionsMenu = developerMenu->addMenu("Avatar Options");
312315
313316 addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::Avatars, 0, true);
@@ -370,20 +373,6 @@ Menu::Menu() : · 56 unmodified lines
370373 addCheckableActionToQMenuAndActionHash(renderDebugMenu, MenuOption::PipelineWarnings);
371374 addCheckableActionToQMenuAndActionHash(renderDebugMenu, MenuOption::SuppressShortTimings);
372375
373− addCheckableActionToQMenuAndActionHash(renderDebugMenu,
374− MenuOption::CullSharedFaces,
375− Qt::CTRL | Qt::SHIFT | Qt::Key_C,
376− false,
377− appInstance->getVoxels(),
378− SLOT(cullSharedFaces()));
379−
380− addCheckableActionToQMenuAndActionHash(renderDebugMenu,
381− MenuOption::ShowCulledSharedFaces,
382− 0,
383− false,
384− appInstance->getVoxels(),
385− SLOT(showCulledSharedFaces()));
386−
387376 QMenu* audioDebugMenu = developerMenu->addMenu("Audio Debugging Tools");
388377 addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioNoiseReduction,
389378 0,
@@ -397,13 +386,21 @@ Menu::Menu() : · 7 unmodified lines
397386 false,
398387 appInstance->getAudio(),
399388 SLOT(toggleMute()));
389+ addActionToQMenuAndActionHash(audioDebugMenu,
390+ MenuOption::MuteEnvironment,
391+ 0,
392+ this,
393+ SLOT(muteEnvironment()));
400394 addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioToneInjection,
401395 0,
402396 false,
403397 appInstance->getAudio(),
404398 SLOT(toggleToneInjection()));
399+ addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioScope, Qt::CTRL | Qt::Key_P, false,
400+ appInstance->getAudio(),
401+ SLOT(toggleScope()));
405402 addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioScopePause,
406− Qt::CTRL | Qt::Key_P,
403+ Qt::CTRL | Qt::SHIFT | Qt::Key_P ,
407404 false,
408405 appInstance->getAudio(),
409406 SLOT(toggleScopePause()));
@@ -894,7 +891,7 @@ void Menu::goToDomainDialog() { · 484 unmodified lines
894891 }
895892
896893 void Menu::goToOrientation(QString orientation) {
897− LocationManager::getInstance().goToDestination(orientation);
894+ LocationManager::getInstance().goToOrientation(orientation);
898895 }
899896
900897 bool Menu::goToDestination(QString destination) {
@@ -975,9 +972,7 @@ void Menu::goToUser(const QString& user) { · 74 unmodified lines
975972 /// Open a url, shortcutting any "hifi" scheme URLs to the local application.
976973 void Menu::openUrl(const QUrl& url) {
977974 if (url.scheme() == "hifi") {
978− QString path = url.toString(QUrl::RemoveScheme);
979− path = path.remove(QRegExp("^:?/*"));
980− goTo(path);
975+ goToURL(url.toString());
981976 } else {
982977 QDesktopServices::openUrl(url);
983978 }
@@ -1002,6 +997,30 @@ void Menu::multipleDestinationsDecision(const QJsonObject& userData, const QJson · 18 unmodified lines
1002997 disconnect(manager, &LocationManager::multipleDestinationsFound, this, &Menu::multipleDestinationsDecision);
1003998 }
1004999
1000+void Menu::muteEnvironment() {
1001+ int headerSize = numBytesForPacketHeaderGivenPacketType(PacketTypeMuteEnvironment);
1002+ int packetSize = headerSize + sizeof(glm::vec3) + sizeof(float);
1003+
1004+ glm::vec3 position = Application::getInstance()->getAvatar()->getPosition();
1005+
1006+ char* packet = (char*)malloc(packetSize);
1007+ populatePacketHeader(packet, PacketTypeMuteEnvironment);
1008+ memcpy(packet + headerSize, &position, sizeof(glm::vec3));
1009+ memcpy(packet + headerSize + sizeof(glm::vec3), &MUTE_RADIUS, sizeof(float));
1010+
1011+ QByteArray mutePacket(packet, packetSize);
1012+
1013+ // grab our audio mixer from the NodeList, if it exists
1014+ SharedNodePointer audioMixer = NodeList::getInstance()->soloNodeOfType(NodeType::AudioMixer);
1015+
1016+ if (audioMixer) {
1017+ // send off this mute packet
1018+ NodeList::getInstance()->writeDatagram(mutePacket, audioMixer);
1019+ }
1020+
1021+ free(packet);
1022+}
1023+
10051024 void Menu::goToLocation() {
10061025 MyAvatar* myAvatar = Application::getInstance()->getAvatar();
10071026 glm::vec3 avatarPos = myAvatar->getPosition();