OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 var ClientRenderer = (function() { | 5 var ClientRenderer = (function() { |
6 var ClientRenderer = function() { | 6 var ClientRenderer = function() { |
7 this.playerListElement = document.getElementById('player-list'); | 7 this.playerListElement = document.getElementById('player-list'); |
8 this.propertiesTable = | 8 this.propertiesTable = |
9 document.getElementById('property-table').querySelector('tbody'); | 9 document.getElementById('property-table').querySelector('tbody'); |
10 this.logTable = document.getElementById('log').querySelector('tbody'); | 10 this.logTable = document.getElementById('log').querySelector('tbody'); |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 if (player === this.selectedPlayer) { | 115 if (player === this.selectedPlayer) { |
116 this.drawProperties_(player.properties); | 116 this.drawProperties_(player.properties); |
117 this.drawLog_(); | 117 this.drawLog_(); |
118 this.drawGraphs_(); | 118 this.drawGraphs_(); |
119 } | 119 } |
120 if (key === 'name' || key === 'url') { | 120 if (key === 'name' || key === 'url') { |
121 this.redrawPlayerList_(players); | 121 this.redrawPlayerList_(players); |
122 } | 122 } |
123 }, | 123 }, |
124 | 124 |
| 125 createVideoCaptureFormatTable: function(formats) { |
| 126 if (!formats || formats.length == 0) |
| 127 return document.createTextNode('No formats'); |
| 128 |
| 129 var table = document.createElement('table'); |
| 130 var thead = document.createElement('thead'); |
| 131 var theadRow = document.createElement('tr'); |
| 132 for (var key in formats[0]) { |
| 133 var th = document.createElement('th'); |
| 134 th.appendChild(document.createTextNode(key)); |
| 135 theadRow.appendChild(th); |
| 136 } |
| 137 thead.appendChild(theadRow); |
| 138 table.appendChild(thead); |
| 139 var tbody = document.createElement('tbody'); |
| 140 for (var i=0; i < formats.length; ++i) { |
| 141 var tr = document.createElement('tr') |
| 142 for (var key in formats[i]) { |
| 143 var td = document.createElement('td'); |
| 144 td.appendChild(document.createTextNode(formats[i][key])); |
| 145 tr.appendChild(td); |
| 146 } |
| 147 tbody.appendChild(tr); |
| 148 } |
| 149 table.appendChild(tbody); |
| 150 table.classList.add('video-capture-formats-table'); |
| 151 return table; |
| 152 }, |
| 153 |
125 redrawVideoCaptureCapabilities: function(videoCaptureCapabilities, keys) { | 154 redrawVideoCaptureCapabilities: function(videoCaptureCapabilities, keys) { |
126 var copyButtonElement = | 155 var copyButtonElement = |
127 document.getElementById('video-capture-capabilities-copy-button'); | 156 document.getElementById('video-capture-capabilities-copy-button'); |
128 copyButtonElement.onclick = function() { | 157 copyButtonElement.onclick = function() { |
129 window.prompt('Copy to clipboard: Ctrl+C, Enter', | 158 window.prompt('Copy to clipboard: Ctrl+C, Enter', |
130 JSON.stringify(videoCaptureCapabilities)) | 159 JSON.stringify(videoCaptureCapabilities)) |
131 } | 160 } |
132 | 161 |
133 var videoTableBodyElement = | 162 var videoTableBodyElement = |
134 document.getElementById('video-capture-capabilities-tbody'); | 163 document.getElementById('video-capture-capabilities-tbody'); |
135 removeChildren(videoTableBodyElement); | 164 removeChildren(videoTableBodyElement); |
136 | 165 |
137 for (var component in videoCaptureCapabilities) { | 166 for (var component in videoCaptureCapabilities) { |
138 var tableRow = document.createElement('tr'); | 167 var tableRow = document.createElement('tr'); |
139 var device = videoCaptureCapabilities[ component ]; | 168 var device = videoCaptureCapabilities[ component ]; |
140 for (var i in keys) { | 169 for (var i in keys) { |
141 var value = device[keys[i]]; | 170 var value = device[keys[i]]; |
142 var tableCell = document.createElement('td'); | 171 var tableCell = document.createElement('td'); |
143 var cellElement; | 172 var cellElement; |
144 if ((typeof value) == (typeof [])) { | 173 if ((typeof value) == (typeof [])) { |
145 cellElement = document.createElement('ul'); | 174 cellElement = this.createVideoCaptureFormatTable(value); |
146 for (var i in value) { | |
147 var format = value[i]; | |
148 var li = document.createElement('li'); | |
149 li.appendChild(document.createTextNode(format)) | |
150 cellElement.appendChild(li) | |
151 } | |
152 } else { | 175 } else { |
153 cellElement = document.createTextNode( | 176 cellElement = document.createTextNode( |
154 ((typeof value) == 'undefined') ? 'n/a' : value); | 177 ((typeof value) == 'undefined') ? 'n/a' : value); |
155 } | 178 } |
156 tableCell.appendChild(cellElement) | 179 tableCell.appendChild(cellElement) |
157 tableRow.appendChild(tableCell); | 180 tableRow.appendChild(tableCell); |
158 } | 181 } |
159 videoTableBodyElement.appendChild(tableRow); | 182 videoTableBodyElement.appendChild(tableRow); |
160 } | 183 } |
161 }, | 184 }, |
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 if (this.selectedPlayer) { | 418 if (this.selectedPlayer) { |
396 removeChildren(this.logTable); | 419 removeChildren(this.logTable); |
397 this.selectedPlayerLogIndex = 0; | 420 this.selectedPlayerLogIndex = 0; |
398 this.drawLog_(); | 421 this.drawLog_(); |
399 } | 422 } |
400 }, | 423 }, |
401 }; | 424 }; |
402 | 425 |
403 return ClientRenderer; | 426 return ClientRenderer; |
404 })(); | 427 })(); |
OLD | NEW |