@babylonjs/viewer
Version:
The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.
3 lines (2 loc) • 2.12 kB
JavaScript
import{A as t}from"./abstractSoundSource-BEzGJJiV.esm.min.js";import{_ as s,a as e,b as i,c as a}from"./spatialWebAudio-BbDz6Oip.esm.min.js";import"./webAudioBaseSubGraph-4eia-TfF.esm.min.js";import"./audioEngine-vi2zlmHT.esm.min.js";import"./index-yNtOWHHe.esm.min.js";class o extends t{constructor(t,s,e,i){super(t,e),this._spatial=null,this._spatialAutoUpdate=!0,this._spatialMinUpdateTime=0,this._stereo=null,"boolean"==typeof i.spatialAutoUpdate&&(this._spatialAutoUpdate=i.spatialAutoUpdate),"number"==typeof i.spatialMinUpdateTime&&(this._spatialMinUpdateTime=i.spatialMinUpdateTime),this._audioContext=this.engine._audioContext,this._webAudioNode=s,this._subGraph=new o._SubGraph(this)}async _initAsync(t){t.outBus?this.outBus=t.outBus:!1!==t.outBusAutoDefault&&(await this.engine.isReadyPromise,this.outBus=this.engine.defaultMainBus),await this._subGraph.initAsync(t),s(t)&&this._initSpatialProperty(),this.engine._addNode(this)}get _inNode(){return this._webAudioNode}get _outNode(){return this._subGraph._outNode}get spatial(){return this._spatial?this._spatial:this._initSpatialProperty()}get stereo(){return this._stereo??(this._stereo=new e(this._subGraph))}dispose(){super.dispose(),this._spatial?.dispose(),this._spatial=null,this._stereo=null,this._subGraph.dispose(),this.engine._removeNode(this)}getClassName(){return"_WebAudioSoundSource"}_connect(t){return!!super._connect(t)&&(t._inNode&&this._outNode?.connect(t._inNode),!0)}_disconnect(t){return!!super._disconnect(t)&&(t._inNode&&this._outNode?.disconnect(t._inNode),!0)}_initSpatialProperty(){return this._spatial||(this._spatial=new i(this._subGraph,this._spatialAutoUpdate,this._spatialMinUpdateTime)),this._spatial}}o._SubGraph=class extends a{get _downstreamNodes(){return this._owner._downstreamNodes??null}get _upstreamNodes(){return this._owner._upstreamNodes??null}_onSubNodesChanged(){super._onSubNodesChanged(),this._owner._inNode.disconnect(),this._owner._subGraph._inNode&&this._owner._inNode.connect(this._owner._subGraph._inNode)}};export{o as _WebAudioSoundSource};
//# sourceMappingURL=webAudioSoundSource-BSqy4CGx.esm.min.js.map