Support for sync instruction
authorMichael Jumper <zhangmaike@users.sourceforge.net>
Sat, 12 Mar 2011 03:43:13 +0000 (19:43 -0800)
committerMichael Jumper <zhangmaike@users.sourceforge.net>
Sat, 12 Mar 2011 03:43:13 +0000 (19:43 -0800)
src/main/resources/guacamole.js

index 0d35ead..e5956d8 100644 (file)
@@ -307,7 +307,38 @@ function GuacamoleClient(display, tunnel) {
             };
             image.src = "data:image/png;base64," + data
 
-        }
+        },
+
+        "sync": function(parameters) {
+
+            var timestamp = parameters[0];
+
+            // When all layers have finished rendering all instructions
+            // UP TO THIS POINT IN TIME, send sync response.
+
+            var layersToSync = 0;
+            function syncLayer() {
+
+                layersToSync--;
+
+                // Send sync response when layers are finished
+                if (layersToSync == 0)
+                    tunnel.sendMessage("sync:" + timestamp + ";");
+
+            }
+
+            // Count active layers and install sync tracking hook
+            for (var i=0; i<layers.length; i++) {
+
+                var layer = layers[i];
+                if (layer) {
+                    layersToSync++;
+                    layer.sync(syncLayer);
+                }
+
+            }
+
+        },
       
     };