aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-03-26 17:54:44 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-03-26 17:54:44 -0700
commitca18402ba127f6d41d623170ab566a561d51e376 (patch)
treeb3483fb91ce5a3f32c0b5544c47f2ab2cf421029
parentb0e285503b7e11c3d016cb57744c61562fb9c567 (diff)
show status messages for decompressing and clear status on run
-rwxr-xr-xemcc11
-rw-r--r--src/postamble.js4
-rw-r--r--src/shell.html6
3 files changed, 19 insertions, 2 deletions
diff --git a/emcc b/emcc
index 5de3da7c..ee338f00 100755
--- a/emcc
+++ b/emcc
@@ -1071,14 +1071,25 @@ try:
decoding = '''
var decompressWorker = new Worker('decompress.js');
var decompressCallbacks = [];
+ var decompressions = 0;
Module["decompress"] = function(data, callback) {
var id = decompressCallbacks.length;
decompressCallbacks.push(callback);
decompressWorker.postMessage({ data: data, id: id });
+ if (Module['setStatus']) {
+ decompressions++;
+ Module['setStatus']('Decompressing...');
+ }
};
decompressWorker.onmessage = function(event) {
decompressCallbacks[event.data.id](event.data.data);
decompressCallbacks[event.data.id] = null;
+ if (Module['setStatus']) {
+ decompressions--;
+ if (decompressions == 0) {
+ Module['setStatus']('');
+ }
+ }
};
var compiledCodeXHR = new XMLHttpRequest();
compiledCodeXHR.open('GET', '%s', true);
diff --git a/src/postamble.js b/src/postamble.js
index 62966d61..b14a31a1 100644
--- a/src/postamble.js
+++ b/src/postamble.js
@@ -32,6 +32,10 @@ Module.callMain = function callMain(args) {
function run(args) {
args = args || Module['arguments'];
+ if (Module['setStatus']) {
+ Module['setStatus'](''); // clear the status from "Downloading.." etc.
+ }
+
if (Module['preRun']) {
Module['preRun']();
}
diff --git a/src/shell.html b/src/shell.html
index 9aa73e83..436ba37e 100644
--- a/src/shell.html
+++ b/src/shell.html
@@ -27,11 +27,13 @@
};
})(),
canvas: document.getElementById('canvas'),
+ setStatus: function(text) {
+ document.getElementById('status').innerHTML = text;
+ },
totalDependencies: 0,
monitorRunDependencies: function(left) {
this.totalDependencies = Math.max(this.totalDependencies, left);
- document.getElementById('status').innerHTML = left ? 'Downloading files: ' + (this.totalDependencies-left) + '/' + this.totalDependencies :
- 'All downloads complete.';
+ Module.setStatus(left ? 'Downloading: ' + (this.totalDependencies-left) + '/' + this.totalDependencies : 'All downloads complete.');
}
};