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
68const float DEFAULT_AVATAR_LOD_DISTANCE_MULTIPLIER = 1.0f;68const float DEFAULT_AVATAR_LOD_DISTANCE_MULTIPLIER = 1.0f;
69const int ONE_SECOND_OF_FRAMES = 60;69const int ONE_SECOND_OF_FRAMES = 60;
70const int FIVE_SECONDS_OF_FRAMES = 5 * ONE_SECOND_OF_FRAMES;70const int FIVE_SECONDS_OF_FRAMES = 5 * ONE_SECOND_OF_FRAMES;
71const float MUTE_RADIUS = 50;
71 72
72Menu::Menu() :73Menu::Menu() :
73 _actionHash(),74 _actionHash(),
@@ -271,9 +272,6 @@ Menu::Menu() : · 197 unmodified lines
271 addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Bandwidth, 0, true);272 addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Bandwidth, 0, true);
272 addActionToQMenuAndActionHash(viewMenu, MenuOption::BandwidthDetails, 0, this, SLOT(bandwidthDetails()));273 addActionToQMenuAndActionHash(viewMenu, MenuOption::BandwidthDetails, 0, this, SLOT(bandwidthDetails()));
273 addActionToQMenuAndActionHash(viewMenu, MenuOption::OctreeStats, 0, this, SLOT(octreeStatsDetails()));274 addActionToQMenuAndActionHash(viewMenu, MenuOption::OctreeStats, 0, this, SLOT(octreeStatsDetails()));
274 addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::AudioScope, 0, false,
275 appInstance->getAudio(),
276 SLOT(toggleScope()));
277 275
278 QMenu* developerMenu = addMenu("Developer");276 QMenu* developerMenu = addMenu("Developer");
279 277
@@ -291,7 +289,6 @@ Menu::Menu() : · 11 unmodified lines
291 addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Metavoxels, 0, true);289 addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Metavoxels, 0, true);
292 addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::BuckyBalls, 0, false);290 addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::BuckyBalls, 0, false);
293 addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Particles, 0, true);291 addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Particles, 0, true);
294 addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Models, 0, true);
295 addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools, Qt::SHIFT | Qt::Key_L, this, SLOT(lodTools()));292 addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools, Qt::SHIFT | Qt::Key_L, this, SLOT(lodTools()));
296 293
297 QMenu* voxelOptionsMenu = developerMenu->addMenu("Voxel Options");294 QMenu* voxelOptionsMenu = developerMenu->addMenu("Voxel Options");
@@ -308,6 +305,12 @@ Menu::Menu() : · 10 unmodified lines
308 addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DontFadeOnVoxelServerChanges);305 addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DontFadeOnVoxelServerChanges);
309 addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DisableAutoAdjustLOD);306 addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DisableAutoAdjustLOD);
310 307
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
311 QMenu* avatarOptionsMenu = developerMenu->addMenu("Avatar Options");314 QMenu* avatarOptionsMenu = developerMenu->addMenu("Avatar Options");
312 315
313 addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::Avatars, 0, true);316 addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::Avatars, 0, true);
@@ -370,20 +373,6 @@ Menu::Menu() : · 56 unmodified lines
370 addCheckableActionToQMenuAndActionHash(renderDebugMenu, MenuOption::PipelineWarnings);373 addCheckableActionToQMenuAndActionHash(renderDebugMenu, MenuOption::PipelineWarnings);
371 addCheckableActionToQMenuAndActionHash(renderDebugMenu, MenuOption::SuppressShortTimings);374 addCheckableActionToQMenuAndActionHash(renderDebugMenu, MenuOption::SuppressShortTimings);
372 375
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
387 QMenu* audioDebugMenu = developerMenu->addMenu("Audio Debugging Tools");376 QMenu* audioDebugMenu = developerMenu->addMenu("Audio Debugging Tools");
388 addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioNoiseReduction,377 addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioNoiseReduction,
389 0,378 0,
@@ -397,13 +386,21 @@ Menu::Menu() : · 7 unmodified lines
397 false,386 false,
398 appInstance->getAudio(),387 appInstance->getAudio(),
399 SLOT(toggleMute()));388 SLOT(toggleMute()));
389 addActionToQMenuAndActionHash(audioDebugMenu,
390 MenuOption::MuteEnvironment,
391 0,
392 this,
393 SLOT(muteEnvironment()));
400 addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioToneInjection,394 addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioToneInjection,
401 0,395 0,
402 false,396 false,
403 appInstance->getAudio(),397 appInstance->getAudio(),
404 SLOT(toggleToneInjection()));398 SLOT(toggleToneInjection()));
399 addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioScope, Qt::CTRL | Qt::Key_P, false,
400 appInstance->getAudio(),
401 SLOT(toggleScope()));
405 addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioScopePause,402 addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioScopePause,
406 Qt::CTRL | Qt::Key_P,403 Qt::CTRL | Qt::SHIFT | Qt::Key_P ,
407 false,404 false,
408 appInstance->getAudio(),405 appInstance->getAudio(),
409 SLOT(toggleScopePause()));406 SLOT(toggleScopePause()));
@@ -894,7 +891,7 @@ void Menu::goToDomainDialog() { · 484 unmodified lines
894}891}
895 892
896void Menu::goToOrientation(QString orientation) {893void Menu::goToOrientation(QString orientation) {
897 LocationManager::getInstance().goToDestination(orientation);894 LocationManager::getInstance().goToOrientation(orientation);
898}895}
899 896
900bool Menu::goToDestination(QString destination) {897bool Menu::goToDestination(QString destination) {
@@ -975,9 +972,7 @@ void Menu::goToUser(const QString& user) { · 74 unmodified lines
975/// Open a url, shortcutting any "hifi" scheme URLs to the local application.972/// Open a url, shortcutting any "hifi" scheme URLs to the local application.
976void Menu::openUrl(const QUrl& url) {973void Menu::openUrl(const QUrl& url) {
977 if (url.scheme() == "hifi") {974 if (url.scheme() == "hifi") {
978 QString path = url.toString(QUrl::RemoveScheme);975 goToURL(url.toString());
979 path = path.remove(QRegExp("^:?/*"));
980 goTo(path);
981 } else {976 } else {
982 QDesktopServices::openUrl(url);977 QDesktopServices::openUrl(url);
983 }978 }
@@ -1002,6 +997,30 @@ void Menu::multipleDestinationsDecision(const QJsonObject& userData, const QJson · 18 unmodified lines
1002 disconnect(manager, &LocationManager::multipleDestinationsFound, this, &Menu::multipleDestinationsDecision);997 disconnect(manager, &LocationManager::multipleDestinationsFound, this, &Menu::multipleDestinationsDecision);
1003}998}
1004 999
1000void 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
1005void Menu::goToLocation() {1024void Menu::goToLocation() {
1006 MyAvatar* myAvatar = Application::getInstance()->getAvatar();1025 MyAvatar* myAvatar = Application::getInstance()->getAvatar();
1007 glm::vec3 avatarPos = myAvatar->getPosition();1026 glm::vec3 avatarPos = myAvatar->getPosition();