3 <title>VNC Playback
</title>
4 <link rel=
"stylesheet" href=
"include/plain.css">
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'
>
12 <input id='startButton' type='button' value='Start' style='width:
100px'
13 onclick=
"start();" disabled
>
18 <textarea id=
"messages" style=
"font-size: 9;" cols=
80 rows=
25></textarea>
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>
28 <canvas id=
"VNC_canvas" width=
"640px" height=
"20px">
36 <script type='text/javascript'
37 src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
40 <script src=
"include/vnc.js"></script>
41 <script src=
"include/playback.js"></script>
44 var fname, start_time;
46 function message(str) {
48 var cell = $('messages');
49 cell.innerHTML += str +
"\n";
50 cell.scrollTop = cell.scrollHeight;
53 fname = Util.getQueryVar('data', null);
56 message(
"Loading " + fname);
57 document.write('
<script src=
"' + fname + '"><\/script
>');
59 message(
"Must specify data=FOO in query string.");
62 updateState = function (rfb, state, oldstate, msg) {
66 message(
"noVNC sent '" + state +
"' state during iteration " + iteration +
" frame " + frame_idx);
67 test_state = 'failed';
70 $('startButton').disabled = false;
73 if (typeof msg !== 'undefined') {
74 $('VNC_status').innerHTML = msg;
79 $('startButton').value =
"Running";
80 $('startButton').disabled = true;
82 iterations = $('iterations').value;
84 start_time = (new Date()).getTime();
86 if ($('mode1').checked) {
87 message(
"Starting performance playback (fullspeed) [" + iterations +
" iteration(s)]");
90 message(
"Starting realtime playback [" + iterations +
" iteration(s)]");
98 // Finished with all iterations
99 var total_time, end_time = (new Date()).getTime();
100 total_time = end_time - start_time;
102 iter_time = parseInt(total_time / iterations,
10);
103 message(iterations +
" iterations took " + total_time +
"ms, " +
104 iter_time +
"ms per iteration");
105 rfb.get_canvas().stop(); // Shut-off event interception
106 $('startButton').disabled = false;
107 $('startButton').value =
"Start";
111 window.onload = function() {
112 iterations = Util.getQueryVar('iterations',
3);
113 $('iterations').value = iterations;
114 mode = Util.getQueryVar('mode',
3);
115 if (mode === 'realtime') {
116 $('mode2').checked = true;
118 $('mode1').checked = true;
121 message(
"VNC_frame_data.length: " + VNC_frame_data.length);
122 rfb = RFB({'target': 'VNC_canvas',
123 'updateState': updateState});
124 rfb.testMode(send_array);