/* NAME main.js AUTHOR Trek Hopton Alan Noble LICENSE This file is Copyright (C) 2018 the Australian Ocean Lab (AusOcean) It is free software: you can redistribute it and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License in gpl.txt. If not, see [GNU licenses](http://www.gnu.org/licenses). */ function processData() { const input = event.target.files[0] const reader = new FileReader() reader.onload = event => { bytes = new Uint8Array(event.target.result) // decode adpcm to pcm var decoded = decode(Array.from(bytes)) // convert raw pcm to wav TODO(Trek): make these configurable. var wav = pcmToWav(decoded, 48000, 1, 16); // play wav data in player const blob = new Blob([Uint8Array.from(wav)], { type: 'audio/wav' }); const url = URL.createObjectURL(blob); const audio = document.getElementById('audio'); const source = document.getElementById('source'); source.src = url; audio.load(); audio.play(); } reader.onerror = error => reject(error) reader.readAsArrayBuffer(input) } // getQuery gets everything after the question mark in the URL. function getQuery() { var regex = new RegExp("\\?(.*)"); var match = regex.exec(window.location.href); if (match == null) { return ''; } else { return decodeURIComponent(match[1].replace(/\+/g, " ")); } } function load() { var url = document.getElementById('url').value; if (url == "") { url = getQuery() document.getElementById('url').value = url; } if (url[0] == '/') { url = window.location.protocol + '//' + window.location.host + url; } if (url == "") { return; } var request = new XMLHttpRequest(); request.responseType = "blob"; request.onreadystatechange = function () { if (request.readyState === XMLHttpRequest.DONE) { if (request.status === 200) { console.log("request received"); data = request.response; dataURL = URL.createObjectURL(data); var link = document.getElementById("link"); link.href = dataURL; link.download = "media.ts"; link.innerHTML = "Download"; } else { console.log('There was a problem with the request. Status: ' + request.status); } } } request.open("GET", url, true); request.send(); }