Files
sdk/tools/dom/templates/html/impl/impl_AudioContext.darttemplate
T
Terry Lucas 8fedfc7f8c Removed DomName, DosEditable, and experimental annoations they are unused.
R=kevmoo@google.com,vsm@google.com

Fixes #32304

Change-Id: Ia2c8f99f0125c4d4bd0f95a792ff2af8a58e3599
Reviewed-on: https://dart-review.googlesource.com/60400
Commit-Queue: Terry Lucas <terry@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
2018-06-18 18:48:03 +00:00

68 lines
2.2 KiB
Plaintext

// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
part of web_audio;
$(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS {
$!MEMBERS
factory AudioContext() => JS('AudioContext',
'new (window.AudioContext || window.webkitAudioContext)()');
GainNode createGain() {
if (JS('bool', '#.createGain !== undefined', this)) {
return JS('GainNode', '#.createGain()', this);
} else {
return JS('GainNode', '#.createGainNode()', this);
}
}
ScriptProcessorNode createScriptProcessor([int bufferSize,
int numberOfInputChannels, int numberOfOutputChannels]) {
var function = JS(
'=Object',
'#.createScriptProcessor || '
'#.createJavaScriptNode',
this,
this);
if (numberOfOutputChannels != null) {
return JS('ScriptProcessorNode', '#.call(#, #, #, #)', function, this,
bufferSize, numberOfInputChannels, numberOfOutputChannels);
} else if (numberOfInputChannels != null) {
return JS('ScriptProcessorNode', '#.call(#, #, #)', function, this,
bufferSize, numberOfInputChannels);
} else if (bufferSize != null) {
return JS(
'ScriptProcessorNode', '#.call(#, #)', function, this, bufferSize);
} else {
return JS(
'ScriptProcessorNode', '#.call(#)', function, this);
}
}
@JSName('decodeAudioData')
Future _decodeAudioData(ByteBuffer audioData,
[DecodeSuccessCallback successCallback,
DecodeErrorCallback errorCallback]) native;
Future<AudioBuffer> decodeAudioData(ByteBuffer audioData,
[DecodeSuccessCallback successCallback,
DecodeErrorCallback errorCallback]) {
if (successCallback != null && errorCallback != null) {
return _decodeAudioData(audioData, successCallback, errorCallback);
}
var completer = new Completer<AudioBuffer>();
_decodeAudioData(audioData, (value) {
completer.complete(value);
}, (error) {
if (error == null) {
completer.completeError('');
} else {
completer.completeError(error);
}
});
return completer.future;
}
}