Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(254)

Side by Side Diff: third_party/WebKit/Source/modules/webaudio/WaveShaperNode.cpp

Issue 1865583002: Implement BaseAudioContext (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011, Google Inc. All rights reserved. 2 * Copyright (C) 2011, 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 "modules/webaudio/WaveShaperNode.h" 25 #include "modules/webaudio/WaveShaperNode.h"
26 #include "bindings/core/v8/ExceptionMessages.h" 26 #include "bindings/core/v8/ExceptionMessages.h"
27 #include "bindings/core/v8/ExceptionState.h" 27 #include "bindings/core/v8/ExceptionState.h"
28 #include "core/dom/ExceptionCode.h" 28 #include "core/dom/ExceptionCode.h"
29 #include "modules/webaudio/AbstractAudioContext.h"
30 #include "modules/webaudio/AudioBasicProcessorHandler.h" 29 #include "modules/webaudio/AudioBasicProcessorHandler.h"
30 #include "modules/webaudio/BaseAudioContext.h"
31 31
32 namespace blink { 32 namespace blink {
33 33
34 WaveShaperNode::WaveShaperNode(AbstractAudioContext& context) 34 WaveShaperNode::WaveShaperNode(BaseAudioContext& context)
35 : AudioNode(context) 35 : AudioNode(context)
36 { 36 {
37 setHandler(AudioBasicProcessorHandler::create(AudioHandler::NodeTypeWaveShap er, *this, context.sampleRate(), adoptPtr(new WaveShaperProcessor(context.sample Rate(), 1)))); 37 setHandler(AudioBasicProcessorHandler::create(AudioHandler::NodeTypeWaveShap er, *this, context.sampleRate(), adoptPtr(new WaveShaperProcessor(context.sample Rate(), 1))));
38 38
39 handler().initialize(); 39 handler().initialize();
40 } 40 }
41 41
42 WaveShaperProcessor* WaveShaperNode::getWaveShaperProcessor() const 42 WaveShaperProcessor* WaveShaperNode::getWaveShaperProcessor() const
43 { 43 {
44 return static_cast<WaveShaperProcessor*>(static_cast<AudioBasicProcessorHand ler&>(handler()).processor()); 44 return static_cast<WaveShaperProcessor*>(static_cast<AudioBasicProcessorHand ler&>(handler()).processor());
(...skipping 21 matching lines...) Expand all
66 return getWaveShaperProcessor()->curve(); 66 return getWaveShaperProcessor()->curve();
67 } 67 }
68 68
69 void WaveShaperNode::setOversample(const String& type) 69 void WaveShaperNode::setOversample(const String& type)
70 { 70 {
71 ASSERT(isMainThread()); 71 ASSERT(isMainThread());
72 72
73 // This is to synchronize with the changes made in 73 // This is to synchronize with the changes made in
74 // AudioBasicProcessorNode::checkNumberOfChannelsForInput() where we can 74 // AudioBasicProcessorNode::checkNumberOfChannelsForInput() where we can
75 // initialize() and uninitialize(). 75 // initialize() and uninitialize().
76 AbstractAudioContext::AutoLocker contextLocker(context()); 76 BaseAudioContext::AutoLocker contextLocker(context());
77 77
78 if (type == "none") { 78 if (type == "none") {
79 getWaveShaperProcessor()->setOversample(WaveShaperProcessor::OverSampleN one); 79 getWaveShaperProcessor()->setOversample(WaveShaperProcessor::OverSampleN one);
80 } else if (type == "2x") { 80 } else if (type == "2x") {
81 getWaveShaperProcessor()->setOversample(WaveShaperProcessor::OverSample2 x); 81 getWaveShaperProcessor()->setOversample(WaveShaperProcessor::OverSample2 x);
82 } else if (type == "4x") { 82 } else if (type == "4x") {
83 getWaveShaperProcessor()->setOversample(WaveShaperProcessor::OverSample4 x); 83 getWaveShaperProcessor()->setOversample(WaveShaperProcessor::OverSample4 x);
84 } else { 84 } else {
85 ASSERT_NOT_REACHED(); 85 ASSERT_NOT_REACHED();
86 } 86 }
87 } 87 }
88 88
89 String WaveShaperNode::oversample() const 89 String WaveShaperNode::oversample() const
90 { 90 {
91 switch (const_cast<WaveShaperNode*>(this)->getWaveShaperProcessor()->oversam ple()) { 91 switch (const_cast<WaveShaperNode*>(this)->getWaveShaperProcessor()->oversam ple()) {
92 case WaveShaperProcessor::OverSampleNone: 92 case WaveShaperProcessor::OverSampleNone:
93 return "none"; 93 return "none";
94 case WaveShaperProcessor::OverSample2x: 94 case WaveShaperProcessor::OverSample2x:
95 return "2x"; 95 return "2x";
96 case WaveShaperProcessor::OverSample4x: 96 case WaveShaperProcessor::OverSample4x:
97 return "4x"; 97 return "4x";
98 default: 98 default:
99 ASSERT_NOT_REACHED(); 99 ASSERT_NOT_REACHED();
100 return "none"; 100 return "none";
101 } 101 }
102 } 102 }
103 103
104 } // namespace blink 104 } // namespace blink
105 105
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698