# HG changeset patch # User Nicholas Jillings # Date 1456156108 0 # Node ID df2d916fd9cf50f0cb7ded848f4a534bc8215c47 # Parent ada2ec131505d22d7a9bfa5f2a483db0c3eb0ae9 Interfaces report error if audio cannot be loaded/decoded/played diff -r ada2ec131505 -r df2d916fd9cf core.css --- a/core.css Mon Feb 22 15:05:39 2016 +0000 +++ b/core.css Mon Feb 22 15:48:28 2016 +0000 @@ -151,4 +151,12 @@ height: 25px; margin-left: 5px; float: left; +} + +div.error-colour { + background-color: #FF8F8F; +} +button.error-colour { + background-color: #FF8F8F; + color: black; } \ No newline at end of file diff -r ada2ec131505 -r df2d916fd9cf core.js --- a/core.js Mon Feb 22 15:05:39 2016 +0000 +++ b/core.js Mon Feb 22 15:48:28 2016 +0000 @@ -982,6 +982,7 @@ // Create callback to decode the data asynchronously this.xmlRequest.onloadend = function() { // Use inbuilt WAVE decoder first + if (this.status == -1) {return;} var waveObj = new WAVE(); if (waveObj.open(bufferObj.xmlRequest.response) == 0) { @@ -1011,7 +1012,7 @@ console.log('URL: '+audioObj.url); errorSessionDump('Fragment '+audioObj.id+' 404 error'); } - this.status = -1; + this.parent.status = -1; } }); } @@ -1021,6 +1022,20 @@ calculateLoudness(bufferObj,"I"); } }; + + // Create callback for any error in loading + this.xmlRequest.onerror = function() { + this.parent.status = -1; + for (var i=0; i