1 /* 2 * Copyright (c) 2002-2025 Gargoyle Software Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * https://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 package org.htmlunit.javascript.host.media; 16 17 import org.htmlunit.javascript.JavaScriptEngine; 18 import org.htmlunit.javascript.configuration.JsxClass; 19 import org.htmlunit.javascript.configuration.JsxConstructor; 20 import org.htmlunit.javascript.configuration.JsxFunction; 21 import org.htmlunit.javascript.host.event.EventTarget; 22 23 /** 24 * A JavaScript object for {@code AudioNode}. 25 * 26 * @author Ahmed Ashour 27 * @author Ronald Brill 28 */ 29 @JsxClass 30 public class AudioNode extends EventTarget { 31 32 /** 33 * Creates an instance. 34 * @param baCtx the required audio context 35 */ 36 @JsxConstructor 37 public void jsConstructor(final Object baCtx) { 38 if (!(baCtx instanceof BaseAudioContext)) { 39 throw JavaScriptEngine.typeError( 40 "Failed to construct '" + getClass().getSimpleName() 41 + "': first parameter is not of type 'BaseAudioContext'."); 42 } 43 } 44 45 /** 46 * Lets you connect one of the node's outputs to a target, which may be either another 47 * AudioNode (thereby directing the sound data to the specified node) or an AudioParam, 48 * so that the node's output data is automatically used to change the value 49 * of that parameter over time. 50 */ 51 @JsxFunction 52 public void connect() { 53 // nothing to do 54 } 55 }