web-audio-test-api
Version:
Web Audio API test library for CI
177 lines (142 loc) • 8.93 kB
JavaScript
;
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;