OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2010, Google Inc. All rights reserved. | 2 * Copyright (C) 2010, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
11 * documentation and/or other materials provided with the distribution. | 11 * documentation and/or other materials provided with the distribution. |
12 * | 12 * |
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN Y | 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN Y |
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
16 * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN Y | 16 * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN Y |
17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
18 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 18 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
19 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O N | 19 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O N |
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
22 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 22 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
23 */ | 23 */ |
24 | 24 |
25 #include "bindings/core/v8/ExceptionMessages.h" | 25 #include "bindings/core/v8/ExceptionMessages.h" |
26 #include "bindings/core/v8/ExceptionState.h" | 26 #include "bindings/core/v8/ExceptionState.h" |
27 #include "core/dom/ExceptionCode.h" | 27 #include "core/dom/ExceptionCode.h" |
28 #include "core/frame/UseCounter.h" | 28 #include "core/frame/UseCounter.h" |
29 #include "modules/webaudio/AudioBufferSourceNode.h" | 29 #include "modules/webaudio/AudioBufferSourceNode.h" |
30 #include "modules/webaudio/AudioBufferSourceOptions.h" | |
30 #include "modules/webaudio/AudioNodeOutput.h" | 31 #include "modules/webaudio/AudioNodeOutput.h" |
31 #include "modules/webaudio/BaseAudioContext.h" | 32 #include "modules/webaudio/BaseAudioContext.h" |
32 #include "platform/FloatConversion.h" | 33 #include "platform/FloatConversion.h" |
33 #include "platform/audio/AudioUtilities.h" | 34 #include "platform/audio/AudioUtilities.h" |
34 #include "wtf/MathExtras.h" | 35 #include "wtf/MathExtras.h" |
35 #include "wtf/PtrUtil.h" | 36 #include "wtf/PtrUtil.h" |
36 #include <algorithm> | 37 #include <algorithm> |
37 | 38 |
38 namespace blink { | 39 namespace blink { |
39 | 40 |
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
607 DCHECK(isMainThread()); | 608 DCHECK(isMainThread()); |
608 | 609 |
609 if (context.isContextClosed()) { | 610 if (context.isContextClosed()) { |
610 context.throwExceptionForClosedState(exceptionState); | 611 context.throwExceptionForClosedState(exceptionState); |
611 return nullptr; | 612 return nullptr; |
612 } | 613 } |
613 | 614 |
614 return new AudioBufferSourceNode(context); | 615 return new AudioBufferSourceNode(context); |
615 } | 616 } |
616 | 617 |
618 AudioBufferSourceNode* AudioBufferSourceNode::create(BaseAudioContext* context, AudioBufferSourceOptions& options, ExceptionState& exceptionState) | |
619 { | |
hongchan
2016/09/08 21:41:11
I prefer to have a DCHECK here.
Raymond Toy
2016/09/08 21:58:00
DCHECK what?
| |
620 AudioBufferSourceNode* node = create(*context, exceptionState); | |
621 | |
622 if (!node) | |
623 return node; | |
hongchan
2016/09/08 21:41:11
nullptr?
| |
624 | |
625 if (options.hasBuffer()) | |
626 node->setBuffer(options.buffer(), exceptionState); | |
627 if (options.hasDetune()) | |
628 node->detune()->setValue(options.detune()); | |
629 if (options.hasLoop()) | |
630 node->setLoop(options.loop()); | |
631 if (options.hasLoopEnd()) | |
632 node->setLoopEnd(options.loopEnd()); | |
633 if (options.hasLoopStart()) | |
634 node->setLoopStart(options.loopStart()); | |
635 if (options.hasPlaybackRate()) | |
636 node->playbackRate()->setValue(options.playbackRate()); | |
637 | |
638 return node; | |
639 } | |
640 | |
617 DEFINE_TRACE(AudioBufferSourceNode) | 641 DEFINE_TRACE(AudioBufferSourceNode) |
618 { | 642 { |
619 visitor->trace(m_playbackRate); | 643 visitor->trace(m_playbackRate); |
620 visitor->trace(m_detune); | 644 visitor->trace(m_detune); |
621 AudioScheduledSourceNode::trace(visitor); | 645 AudioScheduledSourceNode::trace(visitor); |
622 } | 646 } |
623 | 647 |
624 AudioBufferSourceHandler& AudioBufferSourceNode::audioBufferSourceHandler() cons t | 648 AudioBufferSourceHandler& AudioBufferSourceNode::audioBufferSourceHandler() cons t |
625 { | 649 { |
626 return static_cast<AudioBufferSourceHandler&>(handler()); | 650 return static_cast<AudioBufferSourceHandler&>(handler()); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
690 { | 714 { |
691 audioBufferSourceHandler().start(when, grainOffset, exceptionState); | 715 audioBufferSourceHandler().start(when, grainOffset, exceptionState); |
692 } | 716 } |
693 | 717 |
694 void AudioBufferSourceNode::start(double when, double grainOffset, double grainD uration, ExceptionState& exceptionState) | 718 void AudioBufferSourceNode::start(double when, double grainOffset, double grainD uration, ExceptionState& exceptionState) |
695 { | 719 { |
696 audioBufferSourceHandler().start(when, grainOffset, grainDuration, exception State); | 720 audioBufferSourceHandler().start(when, grainOffset, grainDuration, exception State); |
697 } | 721 } |
698 | 722 |
699 } // namespace blink | 723 } // namespace blink |
OLD | NEW |