add Menu option to toggle Avatar receive stats

This commit is contained in:
Stephen Birarda 2015-04-28 10:13:18 -07:00
parent f2dcacffd0
commit f9a25d7089
4 changed files with 23 additions and 12 deletions

View file

@ -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<AvatarManager>();
addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::AvatarReceiveStats, 0, false,
avatarManager.data(), SLOT(setShouldShowReceiveStats(bool)));
addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::RenderSkeletonCollisionShapes);
addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::RenderHeadCollisionShapes);

View file

@ -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";

View file

@ -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<AvatarManager>()->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();

View file

@ -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<AvatarManager::LocalLight>& localLights);
Q_INVOKABLE QVector<AvatarManager::LocalLight> 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<AvatarManager::LocalLight> _localLights;
bool _shouldShowReceiveStats = false;
};
Q_DECLARE_METATYPE(AvatarManager::LocalLight)