mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2024-12-24 06:52:40 -05:00
separate out main audioengine from audioplayer for each clone
This commit is contained in:
parent
5a1386f727
commit
c0d57b4b6b
4 changed files with 33 additions and 16 deletions
|
@ -37,12 +37,12 @@ Scratch3SoundBlocks.prototype.getPrimitives = function () {
|
|||
|
||||
Scratch3SoundBlocks.prototype.playSound = function (args, util) {
|
||||
var index = this._getSoundIndex(args.SOUND_MENU, util);
|
||||
util.target.audioEngine.playSound(index);
|
||||
util.target.audioPlayer.playSound(index);
|
||||
};
|
||||
|
||||
Scratch3SoundBlocks.prototype.playSoundAndWait = function (args, util) {
|
||||
var index = this._getSoundIndex(args.SOUND_MENU, util);
|
||||
return util.target.audioEngine.playSound(index);
|
||||
return util.target.audioPlayer.playSound(index);
|
||||
};
|
||||
|
||||
Scratch3SoundBlocks.prototype._getSoundIndex = function (soundName, util) {
|
||||
|
@ -65,11 +65,11 @@ Scratch3SoundBlocks.prototype._getSoundIndex = function (soundName, util) {
|
|||
};
|
||||
|
||||
Scratch3SoundBlocks.prototype.stopAllSounds = function (args, util) {
|
||||
util.target.audioEngine.stopAllSounds();
|
||||
util.target.audioPlayer.stopAllSounds();
|
||||
};
|
||||
|
||||
Scratch3SoundBlocks.prototype.playNoteForBeats = function (args, util) {
|
||||
util.target.audioEngine.playNoteForBeats(args.NOTE, args.BEATS);
|
||||
util.target.audioPlayer.playNoteForBeats(args.NOTE, args.BEATS);
|
||||
return new Promise(function (resolve) {
|
||||
setTimeout(function () {
|
||||
resolve();
|
||||
|
@ -78,7 +78,7 @@ Scratch3SoundBlocks.prototype.playNoteForBeats = function (args, util) {
|
|||
};
|
||||
|
||||
Scratch3SoundBlocks.prototype.playDrumForBeats = function (args, util) {
|
||||
util.target.audioEngine.playDrumForBeats(args.DRUM, args.BEATS);
|
||||
util.target.audioPlayer.playDrumForBeats(args.DRUM, args.BEATS);
|
||||
return new Promise(function (resolve) {
|
||||
setTimeout(function () {
|
||||
resolve();
|
||||
|
@ -88,41 +88,41 @@ Scratch3SoundBlocks.prototype.playDrumForBeats = function (args, util) {
|
|||
|
||||
Scratch3SoundBlocks.prototype.setInstrument = function (args, util) {
|
||||
var instNum = Cast.toNumber(args.INSTRUMENT);
|
||||
return util.target.audioEngine.setInstrument(instNum);
|
||||
return util.target.audioPlayer.setInstrument(instNum);
|
||||
};
|
||||
|
||||
Scratch3SoundBlocks.prototype.setEffect = function (args, util) {
|
||||
var value = Cast.toNumber(args.VALUE);
|
||||
util.target.audioEngine.setEffect(args.EFFECT, value);
|
||||
util.target.audioPlayer.setEffect(args.EFFECT, value);
|
||||
};
|
||||
|
||||
Scratch3SoundBlocks.prototype.changeEffect = function (args, util) {
|
||||
var value = Cast.toNumber(args.VALUE);
|
||||
util.target.audioEngine.changeEffect(args.EFFECT, value);
|
||||
util.target.audioPlayer.changeEffect(args.EFFECT, value);
|
||||
};
|
||||
|
||||
Scratch3SoundBlocks.prototype.clearEffects = function (args, util) {
|
||||
util.target.audioEngine.clearEffects();
|
||||
util.target.audioPlayer.clearEffects();
|
||||
};
|
||||
|
||||
Scratch3SoundBlocks.prototype.setVolume = function (args, util) {
|
||||
var value = Cast.toNumber(args.VOLUME);
|
||||
util.target.audioEngine.setVolume(value);
|
||||
util.target.audioPlayer.setVolume(value);
|
||||
};
|
||||
|
||||
Scratch3SoundBlocks.prototype.changeVolume = function (args, util) {
|
||||
var value = Cast.toNumber(args.VOLUME);
|
||||
util.target.audioEngine.changeVolume(value);
|
||||
util.target.audioPlayer.changeVolume(value);
|
||||
};
|
||||
|
||||
Scratch3SoundBlocks.prototype.setTempo = function (args, util) {
|
||||
var value = Cast.toNumber(args.TEMPO);
|
||||
util.target.audioEngine.setTempo(value);
|
||||
util.target.audioPlayer.setTempo(value);
|
||||
};
|
||||
|
||||
Scratch3SoundBlocks.prototype.changeTempo = function (args, util) {
|
||||
var value = Cast.toNumber(args.TEMPO);
|
||||
util.target.audioEngine.changeTempo(value);
|
||||
util.target.audioPlayer.changeTempo(value);
|
||||
};
|
||||
|
||||
Scratch3SoundBlocks.prototype.soundsMenu = function (args) {
|
||||
|
|
|
@ -317,6 +317,14 @@ Runtime.prototype.attachRenderer = function (renderer) {
|
|||
this.renderer = renderer;
|
||||
};
|
||||
|
||||
/**
|
||||
* Attach the audio engine
|
||||
* @param {!RenderWebGL} audioEngine The audio engine to attach
|
||||
*/
|
||||
Runtime.prototype.attachAudioEngine = function (audioEngine) {
|
||||
this.audioEngine = audioEngine;
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -251,6 +251,14 @@ VirtualMachine.prototype.attachRenderer = function (renderer) {
|
|||
this.runtime.attachRenderer(renderer);
|
||||
};
|
||||
|
||||
/**
|
||||
* Set the audio engine for the VM/runtime
|
||||
* @param {!AudioEngine} audioEngine The audio engine to attach
|
||||
*/
|
||||
VirtualMachine.prototype.attachAudioEngine = function (audioEngine) {
|
||||
this.runtime.attachAudioEngine(audioEngine);
|
||||
};
|
||||
|
||||
/**
|
||||
* Handle a Blockly event for the current editing target.
|
||||
* @param {!Blockly.Event} e Any Blockly event.
|
||||
|
|
|
@ -49,11 +49,12 @@ var RenderedTarget = function (sprite, runtime) {
|
|||
};
|
||||
|
||||
/**
|
||||
* Audio engine
|
||||
* Audio player
|
||||
*/
|
||||
this.audioEngine = null;
|
||||
this.audioPlayer = null;
|
||||
if (this.runtime) {
|
||||
this.audioEngine = new AudioEngine(this.sprite.sounds);
|
||||
this.audioPlayer = this.runtime.audioEngine.createPlayer();
|
||||
this.audioPlayer.loadSounds(this.sprite.sounds);
|
||||
}
|
||||
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue