@babylonjs/core 7.54.0 → 7.54.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/AudioV2/abstractAudio/abstractAudioBus.d.ts +2 -3
  2. package/AudioV2/abstractAudio/abstractAudioBus.js.map +1 -1
  3. package/AudioV2/abstractAudio/abstractSound.d.ts +2 -3
  4. package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
  5. package/AudioV2/abstractAudio/subNodes/spatialAudioSubNode.d.ts +1 -1
  6. package/AudioV2/abstractAudio/subNodes/spatialAudioSubNode.js.map +1 -1
  7. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.d.ts +2 -2
  8. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js +7 -7
  9. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js.map +1 -1
  10. package/AudioV2/webAudio/subNodes/stereoWebAudioSubNode.d.ts +2 -2
  11. package/AudioV2/webAudio/subNodes/stereoWebAudioSubNode.js +7 -7
  12. package/AudioV2/webAudio/subNodes/stereoWebAudioSubNode.js.map +1 -1
  13. package/AudioV2/webAudio/subNodes/volumeWebAudioSubNode.d.ts +2 -2
  14. package/AudioV2/webAudio/subNodes/volumeWebAudioSubNode.js +7 -7
  15. package/AudioV2/webAudio/subNodes/volumeWebAudioSubNode.js.map +1 -1
  16. package/AudioV2/webAudio/subNodes/webAudioAnalyzerSubNode.d.ts +1 -1
  17. package/AudioV2/webAudio/subNodes/webAudioAnalyzerSubNode.js +2 -2
  18. package/AudioV2/webAudio/subNodes/webAudioAnalyzerSubNode.js.map +1 -1
  19. package/AudioV2/webAudio/subNodes/webAudioBaseSubGraph.d.ts +3 -3
  20. package/AudioV2/webAudio/subNodes/webAudioBaseSubGraph.js +9 -9
  21. package/AudioV2/webAudio/subNodes/webAudioBaseSubGraph.js.map +1 -1
  22. package/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.d.ts +2 -2
  23. package/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.js +11 -11
  24. package/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.js.map +1 -1
  25. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js +1 -1
  26. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js.map +1 -1
  27. package/AudioV2/webAudio/webAudioBus.d.ts +6 -6
  28. package/AudioV2/webAudio/webAudioBus.js +27 -8
  29. package/AudioV2/webAudio/webAudioBus.js.map +1 -1
  30. package/AudioV2/webAudio/webAudioEngine.d.ts +7 -7
  31. package/AudioV2/webAudio/webAudioEngine.js +27 -27
  32. package/AudioV2/webAudio/webAudioEngine.js.map +1 -1
  33. package/AudioV2/webAudio/webAudioMainBus.d.ts +3 -5
  34. package/AudioV2/webAudio/webAudioMainBus.js +11 -12
  35. package/AudioV2/webAudio/webAudioMainBus.js.map +1 -1
  36. package/AudioV2/webAudio/webAudioMainOut.d.ts +1 -1
  37. package/AudioV2/webAudio/webAudioMainOut.js +2 -2
  38. package/AudioV2/webAudio/webAudioMainOut.js.map +1 -1
  39. package/AudioV2/webAudio/webAudioNode.d.ts +2 -2
  40. package/AudioV2/webAudio/webAudioNode.js.map +1 -1
  41. package/AudioV2/webAudio/webAudioStaticSound.d.ts +7 -7
  42. package/AudioV2/webAudio/webAudioStaticSound.js +27 -27
  43. package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
  44. package/AudioV2/webAudio/webAudioStreamingSound.d.ts +6 -6
  45. package/AudioV2/webAudio/webAudioStreamingSound.js +27 -27
  46. package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
  47. package/AudioV2/webAudio/webAudioUnmuteUI.js +3 -2
  48. package/AudioV2/webAudio/webAudioUnmuteUI.js.map +1 -1
  49. package/Engines/abstractEngine.js +5 -11
  50. package/Engines/abstractEngine.js.map +1 -1
  51. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js +6 -0
  52. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js.map +1 -1
  53. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js +1 -1
  54. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js.map +1 -1
  55. package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.d.ts +6 -6
  56. package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js +31 -4
  57. package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js.map +1 -1
  58. package/FlowGraph/flowGraphCoordinator.d.ts +21 -1
  59. package/FlowGraph/flowGraphCoordinator.js +51 -2
  60. package/FlowGraph/flowGraphCoordinator.js.map +1 -1
  61. package/FlowGraph/flowGraphParser.js +3 -0
  62. package/FlowGraph/flowGraphParser.js.map +1 -1
  63. package/Loading/Plugins/babylonFileLoader.js +4 -0
  64. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  65. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +4 -3
  66. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  67. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +26 -17
  68. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  69. package/Materials/Node/Blocks/Fragment/shadowMapBlock.js +8 -0
  70. package/Materials/Node/Blocks/Fragment/shadowMapBlock.js.map +1 -1
  71. package/Materials/Node/Blocks/Input/inputBlock.js +1 -1
  72. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  73. package/Materials/Node/nodeMaterial.d.ts +2 -0
  74. package/Materials/Node/nodeMaterial.js +6 -1
  75. package/Materials/Node/nodeMaterial.js.map +1 -1
  76. package/Materials/Node/nodeMaterialBlock.js +11 -2
  77. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  78. package/Materials/Node/nodeMaterialBuildState.js +41 -13
  79. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  80. package/Materials/Node/nodeMaterialBuildStateSharedData.d.ts +11 -1
  81. package/Materials/Node/nodeMaterialBuildStateSharedData.js +11 -1
  82. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  83. package/Materials/PBR/pbrBaseMaterial.js +1 -1
  84. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  85. package/Misc/sceneSerializer.js +2 -0
  86. package/Misc/sceneSerializer.js.map +1 -1
  87. package/Shaders/ShadersInclude/pbrBlockReflection.js +1 -1
  88. package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
  89. package/Shaders/imageProcessing.fragment.js +1 -1
  90. package/Shaders/imageProcessing.fragment.js.map +1 -1
  91. package/Shaders/motionBlur.fragment.js +1 -1
  92. package/Shaders/motionBlur.fragment.js.map +1 -1
  93. package/Shaders/screenSpaceReflection2.fragment.js +1 -1
  94. package/Shaders/screenSpaceReflection2.fragment.js.map +1 -1
  95. package/ShadersWGSL/imageProcessing.fragment.js +1 -1
  96. package/ShadersWGSL/imageProcessing.fragment.js.map +1 -1
  97. package/ShadersWGSL/motionBlur.fragment.js +1 -1
  98. package/ShadersWGSL/motionBlur.fragment.js.map +1 -1
  99. package/ShadersWGSL/screenSpaceReflection2.fragment.js +1 -1
  100. package/ShadersWGSL/screenSpaceReflection2.fragment.js.map +1 -1
  101. package/package.json +1 -1
  102. package/scene.d.ts +9 -2
  103. package/scene.js +9 -2
  104. package/scene.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"webAudioBaseSubGraph.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/webAudioBaseSubGraph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAE5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAG7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAEzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yDAAyD,CAAC;AAGnG,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAO7E,gBAAgB;AAChB,MAAM,OAAgB,qBAAsB,SAAQ,sBAAsB;IAItE,gBAAgB;IAChB,YAAmB,KAAyB;QACxC,KAAK,EAAE,CAAC;QAJF,aAAQ,GAAwB,IAAI,CAAC;QAM3C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,IAAI,CAAC,OAA8C;QAC5D,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAE7D,IAAI,kBAAkB,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,mBAAmB,wCAAuB,CAAC;QAC1D,CAAC;QAED,MAAM,IAAI,CAAC,mBAAmB,oCAAqB,CAAC;QAEpD,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAE5C,IAAI,kBAAkB,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC5C,CAAC;YAED,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC1C,CAAC;QAED,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,UAAU,CAAC,YAAY,EAAE,KAAK,wBAAwB,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,QAAQ,GAAI,UAAqC,CAAC,IAAI,CAAC;QAE5D,kFAAkF;QAClF,gDAAgD;QAChD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC1C,KAAK,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtD,MAAM,MAAM,GAAI,IAAI,CAAC,KAAyB,CAAC,MAAM,CAAC;gBACtD,IAAI,MAAM,EAAE,CAAC;oBACT,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClC,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAID,gBAAgB;IAChB,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,gBAAgB;IAChB,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAES,cAAc,CAAC,IAAY;QACjC,QAAQ,IAAI,EAAE,CAAC;YACX;gBACI,OAAO,gCAAgC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAChE;gBACI,OAAO,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9D;gBACI,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;IAES,kBAAkB;QACxB,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;YAC7B,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;CACJ","sourcesContent":["import type { Nullable } from \"../../../types\";\nimport type { AbstractAudioNode } from \"../../abstractAudio/abstractAudioNode\";\nimport { _AbstractAudioSubGraph } from \"../../abstractAudio/subNodes/abstractAudioSubGraph\";\nimport type { _AbstractAudioSubNode } from \"../../abstractAudio/subNodes/abstractAudioSubNode\";\nimport { _GetAudioAnalyzerSubNode } from \"../../abstractAudio/subNodes/audioAnalyzerSubNode\";\nimport { AudioSubNode } from \"../../abstractAudio/subNodes/audioSubNode\";\nimport type { IVolumeAudioOptions } from \"../../abstractAudio/subNodes/volumeAudioSubNode\";\nimport { _GetVolumeAudioSubNode } from \"../../abstractAudio/subNodes/volumeAudioSubNode\";\nimport type { IAudioAnalyzerOptions } from \"../../abstractAudio/subProperties/abstractAudioAnalyzer\";\nimport { _HasAudioAnalyzerOptions } from \"../../abstractAudio/subProperties/abstractAudioAnalyzer\";\nimport type { IWebAudioInNode, IWebAudioSuperNode } from \"../webAudioNode\";\nimport type { _VolumeWebAudioSubNode } from \"./volumeWebAudioSubNode\";\nimport { _CreateVolumeAudioSubNodeAsync } from \"./volumeWebAudioSubNode\";\nimport { _CreateAudioAnalyzerSubNodeAsync } from \"./webAudioAnalyzerSubNode\";\n\n/**\n * Options for creating a WebAudioBaseSubGraph.\n */\nexport interface IWebAudioBaseSubGraphOptions extends IAudioAnalyzerOptions, IVolumeAudioOptions {}\n\n/** @internal */\nexport abstract class _WebAudioBaseSubGraph extends _AbstractAudioSubGraph {\n protected _owner: IWebAudioSuperNode;\n protected _outNode: Nullable<AudioNode> = null;\n\n /** @internal */\n public constructor(owner: IWebAudioSuperNode) {\n super();\n\n this._owner = owner;\n }\n\n /** @internal */\n public async init(options: Partial<IWebAudioBaseSubGraphOptions>): Promise<void> {\n const hasAnalyzerOptions = _HasAudioAnalyzerOptions(options);\n\n if (hasAnalyzerOptions) {\n await this.createAndAddSubNode(AudioSubNode.ANALYZER);\n }\n\n await this.createAndAddSubNode(AudioSubNode.VOLUME);\n\n await this._createSubNodePromisesResolved();\n\n if (hasAnalyzerOptions) {\n const analyzerNode = _GetAudioAnalyzerSubNode(this);\n if (!analyzerNode) {\n throw new Error(\"No analyzer subnode.\");\n }\n\n analyzerNode.setOptions(options);\n }\n\n const volumeNode = _GetVolumeAudioSubNode(this);\n if (!volumeNode) {\n throw new Error(\"No volume subnode.\");\n }\n\n volumeNode.setOptions(options);\n\n if (volumeNode.getClassName() !== \"_VolumeWebAudioSubNode\") {\n throw new Error(\"Not a WebAudio subnode.\");\n }\n\n this._outNode = (volumeNode as _VolumeWebAudioSubNode).node;\n\n // Connect the new wrapped WebAudio node to the wrapped downstream WebAudio nodes.\n // The wrapper nodes are unaware of this change.\n if (this._outNode && this._downstreamNodes) {\n const it = this._downstreamNodes.values();\n for (let next = it.next(); !next.done; next = it.next()) {\n const inNode = (next.value as IWebAudioInNode).inNode;\n if (inNode) {\n this._outNode.connect(inNode);\n }\n }\n }\n }\n\n protected abstract readonly _downstreamNodes: Nullable<Set<AbstractAudioNode>>;\n\n /** @internal */\n public get inNode(): Nullable<AudioNode> {\n return this._outNode;\n }\n\n /** @internal */\n public get outNode(): Nullable<AudioNode> {\n return this._outNode;\n }\n\n protected _createSubNode(name: string): Promise<_AbstractAudioSubNode> {\n switch (name) {\n case AudioSubNode.ANALYZER:\n return _CreateAudioAnalyzerSubNodeAsync(this._owner.engine);\n case AudioSubNode.VOLUME:\n return _CreateVolumeAudioSubNodeAsync(this._owner.engine);\n default:\n throw new Error(`Unknown subnode name: ${name}`);\n }\n }\n\n protected _onSubNodesChanged(): void {\n const analyzerNode = _GetAudioAnalyzerSubNode(this);\n const volumeNode = _GetVolumeAudioSubNode(this);\n\n if (analyzerNode && volumeNode) {\n volumeNode.connect(analyzerNode);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"webAudioBaseSubGraph.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/webAudioBaseSubGraph.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../../types\";\nimport type { AbstractAudioNode } from \"../../abstractAudio/abstractAudioNode\";\nimport { _AbstractAudioSubGraph } from \"../../abstractAudio/subNodes/abstractAudioSubGraph\";\nimport type { _AbstractAudioSubNode } from \"../../abstractAudio/subNodes/abstractAudioSubNode\";\nimport { _GetAudioAnalyzerSubNode } from \"../../abstractAudio/subNodes/audioAnalyzerSubNode\";\nimport { AudioSubNode } from \"../../abstractAudio/subNodes/audioSubNode\";\nimport type { IVolumeAudioOptions } from \"../../abstractAudio/subNodes/volumeAudioSubNode\";\nimport { _GetVolumeAudioSubNode } from \"../../abstractAudio/subNodes/volumeAudioSubNode\";\nimport type { IAudioAnalyzerOptions } from \"../../abstractAudio/subProperties/abstractAudioAnalyzer\";\nimport { _HasAudioAnalyzerOptions } from \"../../abstractAudio/subProperties/abstractAudioAnalyzer\";\nimport type { IWebAudioInNode, IWebAudioSuperNode } from \"../webAudioNode\";\nimport type { _VolumeWebAudioSubNode } from \"./volumeWebAudioSubNode\";\nimport { _CreateVolumeAudioSubNodeAsync } from \"./volumeWebAudioSubNode\";\nimport { _CreateAudioAnalyzerSubNodeAsync } from \"./webAudioAnalyzerSubNode\";\n\n/**\n * Options for creating a WebAudioBaseSubGraph.\n */\nexport interface IWebAudioBaseSubGraphOptions extends IAudioAnalyzerOptions, IVolumeAudioOptions {}\n\n/** @internal */\nexport abstract class _WebAudioBaseSubGraph extends _AbstractAudioSubGraph {\n protected _owner: IWebAudioSuperNode;\n protected _outputNode: Nullable<AudioNode> = null;\n\n /** @internal */\n public constructor(owner: IWebAudioSuperNode) {\n super();\n\n this._owner = owner;\n }\n\n /** @internal */\n public async init(options: Partial<IWebAudioBaseSubGraphOptions>): Promise<void> {\n const hasAnalyzerOptions = _HasAudioAnalyzerOptions(options);\n\n if (hasAnalyzerOptions) {\n await this.createAndAddSubNode(AudioSubNode.ANALYZER);\n }\n\n await this.createAndAddSubNode(AudioSubNode.VOLUME);\n\n await this._createSubNodePromisesResolved();\n\n if (hasAnalyzerOptions) {\n const analyzerNode = _GetAudioAnalyzerSubNode(this);\n if (!analyzerNode) {\n throw new Error(\"No analyzer subnode.\");\n }\n\n analyzerNode.setOptions(options);\n }\n\n const volumeNode = _GetVolumeAudioSubNode(this);\n if (!volumeNode) {\n throw new Error(\"No volume subnode.\");\n }\n\n volumeNode.setOptions(options);\n\n if (volumeNode.getClassName() !== \"_VolumeWebAudioSubNode\") {\n throw new Error(\"Not a WebAudio subnode.\");\n }\n\n this._outputNode = (volumeNode as _VolumeWebAudioSubNode).node;\n\n // Connect the new wrapped WebAudio node to the wrapped downstream WebAudio nodes.\n // The wrapper nodes are unaware of this change.\n if (this._outputNode && this._downstreamNodes) {\n const it = this._downstreamNodes.values();\n for (let next = it.next(); !next.done; next = it.next()) {\n const inNode = (next.value as IWebAudioInNode)._inNode;\n if (inNode) {\n this._outputNode.connect(inNode);\n }\n }\n }\n }\n\n protected abstract readonly _downstreamNodes: Nullable<Set<AbstractAudioNode>>;\n\n /** @internal */\n public get _inNode(): Nullable<AudioNode> {\n return this._outputNode;\n }\n\n /** @internal */\n public get _outNode(): Nullable<AudioNode> {\n return this._outputNode;\n }\n\n protected _createSubNode(name: string): Promise<_AbstractAudioSubNode> {\n switch (name) {\n case AudioSubNode.ANALYZER:\n return _CreateAudioAnalyzerSubNodeAsync(this._owner.engine);\n case AudioSubNode.VOLUME:\n return _CreateVolumeAudioSubNodeAsync(this._owner.engine);\n default:\n throw new Error(`Unknown subnode name: ${name}`);\n }\n }\n\n protected _onSubNodesChanged(): void {\n const analyzerNode = _GetAudioAnalyzerSubNode(this);\n const volumeNode = _GetVolumeAudioSubNode(this);\n\n if (analyzerNode && volumeNode) {\n volumeNode.connect(analyzerNode);\n }\n }\n}\n"]}
