OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @fileoverview | 6 * @fileoverview |
7 * Module to support debug overlay window with connection stats. | 7 * Module to support debug overlay window with connection stats. |
8 */ | 8 */ |
9 | 9 |
10 'use strict'; | 10 'use strict'; |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 */ | 56 */ |
57 function formatStatNumber(value, units) { | 57 function formatStatNumber(value, units) { |
58 if (value != undefined) { | 58 if (value != undefined) { |
59 return value.toFixed(2) + ' ' + units; | 59 return value.toFixed(2) + ' ' + units; |
60 } else { | 60 } else { |
61 return "n/a"; | 61 return "n/a"; |
62 } | 62 } |
63 } | 63 } |
64 | 64 |
65 var statistics = document.getElementById('statistics'); | 65 var statistics = document.getElementById('statistics'); |
66 this.statsElement.innerText = ( | 66 var statsString = ( |
67 'Bandwidth: ' + formatStatNumber(videoBandwidth, units) + | 67 'Bandwidth: ' + formatStatNumber(videoBandwidth, units) + |
68 ', Frame Rate: ' + formatStatNumber(stats.videoFrameRate, 'fps') + | 68 ', Frame Rate: ' + formatStatNumber(stats.videoFrameRate, 'fps') + |
69 ', Capture: ' + formatStatNumber(stats.captureLatency, 'ms') + | 69 ', Capture: ' + formatStatNumber(stats.captureLatency, 'ms') + |
70 ', Encode: ' + formatStatNumber(stats.encodeLatency, 'ms') + | 70 ', Encode: ' + formatStatNumber(stats.encodeLatency, 'ms') + |
71 ', Decode: ' + formatStatNumber(stats.decodeLatency, 'ms') + | 71 ', Decode: ' + formatStatNumber(stats.decodeLatency, 'ms') + |
72 ', Render: ' + formatStatNumber(stats.renderLatency, 'ms') + | 72 ', Render: ' + formatStatNumber(stats.renderLatency, 'ms') + |
73 ', Latency: ' + formatStatNumber(stats.roundtripLatency, 'ms')); | 73 ', Latency: ' + formatStatNumber(stats.roundtripLatency, 'ms')); |
| 74 var channelType = ''; |
| 75 var allChannelTypesMatch = true; |
| 76 var channelTypesString = ''; |
| 77 for (var channel in stats.channelTypes) { |
| 78 if (channelType == '') { |
| 79 channelType = stats.channelTypes[channel]; |
| 80 } else if (stats.channelTypes[channel] != channelType) { |
| 81 allChannelTypesMatch = false; |
| 82 } |
| 83 channelTypesString += ', ' + channel + ': ' + stats.channelTypes[channel]; |
| 84 } |
| 85 if (allChannelTypesMatch) { |
| 86 statsString += ', connection: ' + channelType; |
| 87 } else { |
| 88 statsString += channelTypesString; |
| 89 } |
| 90 this.statsElement.innerText = statsString; |
74 }; | 91 }; |
75 | 92 |
76 /** | 93 /** |
77 * Check for the debug toggle hot-key. | 94 * Check for the debug toggle hot-key. |
78 * | 95 * |
79 * @param {Event} event The keyboard event. | 96 * @param {Event} event The keyboard event. |
80 * @return {void} Nothing. | 97 * @return {void} Nothing. |
81 */ | 98 */ |
82 remoting.ConnectionStats.onKeydown = function(event) { | 99 remoting.ConnectionStats.onKeydown = function(event) { |
83 var element = /** @type {Element} */ (event.target); | 100 var element = /** @type {Element} */ (event.target); |
84 if (element.tagName == 'INPUT' || element.tagName == 'TEXTAREA') { | 101 if (element.tagName == 'INPUT' || element.tagName == 'TEXTAREA') { |
85 return; | 102 return; |
86 } | 103 } |
87 if (String.fromCharCode(event.which) == 'D') { | 104 if (String.fromCharCode(event.which) == 'D') { |
88 remoting.stats.toggle(); | 105 remoting.stats.toggle(); |
89 } | 106 } |
90 }; | 107 }; |
91 | 108 |
92 /** @type {remoting.ConnectionStats} */ | 109 /** @type {remoting.ConnectionStats} */ |
93 remoting.stats = null; | 110 remoting.stats = null; |
OLD | NEW |