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.configuration.JsxClass; 18 import org.htmlunit.javascript.configuration.JsxConstructor; 19 import org.htmlunit.javascript.configuration.JsxGetter; 20 21 /** 22 * A JavaScript object for {@code GainNode}. 23 * 24 * @author Ahmed Ashour 25 * @author Ronald Brill 26 */ 27 @JsxClass 28 public class GainNode extends AudioNode { 29 30 private AudioParam gain_; 31 32 @Override 33 @JsxConstructor 34 public void jsConstructor(final Object baCtx) { 35 super.jsConstructor(baCtx); 36 37 final AudioParam node = new AudioParam(); 38 node.setParentScope(getParentScope()); 39 node.setPrototype(getPrototype(node.getClass())); 40 node.jsConstructor(); 41 gain_ = node; 42 } 43 44 /** 45 * @return an a-rate AudioParam representing the amount of gain to apply. 46 */ 47 @JsxGetter 48 public AudioParam getGain() { 49 return gain_; 50 } 51 52 }