MCPcopy
hub / github.com/goldfire/howler.js / setupPanner

Function setupPanner

src/plugins/howler.spatial.js:617–658  ·  view source on GitHub ↗
(sound, type)

Source from the content-addressed store, hash-verified

615 * @param {String} type Type of panner to create: 'stereo' or 'spatial'.
616 */
617 var setupPanner = function(sound, type) {
618 type = type || 'spatial';
619
620 // Create the new panner node.
621 if (type === 'spatial') {
622 sound._panner = Howler.ctx.createPanner();
623 sound._panner.coneInnerAngle = sound._pannerAttr.coneInnerAngle;
624 sound._panner.coneOuterAngle = sound._pannerAttr.coneOuterAngle;
625 sound._panner.coneOuterGain = sound._pannerAttr.coneOuterGain;
626 sound._panner.distanceModel = sound._pannerAttr.distanceModel;
627 sound._panner.maxDistance = sound._pannerAttr.maxDistance;
628 sound._panner.refDistance = sound._pannerAttr.refDistance;
629 sound._panner.rolloffFactor = sound._pannerAttr.rolloffFactor;
630 sound._panner.panningModel = sound._pannerAttr.panningModel;
631
632 if (typeof sound._panner.positionX !== 'undefined') {
633 sound._panner.positionX.setValueAtTime(sound._pos[0], Howler.ctx.currentTime);
634 sound._panner.positionY.setValueAtTime(sound._pos[1], Howler.ctx.currentTime);
635 sound._panner.positionZ.setValueAtTime(sound._pos[2], Howler.ctx.currentTime);
636 } else {
637 sound._panner.setPosition(sound._pos[0], sound._pos[1], sound._pos[2]);
638 }
639
640 if (typeof sound._panner.orientationX !== 'undefined') {
641 sound._panner.orientationX.setValueAtTime(sound._orientation[0], Howler.ctx.currentTime);
642 sound._panner.orientationY.setValueAtTime(sound._orientation[1], Howler.ctx.currentTime);
643 sound._panner.orientationZ.setValueAtTime(sound._orientation[2], Howler.ctx.currentTime);
644 } else {
645 sound._panner.setOrientation(sound._orientation[0], sound._orientation[1], sound._orientation[2]);
646 }
647 } else {
648 sound._panner = Howler.ctx.createStereoPanner();
649 sound._panner.pan.setValueAtTime(sound._stereo, Howler.ctx.currentTime);
650 }
651
652 sound._panner.connect(sound._node);
653
654 // Update the connections.
655 if (!sound._paused) {
656 sound._parent.pause(sound._id, true).play(sound._id, true);
657 }
658 };
659})();

Callers 1

howler.spatial.jsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected