UNPKG

web-audio-test-api

Version:
177 lines (142 loc) 8.93 kB
"use strict"; var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _desc, _value, _class, _class2, _temp; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _AudioNode2 = require("./AudioNode"); var _AudioNode3 = _interopRequireDefault(_AudioNode2); var _AudioBuffer = require("./AudioBuffer"); var _AudioBuffer2 = _interopRequireDefault(_AudioBuffer); var _Event = require("./dom/Event"); var _Event2 = _interopRequireDefault(_Event); var _toSeconds = require("./utils/toSeconds"); var _toSeconds2 = _interopRequireDefault(_toSeconds); var _props = require("./decorators/props"); var props = _interopRequireWildcard(_props); var _methods = require("./decorators/methods"); var methods = _interopRequireWildcard(_methods); var _validators = require("./validators"); var validators = _interopRequireWildcard(_validators); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var AudioBufferSourceNode = (_dec = props.typed(validators.isNullOrInstanceOf(_AudioBuffer2.default), null), _dec2 = props.audioparam(1), _dec3 = props.audioparam(0), _dec4 = props.typed(validators.isBoolean, false), _dec5 = props.typed(validators.isPositiveNumber, 0), _dec6 = props.typed(validators.isPositiveNumber, 0), _dec7 = props.on("ended"), _dec8 = methods.param("[ when ]", validators.isPositiveNumber), _dec9 = methods.param("[ offset ]", validators.isPositiveNumber), _dec10 = methods.param("[ duration ]", validators.isPositiveNumber), _dec11 = methods.contract({ precondition: function precondition() { if (this._.startTime !== Infinity) { throw new TypeError("Cannot start more than once."); } } }), _dec12 = methods.param("[ when ]", validators.isPositiveNumber), _dec13 = methods.contract({ precondition: function precondition() { if (this._.startTime === Infinity) { throw new TypeError("Cannot call stop without calling start first."); } if (this._.stopTime !== Infinity) { throw new TypeError("Cannot stop more than once."); } } }), (_class = (_temp = _class2 = (function (_AudioNode) { _inherits(AudioBufferSourceNode, _AudioNode); function AudioBufferSourceNode(admission, context) { _classCallCheck(this, AudioBufferSourceNode); var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(AudioBufferSourceNode).call(this, admission, { name: "AudioBufferSourceNode", context: context, numberOfInputs: 0, numberOfOutputs: 1, channelCount: 2, channelCountMode: "max", channelInterpretation: "speakers" })); _this._.startTime = Infinity; _this._.stopTime = Infinity; _this._.firedOnEnded = false; return _this; } _createClass(AudioBufferSourceNode, [{ key: "buffer", value: function buffer() {} }, { key: "playbackRate", value: function playbackRate() {} }, { key: "detune", value: function detune() {} }, { key: "loop", value: function loop() {} }, { key: "loopStart", value: function loopStart() {} }, { key: "loopEnd", value: function loopEnd() {} }, { key: "onended", value: function onended() {} }, { key: "start", value: function start() { var when = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0]; var offset = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1]; var duration = arguments.length <= 2 || arguments[2] === undefined ? 0 : arguments[2]; this._.startTime = when; this._.offset = offset; this._.duration = duration; } }, { key: "stop", value: function stop() { var when = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0]; this._.stopTime = when; } }, { key: "$stateAtTime", value: function $stateAtTime(when) { var playbackTime = (0, _toSeconds2.default)(when); if (this._.startTime === Infinity) { return "UNSCHEDULED"; } if (playbackTime < this._.startTime) { return "SCHEDULED"; } var stopTime = this._.stopTime; if (!this.loop && this.buffer) { stopTime = Math.min(stopTime, this._.startTime + this.buffer.duration); } if (playbackTime < stopTime) { return "PLAYING"; } return "FINISHED"; } }, { key: "__process", value: function __process() { if (!this._.firedOnEnded && this.$stateAtTime(this.context.currentTime) === "FINISHED") { this.dispatchEvent(new _Event2.default("ended", this)); this._.firedOnEnded = true; } } }, { key: "$state", get: function get() { return this.$stateAtTime(this.context.currentTime); } }, { key: "$startTime", get: function get() { return this._.startTime; } }, { key: "$stopTime", get: function get() { return this._.stopTime; } }]); return AudioBufferSourceNode; })(_AudioNode3.default), _class2.$JSONKeys = ["buffer", "playbackRate", "loop", "loopStart", "loopEnd"], _temp), (_desc = _dec(_class.prototype, "buffer", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "buffer")) || _desc, _desc ? Object.defineProperty(_class.prototype, "buffer", _desc) : void 0, _desc = _dec2(_class.prototype, "playbackRate", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "playbackRate")) || _desc, _desc ? Object.defineProperty(_class.prototype, "playbackRate", _desc) : void 0, _desc = _dec3(_class.prototype, "detune", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "detune")) || _desc, _desc ? Object.defineProperty(_class.prototype, "detune", _desc) : void 0, _desc = _dec4(_class.prototype, "loop", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "loop")) || _desc, _desc ? Object.defineProperty(_class.prototype, "loop", _desc) : void 0, _desc = _dec5(_class.prototype, "loopStart", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "loopStart")) || _desc, _desc ? Object.defineProperty(_class.prototype, "loopStart", _desc) : void 0, _desc = _dec6(_class.prototype, "loopEnd", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "loopEnd")) || _desc, _desc ? Object.defineProperty(_class.prototype, "loopEnd", _desc) : void 0, _desc = _dec7(_class.prototype, "onended", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "onended")) || _desc, _desc ? Object.defineProperty(_class.prototype, "onended", _desc) : void 0, _desc = _dec8(_class.prototype, "start", _desc = _dec9(_class.prototype, "start", _desc = _dec10(_class.prototype, "start", _desc = _dec11(_class.prototype, "start", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "start")) || _desc) || _desc) || _desc) || _desc, _desc ? Object.defineProperty(_class.prototype, "start", _desc) : void 0, _desc = _dec12(_class.prototype, "stop", _desc = _dec13(_class.prototype, "stop", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "stop")) || _desc) || _desc, _desc ? Object.defineProperty(_class.prototype, "stop", _desc) : void 0), _class)); exports.default = AudioBufferSourceNode;