UNPKG

web-audio-test-api

Version:
169 lines (137 loc) 7.76 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, _desc, _value, _class, _class2, _temp; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _AudioNode2 = require("./AudioNode"); var _AudioNode3 = _interopRequireDefault(_AudioNode2); var _PeriodicWave = require("./PeriodicWave"); var _PeriodicWave2 = _interopRequireDefault(_PeriodicWave); 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 OscillatorNode = (_dec = props.enums(["sine", "square", "sawtooth", "triangle"]), _dec2 = props.audioparam(440), _dec3 = props.audioparam(0), _dec4 = props.on("ended"), _dec5 = methods.param("[ when ]", validators.isPositiveNumber), _dec6 = methods.contract({ precondition: function precondition() { if (this._.startTime !== Infinity) { throw new Error("Cannot start more than once."); } } }), _dec7 = methods.param("[ when ]", validators.isPositiveNumber), _dec8 = methods.contract({ precondition: function precondition() { if (this._.startTime === Infinity) { throw new Error("Cannot call stop without calling start first."); } if (this._.stopTime !== Infinity) { throw new Error("Cannot stop more than once."); } } }), _dec9 = methods.param("periodicWave", validators.isInstanceOf(_PeriodicWave2.default)), (_class = (_temp = _class2 = (function (_AudioNode) { _inherits(OscillatorNode, _AudioNode); function OscillatorNode(admission, context) { _classCallCheck(this, OscillatorNode); var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(OscillatorNode).call(this, admission, { name: "OscillatorNode", context: context, numberOfInputs: 0, numberOfOutputs: 1, channelCount: 2, channelCountMode: "max", channelInterpretation: "speakers" })); _this._.custom = null; _this._.startTime = Infinity; _this._.stopTime = Infinity; _this._.firedOnEnded = false; return _this; } _createClass(OscillatorNode, [{ key: "type", value: function type() {} }, { key: "frequency", value: function frequency() {} }, { key: "detune", value: function detune() {} }, { key: "onended", value: function onended() {} }, { key: "start", value: function start() { var when = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0]; this._.startTime = when; } }, { key: "stop", value: function stop() { var when = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0]; this._.stopTime = when; } }, { key: "setPeriodicWave", value: function setPeriodicWave(periodicWave) { this._.type = "custom"; this._.custom = periodicWave; } }, { key: "$stateAtTime", value: function $stateAtTime(when) { var playbackTime = (0, _toSeconds2.default)(when); if (this._.startTime === Infinity) { return "UNSCHEDULED"; } if (playbackTime < this._.startTime) { return "SCHEDULED"; } if (playbackTime < this._.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: "$custom", get: function get() { return this._.custom; } }, { key: "$startTime", get: function get() { return this._.startTime; } }, { key: "$stopTime", get: function get() { return this._.stopTime; } }]); return OscillatorNode; })(_AudioNode3.default), _class2.$JSONKeys = ["type", "frequency", "detune"], _temp), (_desc = _dec(_class.prototype, "type", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "type")) || _desc, _desc ? Object.defineProperty(_class.prototype, "type", _desc) : void 0, _desc = _dec2(_class.prototype, "frequency", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "frequency")) || _desc, _desc ? Object.defineProperty(_class.prototype, "frequency", _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, "onended", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "onended")) || _desc, _desc ? Object.defineProperty(_class.prototype, "onended", _desc) : void 0, _desc = _dec5(_class.prototype, "start", _desc = _dec6(_class.prototype, "start", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "start")) || _desc) || _desc, _desc ? Object.defineProperty(_class.prototype, "start", _desc) : void 0, _desc = _dec7(_class.prototype, "stop", _desc = _dec8(_class.prototype, "stop", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "stop")) || _desc) || _desc, _desc ? Object.defineProperty(_class.prototype, "stop", _desc) : void 0, _desc = _dec9(_class.prototype, "setPeriodicWave", _desc = Object.getOwnPropertyDescriptor(_class.prototype, "setPeriodicWave")) || _desc, _desc ? Object.defineProperty(_class.prototype, "setPeriodicWave", _desc) : void 0), _class)); exports.default = OscillatorNode;