VulpesOS/gaia/apps/keyboard/test/unit/mock_audio_context.js
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

113 lines
4 KiB
JavaScript
Executable file

'use strict';
/* global MockEventTarget */
/**
* This file provide incomplete interfaces of Web Audio API for users to
* create stub on top of.
* New interfaces can simply be added by manually copying and editing WebIDL
* from Gecko source tree.
*/
var MockAudioNode = function(ctx) {
this.context = ctx;
};
MockAudioNode.prototype = Object.create(MockEventTarget.prototype);
MockAudioNode.prototype.context = null;
MockAudioNode.prototype.numberOfInputs = 0;
MockAudioNode.prototype.numberOfOutputs = 0;
MockAudioNode.prototype.channelCount = 2;
MockAudioNode.prototype.channelCountMode = 'explicit';
MockAudioNode.prototype.channelInterpretation = 'speakers';
MockAudioNode.prototype.connect =
MockAudioNode.prototype.disconnect = function() {
throw 'MockAudioNode: Unimplemented. Stub me?';
};
var MockAudioDestinationNode = function(ctx) {
MockAudioNode.call(this, ctx);
this.numberOfInputs = 1;
this.numberOfOutputs = 0;
};
MockAudioDestinationNode.prototype = Object.create(MockAudioNode.prototype);
MockAudioDestinationNode.prototype.maxChannelCount = 2;
var MockAudioBufferSourceNode = function(ctx) {
MockAudioNode.call(this, ctx);
this.numberOfInputs = 0;
this.numberOfOutputs = 1;
// Unimplemented
// this.playbackRate = new MockAudioParam();
};
MockAudioBufferSourceNode.prototype = Object.create(MockAudioNode.prototype);
MockAudioBufferSourceNode.prototype.playbackRate = null;
MockAudioBufferSourceNode.prototype.buffer = null;
MockAudioBufferSourceNode.prototype.loop = false;
MockAudioBufferSourceNode.prototype.loopEnd = 0;
MockAudioBufferSourceNode.prototype.loopStart = 0;
MockAudioBufferSourceNode.prototype.onended = null;
MockAudioBufferSourceNode.prototype.start =
MockAudioBufferSourceNode.prototype.stop = function() {
throw 'MockAudioBufferSourceNode: Unimplemented. Stub me?';
};
var MockAudioListener = function() {
};
MockAudioListener.prototype.dopplerFactor = 1;
MockAudioListener.prototype.speedOfSound = 343.3;
MockAudioListener.prototype.setPosition =
MockAudioListener.prototype.setOrientation =
MockAudioListener.prototype.setVelocity = function() {
throw 'MockAudioListener: Unimplemented. Stub me?';
};
var MockAudioContext = function(type) {
this.destination = new MockAudioDestinationNode(this);
this.listener = new MockAudioListener();
if (type) {
this.mozAudioChannelType = type;
}
};
MockAudioContext.prototype = Object.create(MockEventTarget.prototype);
MockAudioContext.prototype.destination = null;
MockAudioContext.prototype.sampleRate = 48000;
MockAudioContext.prototype.currentTime = 0;
MockAudioContext.prototype.listener = null;
MockAudioContext.prototype.mozAudioChannelType = 'normal';
MockAudioContext.prototype.onmozinterruptbegin = null;
MockAudioContext.prototype.onmozinterruptend = null;
MockAudioContext.prototype.decodeAudioData =
MockAudioContext.prototype.createBufferSource =
MockAudioContext.prototype.createMediaStreamDestination =
MockAudioContext.prototype.createScriptProcessor =
MockAudioContext.prototype.createAnalyser =
MockAudioContext.prototype.createMediaElementSource =
MockAudioContext.prototype.createMediaStreamSource =
MockAudioContext.prototype.createGain =
MockAudioContext.prototype.createDelay =
MockAudioContext.prototype.createBiquadFilter =
MockAudioContext.prototype.createWaveShaper =
MockAudioContext.prototype.createPanner =
MockAudioContext.prototype.createConvolver =
MockAudioContext.prototype.createChannelSplitter =
MockAudioContext.prototype.createChannelMerger =
MockAudioContext.prototype.createDynamicsCompressor =
MockAudioContext.prototype.createOscillator =
MockAudioContext.prototype.createPeriodicWave = function() {
throw 'MockAudioContext: Unimplemented. Stub me?';
};
var MockOfflineAudioContext = function(numOfChannels, length, sampleRate) {
MockAudioContext.call(this);
};
MockOfflineAudioContext.prototype = Object.create(MockAudioContext.prototype);
MockOfflineAudioContext.prototype.oncomplete = null;
MockOfflineAudioContext.prototype.startRendering = function() {
throw 'MockOfflineAudioContext: Unimplemented. Stub me?';
};