pannernode-basic.window.js (2761B)
1 test((t) => { 2 const context = new AudioContext(); 3 const source = new ConstantSourceNode(context); 4 const panner = new PannerNode(context); 5 source.connect(panner).connect(context.destination); 6 7 // Basic parameters 8 assert_equals(panner.numberOfInputs,1); 9 assert_equals(panner.numberOfOutputs,1); 10 assert_equals(panner.refDistance, 1); 11 panner.refDistance = 270.5; 12 assert_equals(panner.refDistance, 270.5); 13 assert_equals(panner.maxDistance, 10000); 14 panner.maxDistance = 100.5; 15 assert_equals(panner.maxDistance, 100.5); 16 assert_equals(panner.rolloffFactor, 1); 17 panner.rolloffFactor = 0.75; 18 assert_equals(panner.rolloffFactor, 0.75); 19 assert_equals(panner.coneInnerAngle, 360); 20 panner.coneInnerAngle = 240.5; 21 assert_equals(panner.coneInnerAngle, 240.5); 22 assert_equals(panner.coneOuterAngle, 360); 23 panner.coneOuterAngle = 166.5; 24 assert_equals(panner.coneOuterAngle, 166.5); 25 assert_equals(panner.coneOuterGain, 0); 26 panner.coneOuterGain = 0.25; 27 assert_equals(panner.coneOuterGain, 0.25); 28 assert_equals(panner.panningModel, 'equalpower'); 29 assert_equals(panner.distanceModel, 'inverse'); 30 31 // Position/orientation AudioParams 32 assert_equals(panner.positionX.value, 0); 33 assert_equals(panner.positionY.value, 0); 34 assert_equals(panner.positionZ.value, 0); 35 assert_equals(panner.orientationX.value, 1); 36 assert_equals(panner.orientationY.value, 0); 37 assert_equals(panner.orientationZ.value, 0); 38 39 // AudioListener 40 assert_equals(context.listener.positionX.value, 0); 41 assert_equals(context.listener.positionY.value, 0); 42 assert_equals(context.listener.positionZ.value, 0); 43 assert_equals(context.listener.forwardX.value, 0); 44 assert_equals(context.listener.forwardY.value, 0); 45 assert_equals(context.listener.forwardZ.value, -1); 46 assert_equals(context.listener.upX.value, 0); 47 assert_equals(context.listener.upY.value, 1); 48 assert_equals(context.listener.upZ.value, 0); 49 50 panner.panningModel = 'equalpower'; 51 assert_equals(panner.panningModel, 'equalpower'); 52 panner.panningModel = 'HRTF'; 53 assert_equals(panner.panningModel, 'HRTF'); 54 panner.panningModel = 'invalid'; 55 assert_equals(panner.panningModel, 'HRTF'); 56 57 // Check that numerical values are no longer supported. We shouldn't 58 // throw and the value shouldn't be changed. 59 panner.panningModel = 1; 60 assert_equals(panner.panningModel, 'HRTF'); 61 62 panner.distanceModel = 'linear'; 63 assert_equals(panner.distanceModel, 'linear'); 64 panner.distanceModel = 'inverse'; 65 assert_equals(panner.distanceModel, 'inverse'); 66 panner.distanceModel = 'exponential'; 67 assert_equals(panner.distanceModel, 'exponential'); 68 69 panner.distanceModel = 'invalid'; 70 assert_equals(panner.distanceModel, 'exponential'); 71 }, 'Test the PannerNode interface');