]>
Commit | Line | Data |
---|---|---|
4ed717ad JM |
1 | <html> |
2 | <head> | |
67b4e987 | 3 | <title>VNC Playback</title> |
5e55378b | 4 | <link rel="stylesheet" href="../include/plain.css"> |
4ed717ad JM |
5 | </head> |
6 | <body> | |
7 | ||
b8bd88d0 JM |
8 | Iterations: <input id='iterations' style='width:50'> |
9 | Perftest:<input type='radio' id='mode1' name='mode' checked> | |
10 | Realtime:<input type='radio' id='mode2' name='mode'> | |
4ed717ad JM |
11 | |
12 | <input id='startButton' type='button' value='Start' style='width:100px' | |
13 | onclick="start();" disabled> | |
14 | ||
15 | <br><br> | |
16 | ||
b8bd88d0 JM |
17 | Results:<br> |
18 | <textarea id="messages" style="font-size: 9;" cols=80 rows=25></textarea> | |
19 | ||
20 | <br><br> | |
21 | ||
4ed717ad JM |
22 | <div id="VNC_screen"> |
23 | <div id="VNC_status_bar" class="VNC_status_bar" style="margin-top: 0px;"> | |
24 | <table border=0 width=100%><tr> | |
25 | <td><div id="VNC_status">Loading</div></td> | |
26 | </tr></table> | |
27 | </div> | |
28 | <canvas id="VNC_canvas" width="640px" height="20px"> | |
29 | Canvas not supported. | |
30 | </canvas> | |
31 | </div> | |
32 | ||
4ed717ad JM |
33 | </body> |
34 | ||
35 | <!-- | |
36 | <script type='text/javascript' | |
37 | src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script> | |
38 | --> | |
39 | ||
5e55378b JM |
40 | <script type="text/javascript"> |
41 | var INCLUDE_URI= "../include/"; | |
42 | </script> | |
43 | <script src="../include/vnc.js"></script> | |
44 | <script src="../include/playback.js"></script> | |
4ed717ad JM |
45 | |
46 | <script> | |
b8bd88d0 | 47 | var fname, start_time; |
4ed717ad JM |
48 | |
49 | function message(str) { | |
50 | console.log(str); | |
e4671910 | 51 | var cell = $D('messages'); |
4ed717ad JM |
52 | cell.innerHTML += str + "\n"; |
53 | cell.scrollTop = cell.scrollHeight; | |
54 | } | |
55 | ||
8d5d2c82 | 56 | fname = WebUtil.getQueryVar('data', null); |
4ed717ad JM |
57 | |
58 | if (fname) { | |
59 | message("Loading " + fname); | |
60 | document.write('<script src="' + fname + '"><\/script>'); | |
61 | } else { | |
62 | message("Must specify data=FOO in query string."); | |
63 | } | |
64 | ||
4ed717ad JM |
65 | updateState = function (rfb, state, oldstate, msg) { |
66 | switch (state) { | |
67 | case 'failed': | |
68 | case 'fatal': | |
2f6a1c2b | 69 | message("noVNC sent '" + state + "' state during iteration " + iteration + " frame " + frame_idx); |
4ed717ad JM |
70 | test_state = 'failed'; |
71 | break; | |
b8bd88d0 | 72 | case 'loaded': |
e4671910 | 73 | $D('startButton').disabled = false; |
4ed717ad JM |
74 | break; |
75 | } | |
76 | if (typeof msg !== 'undefined') { | |
e4671910 | 77 | $D('VNC_status').innerHTML = msg; |
4ed717ad JM |
78 | } |
79 | } | |
80 | ||
b8bd88d0 | 81 | function start() { |
e4671910 JM |
82 | $D('startButton').value = "Running"; |
83 | $D('startButton').disabled = true; | |
4ed717ad | 84 | |
e4671910 | 85 | iterations = $D('iterations').value; |
4ed717ad | 86 | iteration = 0; |
4ed717ad JM |
87 | start_time = (new Date()).getTime(); |
88 | ||
e4671910 | 89 | if ($D('mode1').checked) { |
b8bd88d0 JM |
90 | message("Starting performance playback (fullspeed) [" + iterations + " iteration(s)]"); |
91 | mode = 'perftest'; | |
92 | } else { | |
93 | message("Starting realtime playback [" + iterations + " iteration(s)]"); | |
94 | mode = 'realtime'; | |
4ed717ad JM |
95 | } |
96 | ||
b8bd88d0 | 97 | next_iteration(); |
4ed717ad JM |
98 | } |
99 | ||
b8bd88d0 JM |
100 | function finish() { |
101 | // Finished with all iterations | |
102 | var total_time, end_time = (new Date()).getTime(); | |
103 | total_time = end_time - start_time; | |
4ed717ad | 104 | |
b8bd88d0 JM |
105 | iter_time = parseInt(total_time / iterations, 10); |
106 | message(iterations + " iterations took " + total_time + "ms, " + | |
107 | iter_time + "ms per iteration"); | |
108 | rfb.get_canvas().stop(); // Shut-off event interception | |
e4671910 JM |
109 | $D('startButton').disabled = false; |
110 | $D('startButton').value = "Start"; | |
4ed717ad | 111 | |
4ed717ad JM |
112 | } |
113 | ||
114 | window.onload = function() { | |
8d5d2c82 | 115 | iterations = WebUtil.getQueryVar('iterations', 3); |
e4671910 | 116 | $D('iterations').value = iterations; |
8d5d2c82 | 117 | mode = WebUtil.getQueryVar('mode', 3); |
b8bd88d0 | 118 | if (mode === 'realtime') { |
e4671910 | 119 | $D('mode2').checked = true; |
b8bd88d0 | 120 | } else { |
e4671910 | 121 | $D('mode1').checked = true; |
b8bd88d0 | 122 | } |
4ed717ad JM |
123 | if (fname) { |
124 | message("VNC_frame_data.length: " + VNC_frame_data.length); | |
e4671910 JM |
125 | rfb = new RFB({'target': $D('VNC_canvas'), |
126 | 'updateState': updateState}); | |
4ed717ad | 127 | rfb.testMode(send_array); |
4ed717ad JM |
128 | } |
129 | } | |
130 | </script> | |
131 | </html> |