@@ -12,11 +12,11 @@ export interface IWebAudioBusAndSoundSubGraphOptions extends ISpatialAudioOption
12
12
  export declare abstract class _WebAudioBusAndSoundSubGraph extends _WebAudioBaseSubGraph {
13
13
  private _rootNode;
14
14
  protected abstract readonly _upstreamNodes: Nullable<Set<AbstractAudioNode>>;
15
- protected _inNode: Nullable<AudioNode>;
15
+ protected _inputNode: Nullable<AudioNode>;
16
16
  /** @internal */
17
17
  init(options: Partial<IWebAudioBusAndSoundSubGraphOptions>): Promise<void>;
18
18
  /** @internal */
19
- get inNode(): Nullable<AudioNode>;
19
+ get _inNode(): Nullable<AudioNode>;
20
20
  protected _createSubNode(name: string): Promise<_AbstractAudioSubNode>;
21
21
  protected _onSubNodesChanged(): void;
22
22
  }
@@ -11,7 +11,7 @@ export class _WebAudioBusAndSoundSubGraph extends _WebAudioBaseSubGraph {
11
11
  constructor() {
12
12
  super(...arguments);
13
13
  this._rootNode = null;
14
- this._inNode = null;
14
+ this._inputNode = null;
15
15
  }
16
16
  /** @internal */
17
17
  async init(options) {
@@ -33,8 +33,8 @@ export class _WebAudioBusAndSoundSubGraph extends _WebAudioBaseSubGraph {
33
33
  }
34
34
  }
35
35
  /** @internal */
36
- get inNode() {
37
- return this._inNode;
36
+ get _inNode() {
37
+ return this._inputNode;
38
38
  }
39
39
  _createSubNode(name) {
40
40
  try {
@@ -78,9 +78,9 @@ export class _WebAudioBusAndSoundSubGraph extends _WebAudioBaseSubGraph {
78
78
  }
79
79
  }
80
80
  if (spatialNode && stereoNode) {
81
- this._rootNode = new GainNode(this._owner.engine.audioContext);
82
- this._rootNode.connect(spatialNode.outNode);
83
- this._rootNode.connect(stereoNode.outNode);
81
+ this._rootNode = new GainNode(this._owner.engine._audioContext);
82
+ this._rootNode.connect(spatialNode._outNode);
83
+ this._rootNode.connect(stereoNode._outNode);
84
84
  }
85
85
  else {
86
86
  this._rootNode?.disconnect();
@@ -103,22 +103,22 @@ export class _WebAudioBusAndSoundSubGraph extends _WebAudioBaseSubGraph {
103
103
  }
104
104
  inNode = inSubNode?.node ?? null;
105
105
  }
106
- if (this._inNode !== inNode) {
106
+ if (this._inputNode !== inNode) {
107
107
  // Disconnect the wrapped upstream WebAudio nodes from the old wrapped WebAudio node.
108
108
  // The wrapper nodes are unaware of this change.
109
- if (this._inNode && this._upstreamNodes) {
109
+ if (this._inputNode && this._upstreamNodes) {
110
110
  const it = this._upstreamNodes.values();
111
111
  for (let next = it.next(); !next.done; next = it.next()) {
112
- next.value.outNode?.disconnect(this._inNode);
112
+ next.value._outNode?.disconnect(this._inputNode);
113
113
  }
114
114
  }
115
- this._inNode = inNode;
115
+ this._inputNode = inNode;
116
116
  // Connect the wrapped upstream WebAudio nodes to the new wrapped WebAudio node.
117
117
  // The wrapper nodes are unaware of this change.
118
118
  if (inNode && this._upstreamNodes) {
119
119
  const it = this._upstreamNodes.values();
120
120
  for (let next = it.next(); !next.done; next = it.next()) {
121
- next.value.outNode?.connect(inNode);
121
+ next.value._outNode?.connect(inNode);
122
122
  }
123
123
  }
124
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"webAudioBusAndSoundSubGraph.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../../types\";\nimport type { AbstractAudioNode } from \"../../abstractAudio/abstractAudioNode\";\nimport type { _AbstractAudioSubNode } from \"../../abstractAudio/subNodes/abstractAudioSubNode\";\nimport { AudioSubNode } from \"../../abstractAudio/subNodes/audioSubNode\";\nimport { _GetSpatialAudioSubNode } from \"../../abstractAudio/subNodes/spatialAudioSubNode\";\nimport { _GetStereoAudioSubNode } from \"../../abstractAudio/subNodes/stereoAudioSubNode\";\nimport type { IVolumeAudioOptions } from \"../../abstractAudio/subNodes/volumeAudioSubNode\";\nimport { _GetVolumeAudioSubNode } from \"../../abstractAudio/subNodes/volumeAudioSubNode\";\nimport type { ISpatialAudioOptions } from \"../../abstractAudio/subProperties/abstractSpatialAudio\";\nimport { _HasSpatialAudioOptions } from \"../../abstractAudio/subProperties/abstractSpatialAudio\";\nimport type { IStereoAudioOptions } from \"../../abstractAudio/subProperties/abstractStereoAudio\";\nimport { _HasStereoAudioOptions } from \"../../abstractAudio/subProperties/abstractStereoAudio\";\nimport type { IWebAudioOutNode, IWebAudioSubNode } from \"../webAudioNode\";\nimport type { _SpatialWebAudioSubNode } from \"./spatialWebAudioSubNode\";\nimport { _CreateSpatialAudioSubNodeAsync } from \"./spatialWebAudioSubNode\";\nimport type { _StereoWebAudioSubNode } from \"./stereoWebAudioSubNode\";\nimport { _CreateStereoAudioSubNodeAsync } from \"./stereoWebAudioSubNode\";\nimport type { _VolumeWebAudioSubNode } from \"./volumeWebAudioSubNode\";\nimport { _WebAudioBaseSubGraph } from \"./webAudioBaseSubGraph\";\n\n/** @internal */\nexport interface IWebAudioBusAndSoundSubGraphOptions extends ISpatialAudioOptions, IStereoAudioOptions, IVolumeAudioOptions {}\n\n/** @internal */\nexport abstract class _WebAudioBusAndSoundSubGraph extends _WebAudioBaseSubGraph {\n private _rootNode: Nullable<GainNode> = null;\n protected abstract readonly _upstreamNodes: Nullable<Set<AbstractAudioNode>>;\n\n protected _inNode: Nullable<AudioNode> = null;\n\n /** @internal */\n public override async init(options: Partial<IWebAudioBusAndSoundSubGraphOptions>): Promise<void> {\n await super.init(options);\n\n let hasSpatialOptions = false;\n let hasStereoOptions = false;\n\n if ((hasSpatialOptions = _HasSpatialAudioOptions(options))) {\n await this.createAndAddSubNode(AudioSubNode.SPATIAL);\n }\n if ((hasStereoOptions = _HasStereoAudioOptions(options))) {\n await this.createAndAddSubNode(AudioSubNode.STEREO);\n }\n\n await this._createSubNodePromisesResolved();\n\n if (hasSpatialOptions) {\n _GetSpatialAudioSubNode(this)?.setOptions(options);\n }\n if (hasStereoOptions) {\n _GetStereoAudioSubNode(this)?.setOptions(options);\n }\n }\n\n /** @internal */\n public override get inNode(): Nullable<AudioNode> {\n return this._inNode;\n }\n\n protected override _createSubNode(name: string): Promise<_AbstractAudioSubNode> {\n try {\n const node = super._createSubNode(name);\n return node;\n } catch (e) {}\n\n switch (name) {\n case AudioSubNode.SPATIAL:\n return _CreateSpatialAudioSubNodeAsync(this._owner.engine);\n case AudioSubNode.STEREO:\n return _CreateStereoAudioSubNodeAsync(this._owner.engine);\n default:\n throw new Error(`Unknown subnode name: ${name}`);\n }\n }\n\n protected override _onSubNodesChanged(): void {\n super._onSubNodesChanged();\n\n const spatialNode = _GetSpatialAudioSubNode(this);\n const stereoNode = _GetStereoAudioSubNode(this);\n const volumeNode = _GetVolumeAudioSubNode(this);\n\n if (spatialNode && spatialNode.getClassName() !== \"_SpatialWebAudioSubNode\") {\n throw new Error(\"Not a WebAudio subnode.\");\n }\n if (stereoNode && stereoNode.getClassName() !== \"_StereoWebAudioSubNode\") {\n throw new Error(\"Not a WebAudio subnode.\");\n }\n if (volumeNode && volumeNode.getClassName() !== \"_VolumeWebAudioSubNode\") {\n throw new Error(\"Not a WebAudio subnode.\");\n }\n\n if (spatialNode) {\n spatialNode.disconnectAll();\n\n if (volumeNode) {\n spatialNode.connect(volumeNode);\n }\n }\n\n if (stereoNode) {\n stereoNode.disconnectAll();\n\n if (volumeNode) {\n stereoNode.connect(volumeNode);\n }\n }\n\n if (spatialNode && stereoNode) {\n this._rootNode = new GainNode(this._owner.engine.audioContext);\n this._rootNode.connect((spatialNode as _SpatialWebAudioSubNode).outNode);\n this._rootNode.connect((stereoNode as _StereoWebAudioSubNode).outNode);\n } else {\n this._rootNode?.disconnect();\n this._rootNode = null;\n }\n\n let inSubNode: Nullable<IWebAudioSubNode> = null;\n\n let inNode: Nullable<AudioNode> = null;\n\n if (this._rootNode) {\n inNode = this._rootNode;\n } else {\n if (spatialNode) {\n inSubNode = spatialNode as _SpatialWebAudioSubNode;\n } else if (stereoNode) {\n inSubNode = stereoNode as _StereoWebAudioSubNode;\n } else if (volumeNode) {\n inSubNode = volumeNode as _VolumeWebAudioSubNode;\n }\n\n inNode = inSubNode?.node ?? null;\n }\n\n if (this._inNode !== inNode) {\n // Disconnect the wrapped upstream WebAudio nodes from the old wrapped WebAudio node.\n // The wrapper nodes are unaware of this change.\n if (this._inNode && this._upstreamNodes) {\n const it = this._upstreamNodes.values();\n for (let next = it.next(); !next.done; next = it.next()) {\n (next.value as IWebAudioOutNode).outNode?.disconnect(this._inNode);\n }\n }\n\n this._inNode = inNode;\n\n // Connect the wrapped upstream WebAudio nodes to the new wrapped WebAudio node.\n // The wrapper nodes are unaware of this change.\n if (inNode && this._upstreamNodes) {\n const it = this._upstreamNodes.values();\n for (let next = it.next(); !next.done; next = it.next()) {\n (next.value as IWebAudioOutNode).outNode?.connect(inNode);\n }\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"webAudioBusAndSoundSubGraph.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAEzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAEzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AAEjG,OAAO,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAG/F,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,gBAAgB;AAChB,MAAM,OAAgB,4BAA6B,SAAQ,qBAAqB;IAAhF;;QACY,cAAS,GAAuB,IAAI,CAAC;QAGnC,eAAU,GAAwB,IAAI,CAAC;IAiIrD,CAAC;IA/HG,gBAAgB;IACA,KAAK,CAAC,IAAI,CAAC,OAAqD;QAC5E,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1B,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,IAAI,CAAC,iBAAiB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,CAAC,mBAAmB,sCAAsB,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,CAAC,mBAAmB,oCAAqB,CAAC;QACxD,CAAC;QAED,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAE5C,IAAI,iBAAiB,EAAE,CAAC;YACpB,uBAAuB,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACnB,sBAAsB,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAED,gBAAgB;IAChB,IAAoB,OAAO;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAEkB,cAAc,CAAC,IAAY;QAC1C,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QAEd,QAAQ,IAAI,EAAE,CAAC;YACX;gBACI,OAAO,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/D;gBACI,OAAO,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9D;gBACI,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;IAEkB,kBAAkB;QACjC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAE3B,MAAM,WAAW,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,WAAW,IAAI,WAAW,CAAC,YAAY,EAAE,KAAK,yBAAyB,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,UAAU,IAAI,UAAU,CAAC,YAAY,EAAE,KAAK,wBAAwB,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,UAAU,IAAI,UAAU,CAAC,YAAY,EAAE,KAAK,wBAAwB,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YACd,WAAW,CAAC,aAAa,EAAE,CAAC;YAE5B,IAAI,UAAU,EAAE,CAAC;gBACb,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACb,UAAU,CAAC,aAAa,EAAE,CAAC;YAE3B,IAAI,UAAU,EAAE,CAAC;gBACb,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;QAED,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAChE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAE,WAAuC,CAAC,QAAQ,CAAC,CAAC;YAC1E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAE,UAAqC,CAAC,QAAQ,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,SAAS,GAA+B,IAAI,CAAC;QAEjD,IAAI,MAAM,GAAwB,IAAI,CAAC;QAEvC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,CAAC;aAAM,CAAC;YACJ,IAAI,WAAW,EAAE,CAAC;gBACd,SAAS,GAAG,WAAsC,CAAC;YACvD,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACpB,SAAS,GAAG,UAAoC,CAAC;YACrD,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACpB,SAAS,GAAG,UAAoC,CAAC;YACrD,CAAC;YAED,MAAM,GAAG,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC;QACrC,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YAC7B,qFAAqF;YACrF,gDAAgD;YAChD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzC,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gBACxC,KAAK,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;oBACrD,IAAI,CAAC,KAA0B,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC3E,CAAC;YACL,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YAEzB,gFAAgF;YAChF,gDAAgD;YAChD,IAAI,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAChC,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gBACxC,KAAK,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;oBACrD,IAAI,CAAC,KAA0B,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;CACJ","sourcesContent":["import type { Nullable } from \"../../../types\";\nimport type { AbstractAudioNode } from \"../../abstractAudio/abstractAudioNode\";\nimport type { _AbstractAudioSubNode } from \"../../abstractAudio/subNodes/abstractAudioSubNode\";\nimport { AudioSubNode } from \"../../abstractAudio/subNodes/audioSubNode\";\nimport { _GetSpatialAudioSubNode } from \"../../abstractAudio/subNodes/spatialAudioSubNode\";\nimport { _GetStereoAudioSubNode } from \"../../abstractAudio/subNodes/stereoAudioSubNode\";\nimport type { IVolumeAudioOptions } from \"../../abstractAudio/subNodes/volumeAudioSubNode\";\nimport { _GetVolumeAudioSubNode } from \"../../abstractAudio/subNodes/volumeAudioSubNode\";\nimport type { ISpatialAudioOptions } from \"../../abstractAudio/subProperties/abstractSpatialAudio\";\nimport { _HasSpatialAudioOptions } from \"../../abstractAudio/subProperties/abstractSpatialAudio\";\nimport type { IStereoAudioOptions } from \"../../abstractAudio/subProperties/abstractStereoAudio\";\nimport { _HasStereoAudioOptions } from \"../../abstractAudio/subProperties/abstractStereoAudio\";\nimport type { IWebAudioOutNode, IWebAudioSubNode } from \"../webAudioNode\";\nimport type { _SpatialWebAudioSubNode } from \"./spatialWebAudioSubNode\";\nimport { _CreateSpatialAudioSubNodeAsync } from \"./spatialWebAudioSubNode\";\nimport type { _StereoWebAudioSubNode } from \"./stereoWebAudioSubNode\";\nimport { _CreateStereoAudioSubNodeAsync } from \"./stereoWebAudioSubNode\";\nimport type { _VolumeWebAudioSubNode } from \"./volumeWebAudioSubNode\";\nimport { _WebAudioBaseSubGraph } from \"./webAudioBaseSubGraph\";\n\n/** @internal */\nexport interface IWebAudioBusAndSoundSubGraphOptions extends ISpatialAudioOptions, IStereoAudioOptions, IVolumeAudioOptions {}\n\n/** @internal */\nexport abstract class _WebAudioBusAndSoundSubGraph extends _WebAudioBaseSubGraph {\n private _rootNode: Nullable<GainNode> = null;\n protected abstract readonly _upstreamNodes: Nullable<Set<AbstractAudioNode>>;\n\n protected _inputNode: Nullable<AudioNode> = null;\n\n /** @internal */\n public override async init(options: Partial<IWebAudioBusAndSoundSubGraphOptions>): Promise<void> {\n await super.init(options);\n\n let hasSpatialOptions = false;\n let hasStereoOptions = false;\n\n if ((hasSpatialOptions = _HasSpatialAudioOptions(options))) {\n await this.createAndAddSubNode(AudioSubNode.SPATIAL);\n }\n if ((hasStereoOptions = _HasStereoAudioOptions(options))) {\n await this.createAndAddSubNode(AudioSubNode.STEREO);\n }\n\n await this._createSubNodePromisesResolved();\n\n if (hasSpatialOptions) {\n _GetSpatialAudioSubNode(this)?.setOptions(options);\n }\n if (hasStereoOptions) {\n _GetStereoAudioSubNode(this)?.setOptions(options);\n }\n }\n\n /** @internal */\n public override get _inNode(): Nullable<AudioNode> {\n return this._inputNode;\n }\n\n protected override _createSubNode(name: string): Promise<_AbstractAudioSubNode> {\n try {\n const node = super._createSubNode(name);\n return node;\n } catch (e) {}\n\n switch (name) {\n case AudioSubNode.SPATIAL:\n return _CreateSpatialAudioSubNodeAsync(this._owner.engine);\n case AudioSubNode.STEREO:\n return _CreateStereoAudioSubNodeAsync(this._owner.engine);\n default:\n throw new Error(`Unknown subnode name: ${name}`);\n }\n }\n\n protected override _onSubNodesChanged(): void {\n super._onSubNodesChanged();\n\n const spatialNode = _GetSpatialAudioSubNode(this);\n const stereoNode = _GetStereoAudioSubNode(this);\n const volumeNode = _GetVolumeAudioSubNode(this);\n\n if (spatialNode && spatialNode.getClassName() !== \"_SpatialWebAudioSubNode\") {\n throw new Error(\"Not a WebAudio subnode.\");\n }\n if (stereoNode && stereoNode.getClassName() !== \"_StereoWebAudioSubNode\") {\n throw new Error(\"Not a WebAudio subnode.\");\n }\n if (volumeNode && volumeNode.getClassName() !== \"_VolumeWebAudioSubNode\") {\n throw new Error(\"Not a WebAudio subnode.\");\n }\n\n if (spatialNode) {\n spatialNode.disconnectAll();\n\n if (volumeNode) {\n spatialNode.connect(volumeNode);\n }\n }\n\n if (stereoNode) {\n stereoNode.disconnectAll();\n\n if (volumeNode) {\n stereoNode.connect(volumeNode);\n }\n }\n\n if (spatialNode && stereoNode) {\n this._rootNode = new GainNode(this._owner.engine._audioContext);\n this._rootNode.connect((spatialNode as _SpatialWebAudioSubNode)._outNode);\n this._rootNode.connect((stereoNode as _StereoWebAudioSubNode)._outNode);\n } else {\n this._rootNode?.disconnect();\n this._rootNode = null;\n }\n\n let inSubNode: Nullable<IWebAudioSubNode> = null;\n\n let inNode: Nullable<AudioNode> = null;\n\n if (this._rootNode) {\n inNode = this._rootNode;\n } else {\n if (spatialNode) {\n inSubNode = spatialNode as _SpatialWebAudioSubNode;\n } else if (stereoNode) {\n inSubNode = stereoNode as _StereoWebAudioSubNode;\n } else if (volumeNode) {\n inSubNode = volumeNode as _VolumeWebAudioSubNode;\n }\n\n inNode = inSubNode?.node ?? null;\n }\n\n if (this._inputNode !== inNode) {\n // Disconnect the wrapped upstream WebAudio nodes from the old wrapped WebAudio node.\n // The wrapper nodes are unaware of this change.\n if (this._inputNode && this._upstreamNodes) {\n const it = this._upstreamNodes.values();\n for (let next = it.next(); !next.done; next = it.next()) {\n (next.value as IWebAudioOutNode)._outNode?.disconnect(this._inputNode);\n }\n }\n\n this._inputNode = inNode;\n\n // Connect the wrapped upstream WebAudio nodes to the new wrapped WebAudio node.\n // The wrapper nodes are unaware of this change.\n if (inNode && this._upstreamNodes) {\n const it = this._upstreamNodes.values();\n for (let next = it.next(); !next.done; next = it.next()) {\n (next.value as IWebAudioOutNode)._outNode?.connect(inNode);\n }\n }\n }\n }\n}\n"]}
@@ -27,7 +27,7 @@ class _SpatialWebAudioListener extends _SpatialAudioListener {
27
27
  /** @internal */
28
28
  this.rotationQuaternion = new Quaternion();
29
29
  this.engine = engine;
30
- this._audioContext = engine.audioContext;
30
+ this._audioContext = engine._audioContext;
31
31
  this._updaterComponent = new _SpatialWebAudioUpdaterComponent(this, autoUpdate, minUpdateTime);
32
32
  }
33
33
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"spatialWebAudioListener.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subProperties/spatialWebAudioListener.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Quaternion, Vector3 } from \"../../../Maths/math.vector\";\nimport { _SpatialAudioListener } from \"../../abstractAudio/subProperties/spatialAudioListener\";\nimport { _SpatialWebAudioUpdaterComponent } from \"../components/spatialWebAudioUpdaterComponent\";\nimport type { _WebAudioEngine } from \"../webAudioEngine\";\n\nconst TmpMatrix = Matrix.Zero();\nconst TmpQuaternion = new Quaternion();\nconst TmpVector = Vector3.Zero();\n\n/** @internal */\nexport function _CreateSpatialAudioListener(engine: _WebAudioEngine, autoUpdate: boolean, minUpdateTime: number): _SpatialAudioListener {\n return new _SpatialWebAudioListener(engine, autoUpdate, minUpdateTime);\n}\n\n/**\n * This sub property is not backed by a sub node and all properties are set directly on the audio context listener.\n *\n * @internal\n */\nclass _SpatialWebAudioListener extends _SpatialAudioListener {\n private _audioContext: AudioContext;\n private _lastPosition: Vector3 = Vector3.Zero();\n private _lastRotation: Vector3 = Vector3.Zero();\n private _lastRotationQuaternion: Quaternion = new Quaternion();\n private _updaterComponent: _SpatialWebAudioUpdaterComponent;\n\n /** @internal */\n public readonly engine: _WebAudioEngine;\n\n /** @internal */\n public readonly position: Vector3 = Vector3.Zero();\n /** @internal */\n public readonly rotation: Vector3 = Vector3.Zero();\n /** @internal */\n public readonly rotationQuaternion: Quaternion = new Quaternion();\n\n /** @internal */\n public constructor(engine: _WebAudioEngine, autoUpdate: boolean, minUpdateTime: number) {\n super();\n\n this.engine = engine;\n\n this._audioContext = engine.audioContext;\n this._updaterComponent = new _SpatialWebAudioUpdaterComponent(this, autoUpdate, minUpdateTime);\n }\n\n /** @internal */\n public get minUpdateTime(): number {\n return this._updaterComponent.minUpdateTime;\n }\n\n /** @internal */\n public set minUpdateTime(value: number) {\n this._updaterComponent.minUpdateTime = value;\n }\n\n /** @internal */\n public override dispose(): void {\n super.dispose();\n\n this._updaterComponent.dispose();\n this._updaterComponent = null!;\n }\n\n /** @internal */\n public update(): void {\n if (this.isAttached) {\n this._attacherComponent?.update();\n } else {\n this._updatePosition();\n this._updateRotation();\n }\n }\n\n /** @internal */\n public _updatePosition(): void {\n if (this._lastPosition.equalsWithEpsilon(this.position)) {\n return;\n }\n\n const listener = this._audioContext.listener;\n\n this.engine._setAudioParam(listener.positionX, this.position.x);\n this.engine._setAudioParam(listener.positionY, this.position.y);\n this.engine._setAudioParam(listener.positionZ, this.position.z);\n\n this._lastPosition.copyFrom(this.position);\n }\n\n /** @internal */\n public _updateRotation(): void {\n if (!this._lastRotationQuaternion.equalsWithEpsilon(this.rotationQuaternion)) {\n TmpQuaternion.copyFrom(this.rotationQuaternion);\n this._lastRotationQuaternion.copyFrom(this.rotationQuaternion);\n } else if (!this._lastRotation.equalsWithEpsilon(this.rotation)) {\n Quaternion.FromEulerAnglesToRef(this.rotation.x, this.rotation.y, this.rotation.z, TmpQuaternion);\n this._lastRotation.copyFrom(this.rotation);\n } else {\n return;\n }\n\n Matrix.FromQuaternionToRef(TmpQuaternion, TmpMatrix);\n const listener = this._audioContext.listener;\n\n // NB: The WebAudio API is right-handed.\n Vector3.TransformNormalToRef(Vector3.RightHandedForwardReadOnly, TmpMatrix, TmpVector);\n this.engine._setAudioParam(listener.forwardX, TmpVector.x);\n this.engine._setAudioParam(listener.forwardY, TmpVector.y);\n this.engine._setAudioParam(listener.forwardZ, TmpVector.z);\n\n Vector3.TransformNormalToRef(Vector3.Up(), TmpMatrix, TmpVector);\n this.engine._setAudioParam(listener.upX, TmpVector.x);\n this.engine._setAudioParam(listener.upY, TmpVector.y);\n this.engine._setAudioParam(listener.upZ, TmpVector.z);\n }\n}\n"]}
1
+ {"version":3,"file":"spatialWebAudioListener.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subProperties/spatialWebAudioListener.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Quaternion, Vector3 } from \"../../../Maths/math.vector\";\nimport { _SpatialAudioListener } from \"../../abstractAudio/subProperties/spatialAudioListener\";\nimport { _SpatialWebAudioUpdaterComponent } from \"../components/spatialWebAudioUpdaterComponent\";\nimport type { _WebAudioEngine } from \"../webAudioEngine\";\n\nconst TmpMatrix = Matrix.Zero();\nconst TmpQuaternion = new Quaternion();\nconst TmpVector = Vector3.Zero();\n\n/** @internal */\nexport function _CreateSpatialAudioListener(engine: _WebAudioEngine, autoUpdate: boolean, minUpdateTime: number): _SpatialAudioListener {\n return new _SpatialWebAudioListener(engine, autoUpdate, minUpdateTime);\n}\n\n/**\n * This sub property is not backed by a sub node and all properties are set directly on the audio context listener.\n *\n * @internal\n */\nclass _SpatialWebAudioListener extends _SpatialAudioListener {\n private _audioContext: AudioContext;\n private _lastPosition: Vector3 = Vector3.Zero();\n private _lastRotation: Vector3 = Vector3.Zero();\n private _lastRotationQuaternion: Quaternion = new Quaternion();\n private _updaterComponent: _SpatialWebAudioUpdaterComponent;\n\n /** @internal */\n public readonly engine: _WebAudioEngine;\n\n /** @internal */\n public readonly position: Vector3 = Vector3.Zero();\n /** @internal */\n public readonly rotation: Vector3 = Vector3.Zero();\n /** @internal */\n public readonly rotationQuaternion: Quaternion = new Quaternion();\n\n /** @internal */\n public constructor(engine: _WebAudioEngine, autoUpdate: boolean, minUpdateTime: number) {\n super();\n\n this.engine = engine;\n\n this._audioContext = engine._audioContext;\n this._updaterComponent = new _SpatialWebAudioUpdaterComponent(this, autoUpdate, minUpdateTime);\n }\n\n /** @internal */\n public get minUpdateTime(): number {\n return this._updaterComponent.minUpdateTime;\n }\n\n /** @internal */\n public set minUpdateTime(value: number) {\n this._updaterComponent.minUpdateTime = value;\n }\n\n /** @internal */\n public override dispose(): void {\n super.dispose();\n\n this._updaterComponent.dispose();\n this._updaterComponent = null!;\n }\n\n /** @internal */\n public update(): void {\n if (this.isAttached) {\n this._attacherComponent?.update();\n } else {\n this._updatePosition();\n this._updateRotation();\n }\n }\n\n /** @internal */\n public _updatePosition(): void {\n if (this._lastPosition.equalsWithEpsilon(this.position)) {\n return;\n }\n\n const listener = this._audioContext.listener;\n\n this.engine._setAudioParam(listener.positionX, this.position.x);\n this.engine._setAudioParam(listener.positionY, this.position.y);\n this.engine._setAudioParam(listener.positionZ, this.position.z);\n\n this._lastPosition.copyFrom(this.position);\n }\n\n /** @internal */\n public _updateRotation(): void {\n if (!this._lastRotationQuaternion.equalsWithEpsilon(this.rotationQuaternion)) {\n TmpQuaternion.copyFrom(this.rotationQuaternion);\n this._lastRotationQuaternion.copyFrom(this.rotationQuaternion);\n } else if (!this._lastRotation.equalsWithEpsilon(this.rotation)) {\n Quaternion.FromEulerAnglesToRef(this.rotation.x, this.rotation.y, this.rotation.z, TmpQuaternion);\n this._lastRotation.copyFrom(this.rotation);\n } else {\n return;\n }\n\n Matrix.FromQuaternionToRef(TmpQuaternion, TmpMatrix);\n const listener = this._audioContext.listener;\n\n // NB: The WebAudio API is right-handed.\n Vector3.TransformNormalToRef(Vector3.RightHandedForwardReadOnly, TmpMatrix, TmpVector);\n this.engine._setAudioParam(listener.forwardX, TmpVector.x);\n this.engine._setAudioParam(listener.forwardY, TmpVector.y);\n this.engine._setAudioParam(listener.forwardZ, TmpVector.z);\n\n Vector3.TransformNormalToRef(Vector3.Up(), TmpMatrix, TmpVector);\n this.engine._setAudioParam(listener.upX, TmpVector.x);\n this.engine._setAudioParam(listener.upY, TmpVector.y);\n this.engine._setAudioParam(listener.upZ, TmpVector.z);\n }\n}\n"]}
@@ -5,7 +5,7 @@ import type { _SpatialAudio } from "../abstractAudio/subProperties/spatialAudio"
5
5
  import { _StereoAudio } from "../abstractAudio/subProperties/stereoAudio";
6
6
  import { _WebAudioBusAndSoundSubGraph } from "./subNodes/webAudioBusAndSoundSubGraph";
7
7
  import type { _WebAudioEngine } from "./webAudioEngine";
8
- import type { IWebAudioSuperNode } from "./webAudioNode";
8
+ import type { IWebAudioInNode, IWebAudioSuperNode } from "./webAudioNode";
9
9
  /** @internal */
10
10
  export declare class _WebAudioBus extends AudioBus implements IWebAudioSuperNode {
11
11
  private _spatial;
@@ -16,23 +16,23 @@ export declare class _WebAudioBus extends AudioBus implements IWebAudioSuperNode
16
16
  /** @internal */
17
17
  readonly engine: _WebAudioEngine;
18
18
  /** @internal */
19
- readonly audioContext: AudioContext;
20
- /** @internal */
21
19
  constructor(name: string, engine: _WebAudioEngine, options: Partial<IAudioBusOptions>);
22
20
  /** @internal */
23
- init(options: Partial<IAudioBusOptions>): Promise<void>;
21
+ _init(options: Partial<IAudioBusOptions>): Promise<void>;
24
22
  /** @internal */
25
23
  dispose(): void;
26
24
  /** @internal */
27
- get inNode(): Nullable<AudioNode>;
25
+ get _inNode(): Nullable<AudioNode>;
28
26
  /** @internal */
29
- get outNode(): Nullable<AudioNode>;
27
+ get _outNode(): Nullable<AudioNode>;
30
28
  /** @internal */
31
29
  get spatial(): _SpatialAudio;
32
30
  /** @internal */
33
31
  get stereo(): _StereoAudio;
34
32
  /** @internal */
35
33
  getClassName(): string;
34
+ protected _connect(node: IWebAudioInNode): boolean;
35
+ protected _disconnect(node: IWebAudioInNode): boolean;
36
36
  private _initSpatialProperty;
37
37
  private static _SubGraph;
38
38
  }
@@ -19,10 +19,9 @@ export class _WebAudioBus extends AudioBus {
19
19
  this._spatialMinUpdateTime = options.spatialMinUpdateTime;
20
20
  }
21
21
  this._subGraph = new _WebAudioBus._SubGraph(this);
22
- this.audioContext = engine.audioContext;
23
22
  }
