wesnoth/utils/nacl/static/peppermount_helper.js
Mark de Wever 6c6bf6e3a2 Added the NativeClient port code.
Thanks to Evgeniy Stepanov for providing the patch.
2011-12-17 16:37:19 +00:00

76 lines
1.8 KiB
JavaScript

/*
* Copyright (c) 2011 The Native Client Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the NaCl-LICENSE file.
*/
function toArray(list) {
return Array.prototype.slice.call(list || [], 0);
}
function errorHandler(e) {
var msg = '';
switch (e.code) {
case FileError.QUOTA_EXCEEDED_ERR:
msg = 'QUOTA_EXCEEDED_ERR';
break;
case FileError.NOT_FOUND_ERR:
msg = 'NOT_FOUND_ERR';
break;
case FileError.SECURITY_ERR:
msg = 'SECURITY_ERR';
break;
case FileError.INVALID_MODIFICATION_ERR:
msg = 'INVALID_MODIFICATION_ERR';
break;
case FileError.INVALID_STATE_ERR:
msg = 'INVALID_STATE_ERR';
break;
default:
msg = 'Unknown Error';
break;
};
console.log('Error: ' + msg);
document.getElementById('wesnoth').postMessage("");
}
function listResults(entries) {
s = ''
entries.forEach(function(entry, i) {
s += entry.name;
s += '\n';
});
console.log('entries: ' + s);
document.getElementById('wesnoth').postMessage(s);
}
function readDir(dir) {
var dirReader = dir.createReader();
var entries = [];
// Call the reader.readEntries() until no more results are returned.
var readEntries = function() {
dirReader.readEntries (function(results) {
if (!results.length) {
listResults(entries.sort());
} else {
entries = entries.concat(toArray(results));
readEntries();
}
}, errorHandler);
};
readEntries(); // Start reading dirs.
}
function HandlePepperMountMessage(data) {
path = data[1];
onInitFs = function(fs) {
fs.root.getDirectory(path, {}, readDir, errorHandler);
};
window.webkitRequestFileSystem(window.PERSISTENT, 5*1024*1024 /*5MB*/, onInitFs, errorHandler);
}