X-Git-Url: http://id.pley.net/movie_parser.git/blobdiff_plain/9114b5c6a1b71b9c3007b44d69acf3b886861a4d..9f6e5972143632750cf78ecee63b173df93045a9:/AtomTester.html?ds=sidebyside diff --git a/AtomTester.html b/AtomTester.html old mode 100644 new mode 100755 index 78587ca..1ff5f4e --- a/AtomTester.html +++ b/AtomTester.html @@ -15,11 +15,13 @@ function checkForAtom(offset) { reader.onload = function(e) { - var atom = new Atom(e.target.result); - if (atom) + var atom = new Atom(); + if (atom) { + atom.parse(e.target.result, 0); readAtom(offset, atom.size); + } }; - var subset = file.slice(offset, offset + 16); + var subset = file.slice(offset, offset + 36); reader.readAsArrayBuffer(subset); } @@ -39,7 +41,6 @@ checkForAtom(0); } - function toDOMRepresentation(object) { if (object instanceof Atom) @@ -59,7 +60,13 @@ return document.createTextNode('"' + object + '"'); else if (object instanceof Date) return document.createTextNode(object.toLocaleString()); - else + else if (object instanceof Uint8Array) { + return Uint8ArrayNode(object); + } else if (object instanceof Object) + return toDOMNode(object); + else if (object === null) + return document.createTextNode('[null]'); + else return document.createTextNode(object.toString()); } @@ -80,7 +87,7 @@ continue; var div = document.createElement('div'); var dt = document.createElement('dt'); - dt.appendChild(document.createTextNode(property)); + dt.appendChild(document.createTextNode(property + ': ')); var dd = document.createElement('dd'); dd.appendChild(toDOMRepresentation(value)); div.appendChild(dt); @@ -89,6 +96,29 @@ } return output; } + + function Uint8ArrayNode(array) + { + var table = document.createElement('table'); + var width = 16; + for (var offset = 0; offset <= array.length; offset += width) { + var tr = document.createElement('tr'); + table.appendChild(tr); + + var th = document.createElement('th'); + tr.appendChild(th); + th.innerText = ('0000000' + offset.toString(16)).substr(-8) + ':'; + + for (var column = 0; column < width && offset + column < array.length; column += 2) { + var td = document.createElement('td'); + tr.appendChild(td); + td.innerText = ('00' + array[offset + column].toString(16)).substr(-2); + if (offset + column + 1 < array.length) + td.innerText += ('00' + array[offset + column + 1].toString(16)).substr(-2); + } + } + return table; + } function setup() { document.getElementById('file').addEventListener('change', onFileSelect, false); @@ -97,13 +127,14 @@