Mercurial > hg > webaudioevaluationtool
comparison ape.js @ 675:7e73d1cdcff8
Refined metric collection. Rating now correct. Slider scale now fully bounded
author | Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk> |
---|---|
date | Mon, 13 Apr 2015 10:40:37 +0100 |
parents | 436db2f29f73 |
children | e604ee22185b |
comparison
equal
deleted
inserted
replaced
674:436db2f29f73 | 675:7e73d1cdcff8 |
---|---|
519 } | 519 } |
520 | 520 |
521 function dragEnd(ev) { | 521 function dragEnd(ev) { |
522 // Function call when a div has been dropped | 522 // Function call when a div has been dropped |
523 var slider = document.getElementById('slider'); | 523 var slider = document.getElementById('slider'); |
524 if (ev.x >= 50 && ev.x < window.innerWidth-50) { | 524 var w = slider.style.width; |
525 this.style.left = (ev.x)+'px'; | 525 w = Number(w.substr(0,w.length-2)); |
526 var x = ev.x; | |
527 if (x >= 42 && x < w+42) { | |
528 this.style.left = (x)+'px'; | |
526 } else { | 529 } else { |
527 if (ev.x<50) { | 530 if (x<42) { |
528 this.style.left = '50px'; | 531 this.style.left = '42px'; |
529 } else { | 532 } else { |
530 this.style.left = window.innerWidth-50 + 'px'; | 533 this.style.left = (w+42) + 'px'; |
531 } | 534 } |
532 } | 535 } |
533 audioEngineContext.metric.sliderMoved(); | 536 audioEngineContext.metric.sliderMoved(); |
534 } | 537 } |
535 | 538 |
602 audioEngineContext.timer.stopTest(); | 605 audioEngineContext.timer.stopTest(); |
603 advanceState(); | 606 advanceState(); |
604 } | 607 } |
605 } | 608 } |
606 | 609 |
610 function convSliderPosToRate(id) | |
611 { | |
612 var w = document.getElementById('slider').style.width; | |
613 var maxPix = w.substr(0,w.length-2); | |
614 var slider = document.getElementsByClassName('track-slider')[id]; | |
615 var pix = slider.style.left; | |
616 pix = pix.substr(0,pix.length-2); | |
617 var rate = (pix-42)/maxPix; | |
618 return rate; | |
619 } | |
620 | |
607 function pageXMLSave(testId) | 621 function pageXMLSave(testId) |
608 { | 622 { |
609 // Saves a specific test page | 623 // Saves a specific test page |
610 var xmlDoc = currentTestHolder; | 624 var xmlDoc = currentTestHolder; |
611 // Check if any session wide metrics are enabled | 625 // Check if any session wide metrics are enabled |
618 metric.appendChild(testTime); | 632 metric.appendChild(testTime); |
619 } | 633 } |
620 xmlDoc.appendChild(metric); | 634 xmlDoc.appendChild(metric); |
621 var trackSliderObjects = document.getElementsByClassName('track-slider'); | 635 var trackSliderObjects = document.getElementsByClassName('track-slider'); |
622 var commentObjects = document.getElementsByClassName('comment-div'); | 636 var commentObjects = document.getElementsByClassName('comment-div'); |
623 var rateMin = 50; | |
624 var rateMax = window.innerWidth-50; | |
625 for (var i=0; i<trackSliderObjects.length; i++) | 637 for (var i=0; i<trackSliderObjects.length; i++) |
626 { | 638 { |
627 var audioElement = document.createElement('audioElement'); | 639 var audioElement = document.createElement('audioElement'); |
628 audioElement.id = currentTrackOrder[i].attributes['id'].value; | 640 audioElement.id = currentTrackOrder[i].attributes['id'].value; |
629 audioElement.url = currentTrackOrder[i].attributes['url'].value; | 641 audioElement.url = currentTrackOrder[i].attributes['url'].value; |
630 var value = document.createElement("value"); | 642 var value = document.createElement('value'); |
631 var rate = Number(trackSliderObjects[i].style.left.substr(0,trackSliderObjects[i].style.left.length-2)); | 643 value.innerHTML = convSliderPosToRate(i); |
632 rate = (rate-rateMin)/rateMax; | |
633 value.innerHTML = Math.floor(rate*100); | |
634 var comment = document.createElement("comment"); | 644 var comment = document.createElement("comment"); |
635 var question = document.createElement("question"); | 645 var question = document.createElement("question"); |
636 var response = document.createElement("response"); | 646 var response = document.createElement("response"); |
637 question.textContent = commentObjects[i].children[0].textContent; | 647 question.textContent = commentObjects[i].children[0].textContent; |
638 response.textContent = commentObjects[i].children[2].value; | 648 response.textContent = commentObjects[i].children[2].value; |