-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathworker.js
More file actions
1 lines (1 loc) · 5.88 KB
/
worker.js
File metadata and controls
1 lines (1 loc) · 5.88 KB
1
(()=>{"use strict";var e=function(e,t,o,n){return new(o||(o=Promise))((function(s,r){function a(e){try{l(n.next(e))}catch(e){r(e)}}function i(e){try{l(n.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(a,i)}l((n=n.apply(e,t||[])).next())}))},t=function(e,t){var o,n,s,r,a={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return r={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function i(r){return function(i){return function(r){if(o)throw new TypeError("Generator is already executing.");for(;a;)try{if(o=1,n&&(s=2&r[0]?n.return:r[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,r[1])).done)return s;switch(n=0,s&&(r=[2&r[0],s.value]),r[0]){case 0:case 1:s=r;break;case 4:return a.label++,{value:r[1],done:!1};case 5:a.label++,n=r[1],r=[0];continue;case 7:r=a.ops.pop(),a.trys.pop();continue;default:if(!((s=(s=a.trys).length>0&&s[s.length-1])||6!==r[0]&&2!==r[0])){a=0;continue}if(3===r[0]&&(!s||r[1]>s[0]&&r[1]<s[3])){a.label=r[1];break}if(6===r[0]&&a.label<s[1]){a.label=s[1],s=r;break}if(s&&a.label<s[2]){a.label=s[2],a.ops.push(r);break}s[2]&&a.ops.pop(),a.trys.pop();continue}r=t.call(e,a)}catch(e){r=[6,e],n=0}finally{o=s=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,i])}}};self.importScripts("pck.js");var o,n,s=0,r=function(){function e(){this.loaders=new Map,this.loader2streams=new Map,this.streams=new Map}return e.prototype.mount=function(e){var t="/tmp"+s++;FS.mkdir(t),FS.mount(WORKERFS,{files:[e]},t);var o=t+"/"+e.name;return this.loaders.set(t,new Module.Loader(o)),t},e.prototype.map=function(e,t){for(var o=[],n=0;n<e.size();++n)o.push(t(e.get(n),n,e));return o},e.prototype.meta=function(e){var t=this.loaders.get(e);return{header:{sign:t.header.sign,sizeofBlocks:t.header.sizeofBlocks},meta:{sizeOfMusicBlock:t.meta.sizeOfMusicBlock,sizeOfSfxBlock:t.meta.sizeOfSfxBlock,sizeOfTypeBlock:t.meta.sizeOfTypeBlock,sizeOfVoiceBlock:t.meta.sizeOfVoiceBlock},typeBlocks:this.map(t.typeBlocks,(function(e){return{offset:e.offset,id:e.id}})),typeNames:this.map(t.typeNames,(function(e){return e})),sfxBlocks:this.map(t.sfxBlocks,(function(e){return{offset:e.offset,index:e.index,unk:e.unk,flag:e.flag,size:e.size}})),musicBlocks:this.map(t.musicBlocks,(function(e){return{offset:e.offset,index:e.index,unk:e.unk,flag:e.flag,size:e.size}})),voiceBlocks:this.map(t.voiceBlocks,(function(e){return{id:e.id,sound:{offset:e.sound.offset,index:e.sound.index,unk:e.sound.unk,flag:e.sound.flag,size:e.sound.size}}}))}},e.prototype.unmount=function(e){var t=this;this.loaders.delete(e);var o=this.loader2streams.get(e);o&&o.forEach((function(e){return t.close(e)})),this.loader2streams.delete(e),FS.unmount(e)},e.prototype.getSoundBlock=function(e,t,o,n){switch(o){case"music":return e.musicBlocks.get(n);case"sfx":return e.sfxBlocks.get(n);case"voice":return e.voiceBlocks.get(n).sound}return null},e.prototype.open=function(e,t,o){var n=e+t+o;if(this.streams.has(n))return n;var s=this.loaders.get(e),r=this.getSoundBlock(s,e,t,o),a=new Module.SoundStream(s,r,"sfx"==t?".bnk":".wav");this.streams.set(n,a);var i=this.loader2streams.get(e)||[];return i.push(n),this.loader2streams.set(e,i),n},e.prototype.close=function(e){this.streams.delete(e)},e.prototype.get=function(e){if(this.streams.has(e))return this.streams.get(e);throw new Error("stream '"+e+"' not found")},e.prototype.streaminfo=function(e){var t=this.get(e);return{sample_rate:t.sample_rate,channels:t.channels,frame_size:t.frame_size,loop_count:t.loop_count,loop_target:t.loop_target,codec_config:t.codec_config,codec_endian:t.codec_endian,hit_loop:t.hit_loop,loop_next_block_offset:t.loop_next_block_offset,loop_block_size:t.loop_block_size,loop_block_offset:t.loop_block_offset,loop_samples_into_block:t.loop_samples_into_block,loop_current_sample:t.loop_current_sample,next_block_offset:t.next_block_offset,current_block_samples:t.current_block_samples,current_block_size:t.current_block_size,current_block_offset:t.current_block_offset,current_sample:t.current_sample,samples_into_block:t.samples_into_block,full_block_size:t.full_block_size,allow_dual_stereo:t.allow_dual_stereo,channel_layout:t.channel_layout,stream_size:t.stream_size,num_streams:t.num_streams,stream_index:t.stream_index,interleave_last_block_size:t.interleave_last_block_size,interleave_first_skip:t.interleave_first_skip,interleave_first_block_size:t.interleave_first_block_size,interleave_block_size:t.interleave_block_size,loop_end_sample:t.loop_end_sample,loop_start_sample:t.loop_start_sample,loop_flag:t.loop_flag,num_samples:t.num_samples}},e.prototype.streaminfo_get=function(e,t){return this.get(e)[t]},e.prototype.decode=function(e,t){var o=this.get(e).decode(t);return new Int16Array(this.clone(Module.AsSampleArray(o)))},e.prototype.clone=function(e){var t=e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e:Module.AsUint8Array(e),o=new Uint8Array(t.byteLength);return o.set(ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t)),o.buffer},e.prototype.dump=function(e,t,o){var n=this.loadIdRaw(e,t,o);return n?this.clone(Module.AsUint8Array(n)):null},e.prototype.loadIdRaw=function(e,t,o){var n=this.loaders.get(e),s=null;switch(t){case"music":s=n.musicBlocks.get(o);break;case"sfx":s=n.sfxBlocks.get(o);break;case"voice":s=n.voiceBlocks.get(o).sound}return s?n.load(s):null},e}();o=self,n=new r,function(o,n){o.addEventListener("message",(function(s){return e(void 0,void 0,void 0,(function(){var e,r,a;return t(this,(function(t){switch(t.label){case 0:e={id:s.data.id,done:!1},t.label=1;case 1:return t.trys.push([1,3,,4]),r=e,[4,n(s.data.data)];case 2:return r.data=t.sent(),e.done=!0,[3,4];case 3:return a=t.sent(),e.error=a,e.done=!1,[3,4];case 4:return o.postMessage(e),[2]}}))}))}))}(o,(function(o){return e(void 0,void 0,void 0,(function(){return t(this,(function(e){return[2,n[o.name].apply(n,o.arguments)]}))}))}))})();