comparison core.js @ 611:fef9f13bec0a multiple-tests-concatenation

Workaround for #1658: in order to obtain a test with zero pages, set attribute hidden='true' in the one and only page
author Giulio Moro <giuliomoro@yahoo.it>
date Sun, 13 Mar 2016 02:12:30 +0000
parents 34d8bca65edc
children cad1178196b4
comparison
equal deleted inserted replaced
610:babcc4ac48eb 611:fef9f13bec0a
1065 for (var n=0; n<waveObj.num_samples; n++) 1065 for (var n=0; n<waveObj.num_samples; n++)
1066 { 1066 {
1067 buffer_ptr[n] = waveObj.decoded_data[c][n]; 1067 buffer_ptr[n] = waveObj.decoded_data[c][n];
1068 } 1068 }
1069 } 1069 }
1070 1070
1071 delete waveObj; 1071 delete waveObj;
1072 } else { 1072 } else {
1073 audioContext.decodeAudioData(bufferObj.xmlRequest.response, function(decodedData) { 1073 audioContext.decodeAudioData(bufferObj.xmlRequest.response, function(decodedData) {
1074 bufferObj.buffer = decodedData; 1074 bufferObj.buffer = decodedData;
1075 }, function(e){ 1075 }, function(e){
1473 } 1473 }
1474 }; 1474 };
1475 1475
1476 this.exportXMLDOM = function() { 1476 this.exportXMLDOM = function() {
1477 var file = storage.document.createElement('file'); 1477 var file = storage.document.createElement('file');
1478 file.setAttribute('sampleRate',this.buffer.buffer.sampleRate); 1478 var buf;
1479 file.setAttribute('channels',this.buffer.buffer.numberOfChannels); 1479 if(typeof(this.buffer) !== "undefined"){
1480 file.setAttribute('sampleCount',this.buffer.buffer.length); 1480 buf = this.buffer.buffer;
1481 file.setAttribute('duration',this.buffer.buffer.duration); 1481 } else {
1482 buf = {};
1483 }
1484 file.setAttribute('sampleRate', buf.sampleRate);
1485 file.setAttribute('channels', buf.numberOfChannels);
1486 file.setAttribute('sampleCount', buf.length);
1487 file.setAttribute('duration', buf.duration);
1482 this.storeDOM.appendChild(file); 1488 this.storeDOM.appendChild(file);
1483 if (this.specification.type != 'outside-reference') { 1489 if (this.specification.type != 'outside-reference') {
1484 var interfaceXML = this.interfaceDOM.exportXMLDOM(this); 1490 var interfaceXML = this.interfaceDOM.exportXMLDOM(this);
1485 if (interfaceXML != null) 1491 if (interfaceXML != null)
1486 { 1492 {
2436 { 2442 {
2437 audioEngineContext.newTestPage(audioHolderObject,store); 2443 audioEngineContext.newTestPage(audioHolderObject,store);
2438 interfaceContext.commentBoxes.deleteCommentBoxes(); 2444 interfaceContext.commentBoxes.deleteCommentBoxes();
2439 interfaceContext.deleteCommentQuestions(); 2445 interfaceContext.deleteCommentQuestions();
2440 loadTest(audioHolderObject,store); 2446 loadTest(audioHolderObject,store);
2447 if(audioHolderObject.hidden === true){
2448 // work-around to have zero pages: set the attribute hidden=true and
2449 // it will automatically skip over.
2450 testState.advanceState();
2451 }
2441 }; 2452 };
2442 2453
2443 // Bounded by interface!! 2454 // Bounded by interface!!
2444 // Interface object MUST have an exportXMLDOM method which returns the various DOM levels 2455 // Interface object MUST have an exportXMLDOM method which returns the various DOM levels
2445 // For example, APE returns the slider position normalised in a <value> tag. 2456 // For example, APE returns the slider position normalised in a <value> tag.