From f9a25d7089483b0ff5804a058d757df80556a355 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 28 Apr 2015 10:13:18 -0700 Subject: [PATCH] add Menu option to toggle Avatar receive stats --- interface/src/Menu.cpp | 7 ++++--- interface/src/Menu.h | 1 + interface/src/avatar/Avatar.cpp | 16 +++++++++------- interface/src/avatar/AvatarManager.h | 11 +++++++++-- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 868fa9270c..23f69b5e5b 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -285,9 +285,6 @@ Menu::Menu() { addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::OffAxisProjection, 0, false); addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::TurnWithHead, 0, false); - - addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Stats, - 0); // QML Qt::Key_Slash); addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Stats); addActionToQMenuAndActionHash(viewMenu, MenuOption::Log, Qt::CTRL | Qt::SHIFT | Qt::Key_L, @@ -397,6 +394,10 @@ Menu::Menu() { QAction* ddeFiltering = addCheckableActionToQMenuAndActionHash(faceTrackingMenu, MenuOption::VelocityFilter, 0, true); ddeFiltering->setVisible(false); #endif + + auto avatarManager = DependencyManager::get(); + addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::AvatarReceiveStats, 0, false, + avatarManager.data(), SLOT(setShouldShowReceiveStats(bool))); addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::RenderSkeletonCollisionShapes); addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::RenderHeadCollisionShapes); diff --git a/interface/src/Menu.h b/interface/src/Menu.h index 5b2d1430a6..62b6ac5656 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -147,6 +147,7 @@ namespace MenuOption { const QString AudioScopeTwentyFrames = "Twenty"; const QString AudioStats = "Audio Stats"; const QString AudioStatsShowInjectedStreams = "Audio Stats Show Injected Streams"; + const QString AvatarReceiveStats = "Show Receive Stats"; const QString BandwidthDetails = "Bandwidth Details"; const QString BlueSpeechSphere = "Blue Sphere While Speaking"; const QString BookmarkLocation = "Bookmark Location"; diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index 94589623bf..05f834255c 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -713,14 +713,16 @@ void Avatar::renderDisplayName() { // optionally render timing stats for this avatar with the display name QString renderedDisplayName = _displayName; - - const float BYTES_PER_KILOBYTE = 1000.0f; - float kilobytesPerSecond = getAverageBytesReceivedPerSecond() / BYTES_PER_KILOBYTE; - renderedDisplayName += QString(" - (%1 KBps, %2 Hz)") - .arg(QString::number(kilobytesPerSecond, 'f', 2)) - .arg(getReceiveRate()); - + if (DependencyManager::get()->shouldShowReceiveStats()) { + const float BYTES_PER_KILOBYTE = 1000.0f; + float kilobytesPerSecond = getAverageBytesReceivedPerSecond() / BYTES_PER_KILOBYTE; + + renderedDisplayName += QString(" - (%1 KBps, %2 Hz)") + .arg(QString::number(kilobytesPerSecond, 'f', 2)) + .arg(getReceiveRate()); + } + QByteArray ba = _displayName.toLocal8Bit(); const char* text = ba.data(); diff --git a/interface/src/avatar/AvatarManager.h b/interface/src/avatar/AvatarManager.h index 1a833c5106..3c7f7296fe 100644 --- a/interface/src/avatar/AvatarManager.h +++ b/interface/src/avatar/AvatarManager.h @@ -40,7 +40,9 @@ public: void renderAvatars(RenderArgs::RenderMode renderMode, bool postLighting = false, bool selfAvatarOnly = false); void clearOtherAvatars(); - + + bool shouldShowReceiveStats() const { return _shouldShowReceiveStats; } + class LocalLight { public: glm::vec3 color; @@ -49,7 +51,10 @@ public: Q_INVOKABLE void setLocalLights(const QVector& localLights); Q_INVOKABLE QVector getLocalLights() const; - + +public slots: + void setShouldShowReceiveStats(bool shouldShowReceiveStats) { _shouldShowReceiveStats = shouldShowReceiveStats; } + private: AvatarManager(QObject* parent = 0); AvatarManager(const AvatarManager& other); @@ -67,6 +72,8 @@ private: quint64 _lastSendAvatarDataTime = 0; // Controls MyAvatar send data rate. QVector _localLights; + + bool _shouldShowReceiveStats = false; }; Q_DECLARE_METATYPE(AvatarManager::LocalLight)