diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-03-26 17:54:44 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-03-26 17:54:44 -0700 |
commit | ca18402ba127f6d41d623170ab566a561d51e376 (patch) | |
tree | b3483fb91ce5a3f32c0b5544c47f2ab2cf421029 | |
parent | b0e285503b7e11c3d016cb57744c61562fb9c567 (diff) |
show status messages for decompressing and clear status on run
-rwxr-xr-x | emcc | 11 | ||||
-rw-r--r-- | src/postamble.js | 4 | ||||
-rw-r--r-- | src/shell.html | 6 |
3 files changed, 19 insertions, 2 deletions
@@ -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.'); } }; |