From 01867e2459b81eceee5cc0e2ec623fc3211478b6 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Mon, 24 Nov 2014 18:32:47 -0800 Subject: [PATCH 1/2] Display "--" for ping values if not yet valid --- interface/src/ui/Stats.cpp | 33 +++++++++++++++++++++++-------- libraries/networking/src/Node.cpp | 1 + 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/interface/src/ui/Stats.cpp b/interface/src/ui/Stats.cpp index e0e589b627..dd0c9f5a64 100644 --- a/interface/src/ui/Stats.cpp +++ b/interface/src/ui/Stats.cpp @@ -316,14 +316,14 @@ void Stats::display( horizontalOffset = _lastHorizontalOffset + _generalStatsWidth +1; if (Menu::getInstance()->isOptionChecked(MenuOption::TestPing)) { - int pingAudio = 0, pingAvatar = 0, pingVoxel = 0, pingVoxelMax = 0; + int pingAudio = -1, pingAvatar = -1, pingVoxel = -1, pingVoxelMax = -1; NodeList* nodeList = NodeList::getInstance(); SharedNodePointer audioMixerNode = nodeList->soloNodeOfType(NodeType::AudioMixer); SharedNodePointer avatarMixerNode = nodeList->soloNodeOfType(NodeType::AvatarMixer); - pingAudio = audioMixerNode ? audioMixerNode->getPingMs() : 0; - pingAvatar = avatarMixerNode ? avatarMixerNode->getPingMs() : 0; + pingAudio = audioMixerNode ? audioMixerNode->getPingMs() : -1; + pingAvatar = avatarMixerNode ? avatarMixerNode->getPingMs() : -1; // Now handle voxel servers, since there could be more than one, we average their ping times unsigned long totalPingVoxel = 0; @@ -354,12 +354,25 @@ void Stats::display( char audioPing[30]; - sprintf(audioPing, "Audio ping: %d", pingAudio); - + if (pingAudio >= 0) { + sprintf(audioPing, "Audio ping: %d", pingAudio); + } else { + sprintf(audioPing, "Audio ping: --"); + } + char avatarPing[30]; - sprintf(avatarPing, "Avatar ping: %d", pingAvatar); + if (pingAvatar >= 0) { + sprintf(avatarPing, "Avatar ping: %d", pingAvatar); + } else { + sprintf(avatarPing, "Avatar ping: --"); + } + char voxelAvgPing[30]; - sprintf(voxelAvgPing, "Voxel avg ping: %d", pingVoxel); + if (pingVoxel >= 0) { + sprintf(voxelAvgPing, "Voxel avg ping: %d", pingVoxel); + } else { + sprintf(voxelAvgPing, "Voxel avg ping: --"); + } verticalOffset += STATS_PELS_PER_LINE; drawText(horizontalOffset, verticalOffset, scale, rotation, font, audioPing, color); @@ -370,7 +383,11 @@ void Stats::display( if (_expanded) { char voxelMaxPing[30]; - sprintf(voxelMaxPing, "Voxel max ping: %d", pingVoxelMax); + if (pingVoxel >= 0) { // Average is only meaningful if pingVoxel is valid. + sprintf(voxelMaxPing, "Voxel max ping: %d", pingVoxelMax); + } else { + sprintf(voxelMaxPing, "Voxel max ping: --"); + } verticalOffset += STATS_PELS_PER_LINE; drawText(horizontalOffset, verticalOffset, scale, rotation, font, voxelMaxPing, color); diff --git a/libraries/networking/src/Node.cpp b/libraries/networking/src/Node.cpp index c2b35d3b7d..be03ba9350 100644 --- a/libraries/networking/src/Node.cpp +++ b/libraries/networking/src/Node.cpp @@ -52,6 +52,7 @@ Node::Node(const QUuid& uuid, NodeType_t type, const HifiSockAddr& publicSocket, _bytesReceivedMovingAverage(NULL), _linkedData(NULL), _isAlive(true), + _pingMs(-1), // "Uninitialized" _clockSkewUsec(0), _mutex(), _clockSkewMovingPercentile(30, 0.8f) // moving 80th percentile of 30 samples From 732ad8f9933f9eb2d8b50037ab3a6ecea244e95e Mon Sep 17 00:00:00 2001 From: David Rowe Date: Mon, 24 Nov 2014 18:33:10 -0800 Subject: [PATCH 2/2] Use valid font for Windows so that '-'s are displayed --- interface/src/Util.cpp | 3 ++- interface/src/ui/BandwidthMeter.cpp | 2 +- interface/src/ui/TextRenderer.h | 6 ++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/interface/src/Util.cpp b/interface/src/Util.cpp index c2e9a2d7e3..c4f2ec8468 100644 --- a/interface/src/Util.cpp +++ b/interface/src/Util.cpp @@ -100,7 +100,8 @@ static TextRenderer* textRenderer(int mono) { static TextRenderer* monoRenderer = TextRenderer::getInstance(MONO_FONT_FAMILY); static TextRenderer* proportionalRenderer = TextRenderer::getInstance(SANS_FONT_FAMILY, -1, -1, false, TextRenderer::SHADOW_EFFECT); - static TextRenderer* inconsolataRenderer = TextRenderer::getInstance(INCONSOLATA_FONT_FAMILY, -1, QFont::Bold, false); + static TextRenderer* inconsolataRenderer = TextRenderer::getInstance(INCONSOLATA_FONT_FAMILY, -1, INCONSOLATA_FONT_WEIGHT, + false); switch (mono) { case 1: return monoRenderer; diff --git a/interface/src/ui/BandwidthMeter.cpp b/interface/src/ui/BandwidthMeter.cpp index 327f266106..a0a8129229 100644 --- a/interface/src/ui/BandwidthMeter.cpp +++ b/interface/src/ui/BandwidthMeter.cpp @@ -50,7 +50,7 @@ BandwidthMeter::ChannelInfo BandwidthMeter::_CHANNELS[] = { }; BandwidthMeter::BandwidthMeter() : - _textRenderer(TextRenderer::getInstance(INCONSOLATA_FONT_FAMILY, -1, QFont::Bold, false)), + _textRenderer(TextRenderer::getInstance(INCONSOLATA_FONT_FAMILY, -1, INCONSOLATA_FONT_WEIGHT, false)), _scaleMaxIndex(INITIAL_SCALE_MAXIMUM_INDEX) { _channels = static_cast( malloc(sizeof(_CHANNELS)) ); diff --git a/interface/src/ui/TextRenderer.h b/interface/src/ui/TextRenderer.h index 9afb885e35..2ffd8b24b7 100644 --- a/interface/src/ui/TextRenderer.h +++ b/interface/src/ui/TextRenderer.h @@ -35,7 +35,13 @@ const char SOLID_BLOCK_CHAR = 127; #define MONO_FONT_FAMILY "Courier" // the Inconsolata font family +#ifdef Q_OS_WIN +#define INCONSOLATA_FONT_FAMILY "Fixedsys" +#define INCONSOLATA_FONT_WEIGHT QFont::Normal +#else #define INCONSOLATA_FONT_FAMILY "Inconsolata" +#define INCONSOLATA_FONT_WEIGHT QFont::Bold +#endif class Glyph;