24
23
  /** @internal */
25
- async init(options) {
24
+ async _init(options) {
26
25
  if (options.outBus) {
27
26
  this.outBus = options.outBus;
28
27
  }
@@ -34,22 +33,22 @@ export class _WebAudioBus extends AudioBus {
34
33
  if (_HasSpatialAudioOptions(options)) {
35
34
  this._initSpatialProperty();
36
35
  }
37
- this.engine.addNode(this);
36
+ this.engine._addNode(this);
38
37
  }
39
38
  /** @internal */
40
39
  dispose() {
41
40
  super.dispose();
42
41
  this._spatial = null;
43
42
  this._stereo = null;
44
- this.engine.removeNode(this);
43
+ this.engine._removeNode(this);
45
44
  }
46
45
  /** @internal */
47
- get inNode() {
48
- return this._subGraph.inNode;
46
+ get _inNode() {
47
+ return this._subGraph._inNode;
49
48
  }
50
49
  /** @internal */
51
- get outNode() {
52
- return this._subGraph.outNode;
50
+ get _outNode() {
51
+ return this._subGraph._outNode;
53
52
  }
54
53
  /** @internal */
55
54
  get spatial() {
@@ -66,6 +65,26 @@ export class _WebAudioBus extends AudioBus {
66
65
  getClassName() {
67
66
  return "_WebAudioBus";
68
67
  }
68
+ _connect(node) {
69
+ const connected = super._connect(node);
70
+ if (!connected) {
71
+ return false;
72
+ }
73
+ if (node._inNode) {
74
+ this._outNode?.connect(node._inNode);
75
+ }
76
+ return true;
77
+ }
78
+ _disconnect(node) {
79
+ const disconnected = super._disconnect(node);
80
+ if (!disconnected) {
81
+ return false;
82
+ }
83
+ if (node._inNode) {
84
+ this._outNode?.disconnect(node._inNode);
85
+ }
86
+ return true;
87
+ }
69
88
  _initSpatialProperty() {
70
89
  if (!this._spatial) {
71
90
  this._spatial = new _SpatialWebAudio(this._subGraph, this._spatialAutoUpdate, this._spatialMinUpdateTime);
@@ -1 +1 @@
1
- {"version":3,"file":"webAudioBus.js","sourceRoot":"","sources":["../../../../../dev/core/src/AudioV2/webAudio/webAudioBus.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"core/types\";\nimport type { AbstractAudioNode } from \"../abstractAudio/abstractAudioNode\";\nimport type { IAudioBusOptions } from \"../abstractAudio/audioBus\";\nimport { AudioBus } from \"../abstractAudio/audioBus\";\nimport { _HasSpatialAudioOptions } from \"../abstractAudio/subProperties/abstractSpatialAudio\";\nimport type { _SpatialAudio } from \"../abstractAudio/subProperties/spatialAudio\";\nimport { _StereoAudio } from \"../abstractAudio/subProperties/stereoAudio\";\nimport { _WebAudioBusAndSoundSubGraph } from \"./subNodes/webAudioBusAndSoundSubGraph\";\nimport { _SpatialWebAudio } from \"./subProperties/spatialWebAudio\";\nimport type { _WebAudioEngine } from \"./webAudioEngine\";\nimport type { IWebAudioSuperNode } from \"./webAudioNode\";\n\n/** @internal */\nexport class _WebAudioBus extends AudioBus implements IWebAudioSuperNode {\n private _spatial: Nullable<_SpatialAudio> = null;\n private readonly _spatialAutoUpdate: boolean = true;\n private readonly _spatialMinUpdateTime: number = 0;\n private _stereo: Nullable<_StereoAudio> = null;\n\n protected _subGraph: _WebAudioBusAndSoundSubGraph;\n\n /** @internal */\n public override readonly engine: _WebAudioEngine;\n\n /** @internal */\n public readonly audioContext: AudioContext;\n\n /** @internal */\n public constructor(name: string, engine: _WebAudioEngine, options: Partial<IAudioBusOptions>) {\n super(name, engine);\n\n if (typeof options.spatialAutoUpdate === \"boolean\") {\n this._spatialAutoUpdate = options.spatialAutoUpdate;\n }\n\n if (typeof options.spatialMinUpdateTime === \"number\") {\n this._spatialMinUpdateTime = options.spatialMinUpdateTime;\n }\n\n this._subGraph = new _WebAudioBus._SubGraph(this);\n\n this.audioContext = engine.audioContext;\n }\n\n /** @internal */\n public async init(options: Partial<IAudioBusOptions>): Promise<void> {\n if (options.outBus) {\n this.outBus = options.outBus;\n } else {\n await this.engine.isReadyPromise;\n this.outBus = this.engine.defaultMainBus;\n }\n\n await this._subGraph.init(options);\n\n if (_HasSpatialAudioOptions(options)) {\n this._initSpatialProperty();\n }\n\n this.engine.addNode(this);\n }\n\n /** @internal */\n public override dispose(): void {\n super.dispose();\n\n this._spatial = null;\n this._stereo = null;\n\n this.engine.removeNode(this);\n }\n\n /** @internal */\n public get inNode() {\n return this._subGraph.inNode;\n }\n\n /** @internal */\n public get outNode() {\n return this._subGraph.outNode;\n }\n\n /** @internal */\n public override get spatial(): _SpatialAudio {\n if (this._spatial) {\n return this._spatial;\n }\n return this._initSpatialProperty();\n }\n\n /** @internal */\n public override get stereo(): _StereoAudio {\n return this._stereo ?? (this._stereo = new _StereoAudio(this._subGraph));\n }\n\n /** @internal */\n public getClassName(): string {\n return \"_WebAudioBus\";\n }\n\n private _initSpatialProperty(): _SpatialAudio {\n if (!this._spatial) {\n this._spatial = new _SpatialWebAudio(this._subGraph, this._spatialAutoUpdate, this._spatialMinUpdateTime);\n }\n\n return this._spatial;\n }\n\n private static _SubGraph = class extends _WebAudioBusAndSoundSubGraph {\n protected override _owner: _WebAudioBus;\n\n protected get _downstreamNodes(): Nullable<Set<AbstractAudioNode>> {\n return this._owner._downstreamNodes ?? null;\n }\n\n protected get _upstreamNodes(): Nullable<Set<AbstractAudioNode>> {\n return this._owner._upstreamNodes ?? null;\n }\n };\n}\n"]}
1
+ {"version":3,"file":"webAudioBus.js","sourceRoot":"","sources":["../../../../../dev/core/src/AudioV2/webAudio/webAudioBus.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"core/types\";\nimport type { AbstractAudioNode } from \"../abstractAudio/abstractAudioNode\";\nimport type { IAudioBusOptions } from \"../abstractAudio/audioBus\";\nimport { AudioBus } from \"../abstractAudio/audioBus\";\nimport { _HasSpatialAudioOptions } from \"../abstractAudio/subProperties/abstractSpatialAudio\";\nimport type { _SpatialAudio } from \"../abstractAudio/subProperties/spatialAudio\";\nimport { _StereoAudio } from \"../abstractAudio/subProperties/stereoAudio\";\nimport { _WebAudioBusAndSoundSubGraph } from \"./subNodes/webAudioBusAndSoundSubGraph\";\nimport { _SpatialWebAudio } from \"./subProperties/spatialWebAudio\";\nimport type { _WebAudioEngine } from \"./webAudioEngine\";\nimport type { IWebAudioInNode, IWebAudioSuperNode } from \"./webAudioNode\";\n\n/** @internal */\nexport class _WebAudioBus extends AudioBus implements IWebAudioSuperNode {\n private _spatial: Nullable<_SpatialAudio> = null;\n private readonly _spatialAutoUpdate: boolean = true;\n private readonly _spatialMinUpdateTime: number = 0;\n private _stereo: Nullable<_StereoAudio> = null;\n\n protected _subGraph: _WebAudioBusAndSoundSubGraph;\n\n /** @internal */\n public override readonly engine: _WebAudioEngine;\n\n /** @internal */\n public constructor(name: string, engine: _WebAudioEngine, options: Partial<IAudioBusOptions>) {\n super(name, engine);\n\n if (typeof options.spatialAutoUpdate === \"boolean\") {\n this._spatialAutoUpdate = options.spatialAutoUpdate;\n }\n\n if (typeof options.spatialMinUpdateTime === \"number\") {\n this._spatialMinUpdateTime = options.spatialMinUpdateTime;\n }\n\n this._subGraph = new _WebAudioBus._SubGraph(this);\n }\n\n /** @internal */\n public async _init(options: Partial<IAudioBusOptions>): Promise<void> {\n if (options.outBus) {\n this.outBus = options.outBus;\n } else {\n await this.engine.isReadyPromise;\n this.outBus = this.engine.defaultMainBus;\n }\n\n await this._subGraph.init(options);\n\n if (_HasSpatialAudioOptions(options)) {\n this._initSpatialProperty();\n }\n\n this.engine._addNode(this);\n }\n\n /** @internal */\n public override dispose(): void {\n super.dispose();\n\n this._spatial = null;\n this._stereo = null;\n\n this.engine._removeNode(this);\n }\n\n /** @internal */\n public get _inNode() {\n return this._subGraph._inNode;\n }\n\n /** @internal */\n public get _outNode() {\n return this._subGraph._outNode;\n }\n\n /** @internal */\n public override get spatial(): _SpatialAudio {\n if (this._spatial) {\n return this._spatial;\n }\n return this._initSpatialProperty();\n }\n\n /** @internal */\n public override get stereo(): _StereoAudio {\n return this._stereo ?? (this._stereo = new _StereoAudio(this._subGraph));\n }\n\n /** @internal */\n public getClassName(): string {\n return \"_WebAudioBus\";\n }\n\n protected override _connect(node: IWebAudioInNode): boolean {\n const connected = super._connect(node);\n\n if (!connected) {\n return false;\n }\n\n if (node._inNode) {\n this._outNode?.connect(node._inNode);\n }\n\n return true;\n }\n\n protected override _disconnect(node: IWebAudioInNode): boolean {\n const disconnected = super._disconnect(node);\n\n if (!disconnected) {\n return false;\n }\n\n if (node._inNode) {\n this._outNode?.disconnect(node._inNode);\n }\n\n return true;\n }\n\n private _initSpatialProperty(): _SpatialAudio {\n if (!this._spatial) {\n this._spatial = new _SpatialWebAudio(this._subGraph, this._spatialAutoUpdate, this._spatialMinUpdateTime);\n }\n\n return this._spatial;\n }\n\n private static _SubGraph = class extends _WebAudioBusAndSoundSubGraph {\n protected override _owner: _WebAudioBus;\n\n protected get _downstreamNodes(): Nullable<Set<AbstractAudioNode>> {\n return this._owner._downstreamNodes ?? null;\n }\n\n protected get _upstreamNodes(): Nullable<Set<AbstractAudioNode>> {\n return this._owner._upstreamNodes ?? null;\n }\n };\n}\n"]}
@@ -62,7 +62,7 @@ export declare class _WebAudioEngine extends AudioEngineV2 {
62
62
  private readonly _validFormats;
63
63
  private _volume;
64
64
  /** @internal */
65
- readonly audioContext: AudioContext;
65
+ readonly _audioContext: AudioContext;
66
66
  /** @internal */
67
67
  readonly isReadyPromise: Promise<void>;
68
68
  /** @internal */
@@ -72,11 +72,11 @@ export declare class _WebAudioEngine extends AudioEngineV2 {
72
72
  /** @internal */
73
73
  constructor(options?: Partial<IWebAudioEngineOptions>);
74
74
  /** @internal */
75
- init(options: Partial<IWebAudioEngineOptions>): Promise<void>;
75
+ _init(options: Partial<IWebAudioEngineOptions>): Promise<void>;
76
76
  /** @internal */
77
77
  get currentTime(): number;
78
78
  /** @internal */
79
- get inNode(): AudioNode;
79
+ get _inNode(): AudioNode;
80
80
  /** @internal */
81
81
  get mainOut(): _WebAudioMainOut;
82
82
  /** @internal */
@@ -108,13 +108,13 @@ export declare class _WebAudioEngine extends AudioEngineV2 {
108
108
  /** @internal */
109
109
  resume(): Promise<void>;
110
110
  /** @internal */
111
- addMainBus(mainBus: MainAudioBus): void;
111
+ _addMainBus(mainBus: MainAudioBus): void;
112
112
  /** @internal */
113
- removeMainBus(mainBus: MainAudioBus): void;
113
+ _removeMainBus(mainBus: MainAudioBus): void;
114
114
  /** @internal */
115
- addNode(node: AbstractNamedAudioNode): void;
115
+ _addNode(node: AbstractNamedAudioNode): void;
116
116
  /** @internal */
117
- removeNode(node: AbstractNamedAudioNode): void;
117
+ _removeNode(node: AbstractNamedAudioNode): void;
118
118
  /** @internal */
119
119
  _setAudioParam(audioParam: AudioParam, value: number): void;
120
120
  private _initAudioContext;
@@ -11,7 +11,7 @@ import { _WebAudioUnmuteUI } from "./webAudioUnmuteUI.js";
11
11
  */
12
12
  export async function CreateAudioEngineAsync(options = {}) {
13
13
  const engine = new _WebAudioEngine(options);
14
- await engine.init(options);
14
+ await engine._init(options);
15
15
  return engine;
16
16
  }
17
17
  const FormatMimeTypes = {
@@ -53,7 +53,7 @@ export class _WebAudioEngine extends AudioEngineV2 {
53
53
  /** @internal */
54
54
  this.userGestureObservable = new Observable();
55
55
  this._initAudioContext = async () => {
56
- this.audioContext.addEventListener("statechange", this._onAudioContextStateChange);
56
+ this._audioContext.addEventListener("statechange", this._onAudioContextStateChange);
57
57
  this._mainOut = new _WebAudioMainOut(this);
58
58
  this._mainOut.volume = this._volume;
59
59
  await this.createMainBusAsync("default");
@@ -76,7 +76,7 @@ export class _WebAudioEngine extends AudioEngineV2 {
76
76
  };
77
77
  this._onUserGesture = async () => {
78
78
  if (this._resumeOnInteraction) {
79
- await this.audioContext.resume();
79
+ await this._audioContext.resume();
80
80
  }
81
81
  this.userGestureObservable.notifyObservers();
82
82
  };
@@ -87,13 +87,13 @@ export class _WebAudioEngine extends AudioEngineV2 {
87
87
  this._listenerMinUpdateTime = options.listenerMinUpdateTime;
88
88
  }
89
89
  this._volume = options.volume ?? 1;
90
- this.audioContext = options.audioContext ?? new AudioContext();
90
+ this._audioContext = options.audioContext ?? new AudioContext();
91
91
  if (!options.disableDefaultUI) {
92
92
  this._unmuteUI = new _WebAudioUnmuteUI(this, options.defaultUIParentElement);
93
93
  }
94
94
  }
95
95
  /** @internal */
96
- async init(options) {
96
+ async _init(options) {
97
97
  this._resumeOnInteraction = typeof options.resumeOnInteraction === "boolean" ? options.resumeOnInteraction : true;
98
98
  this._resumeOnPause = typeof options.resumeOnPause === "boolean" ? options.resumeOnPause : true;
99
99
  this._resumeOnPauseRetryInterval = options.resumeOnPauseRetryInterval ?? 1000;
@@ -107,11 +107,11 @@ export class _WebAudioEngine extends AudioEngineV2 {
107
107
  }
108
108
  /** @internal */
109
109
  get currentTime() {
110
- return this.audioContext.currentTime ?? 0;
110
+ return this._audioContext.currentTime ?? 0;
111
111
  }
112
112
  /** @internal */
113
- get inNode() {
114
- return this.audioContext.destination;
113
+ get _inNode() {
114
+ return this._audioContext.destination;
115
115
  }
116
116
  /** @internal */
117
117
  get mainOut() {
@@ -123,7 +123,7 @@ export class _WebAudioEngine extends AudioEngineV2 {
123
123
  }
124
124
  /** @internal */
125
125
  get state() {
126
- return this.audioContext.state;
126
+ return this._audioContext.state;
127
127
  }
128
128
  /** @internal */
129
129
  get volume() {
@@ -143,35 +143,35 @@ export class _WebAudioEngine extends AudioEngineV2 {
143
143
  async createBusAsync(name, options = {}) {
144
144
  const module = await import("./webAudioBus.js");
145
145
  const bus = new module._WebAudioBus(name, this, options);
146
- await bus.init(options);
146
+ await bus._init(options);
147
147
  return bus;
148
148
  }
149
149
  /** @internal */
150
150
  async createMainBusAsync(name, options = {}) {
151
151
  const module = await import("./webAudioMainBus.js");
152
152
  const bus = new module._WebAudioMainBus(name, this);
153
- await bus.init(options);
153
+ await bus._init(options);
154
154
  return bus;
155
155
  }
156
156
  /** @internal */
157
157
  async createSoundAsync(name, source, options = {}) {
158
158
  const module = await import("./webAudioStaticSound.js");
159
159
  const sound = new module._WebAudioStaticSound(name, this, options);
160
- await sound.init(source, options);
160
+ await sound._init(source, options);
161
161
  return sound;
162
162
  }
163
163
  /** @internal */
164
164
  async createSoundBufferAsync(source, options = {}) {
165
165
  const module = await import("./webAudioStaticSound.js");
166
166
  const soundBuffer = new module._WebAudioStaticSoundBuffer(this);
167
- await soundBuffer.init(source, options);
167
+ await soundBuffer._init(source, options);
168
168
  return soundBuffer;
169
169
  }
170
170
  /** @internal */
171
171
  async createStreamingSoundAsync(name, source, options = {}) {
172
172
  const module = await import("./webAudioStreamingSound.js");
173
173
  const sound = new module._WebAudioStreamingSound(name, this, options);
174
- await sound.init(source, options);
174
+ await sound._init(source, options);
175
175
  return sound;
176
176
  }
177
177
  /** @internal */
@@ -179,11 +179,11 @@ export class _WebAudioEngine extends AudioEngineV2 {
179
179
  super.dispose();
180
180
  this._listener?.dispose();
181
181
  this._listener = null;
182
- if (this.audioContext.state !== "closed") {
183
- this.audioContext.close();
182
+ if (this._audioContext.state !== "closed") {
183
+ this._audioContext.close();
184
184
  }
185
185
  document.removeEventListener("click", this._onUserGesture);
186
- this.audioContext.removeEventListener("statechange", this._onAudioContextStateChange);
186
+ this._audioContext.removeEventListener("statechange", this._onAudioContextStateChange);
187
187
  this._unmuteUI?.dispose();
188
188
  this._unmuteUI = null;
189
189
  }
@@ -213,7 +213,7 @@ export class _WebAudioEngine extends AudioEngineV2 {
213
213
  }
214
214
  /** @internal */
215
215
  async pause() {
216
- await this.audioContext.suspend();
216
+ await this._audioContext.suspend();
217
217
  this._pauseCalled = true;
218
218
  }
219
219
  /** @internal */
@@ -222,24 +222,24 @@ export class _WebAudioEngine extends AudioEngineV2 {
222
222
  if (this._resumePromise) {
223
223
  return this._resumePromise;
224
224
  }
225
- this._resumePromise = this.audioContext.resume();
225
+ this._resumePromise = this._audioContext.resume();
226
226
  return this._resumePromise;
227
227
  }
228
228
  /** @internal */
229
- addMainBus(mainBus) {
230
- this._addMainBus(mainBus);
229
+ _addMainBus(mainBus) {
230
+ super._addMainBus(mainBus);
231
231
  }
232
232
  /** @internal */
233
- removeMainBus(mainBus) {
234
- this._removeMainBus(mainBus);
233
+ _removeMainBus(mainBus) {
234
+ super._removeMainBus(mainBus);
235
235
  }
236
236
  /** @internal */
237
- addNode(node) {
238
- this._addNode(node);
237
+ _addNode(node) {
238
+ super._addNode(node);
239
239
  }
240
240
  /** @internal */
241
- removeNode(node) {
242
- this._removeNode(node);
241
+ _removeNode(node) {
242
+ super._removeNode(node);
243
243
  }
244
244
  /** @internal */
245
245
  _setAudioParam(audioParam, value) {