void JSAudioBufferSourceNode::setBuffer(ExecState* exec, JSValue value)
{
    AudioBufferSourceNode* imp = static_cast<AudioBufferSourceNode*>(impl());
    AudioBuffer* buffer = toAudioBuffer(value);
    if (!buffer) {
        throwError(exec, createSyntaxError(exec, "Value is not of type AudioBuffer"));
        return;
    }
    
    if (!imp->setBuffer(buffer))
        throwError(exec, createSyntaxError(exec, "AudioBuffer unsupported number of channels"));
}
void V8AudioBufferSourceNode::bufferAttrSetterCustom(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
{
    v8::Handle<v8::Object> holder = info.Holder();
    AudioBufferSourceNode* imp = V8AudioBufferSourceNode::toNative(holder);

    AudioBuffer* buffer = 0;
    if (V8AudioBuffer::HasInstance(value, info.GetIsolate(), worldType(info.GetIsolate()))) {
        buffer = V8AudioBuffer::toNative(value->ToObject());
        if (buffer && !imp->setBuffer(buffer)) {
            throwTypeError("AudioBuffer unsupported number of channels", info.GetIsolate());
            return;
        }
    }
    
    if (!buffer) {
        throwTypeError("Value is not of type AudioBuffer", info.GetIsolate());
        return;
    }
}
Example #3
0
void V8AudioBufferSourceNode::bufferAccessorSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
{
    INC_STATS("DOM.AudioBufferSourceNode.buffer._set");
    v8::Handle<v8::Object> holder = info.Holder();
    AudioBufferSourceNode* imp = V8AudioBufferSourceNode::toNative(holder);

    AudioBuffer* buffer = 0;
    if (V8AudioBuffer::HasInstance(value)) {
        buffer = V8AudioBuffer::toNative(value->ToObject());
        if (buffer && !imp->setBuffer(buffer)) {
            throwError("AudioBuffer unsupported number of channels");
            return;
        }
    }

    if (!buffer) {
        throwError("Value is not of type AudioBuffer");
        return;
    }
}
void JSAudioBufferSourceNode::setBuffer(ExecState*, JSValue value)
{
    AudioBufferSourceNode* imp = static_cast<AudioBufferSourceNode*>(impl());
    imp->setBuffer(toAudioBuffer(value));
}