Changeset 91281 in webkit


Ignore:
Timestamp:
Jul 19, 2011 11:59:35 AM (13 years ago)
Author:
crogers@google.com
Message:

Implement WaveShaperNode for Web Audio API
https://bugs.webkit.org/show_bug.cgi?id=64644

Reviewed by Kenneth Russell.

No new tests since audio API is not yet implemented.

  • DerivedSources.make:
  • WebCore.gypi:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSWaveShaperNodeCustom.cpp: Added.

(WebCore::JSWaveShaperNode::setCurve):

  • webaudio/AudioContext.cpp:

(WebCore::AudioContext::createWaveShaper):

  • webaudio/AudioContext.h:
  • webaudio/AudioContext.idl:
  • webaudio/AudioNode.h:
  • webaudio/WaveShaperDSPKernel.cpp: Added.

(WebCore::WaveShaperDSPKernel::process):

  • webaudio/WaveShaperDSPKernel.h: Added.

(WebCore::WaveShaperDSPKernel::WaveShaperDSPKernel):
(WebCore::WaveShaperDSPKernel::reset):
(WebCore::WaveShaperDSPKernel::waveShaperProcessor):

  • webaudio/WaveShaperNode.cpp: Added.

(WebCore::WaveShaperNode::WaveShaperNode):
(WebCore::WaveShaperNode::setCurve):
(WebCore::WaveShaperNode::curve):

  • webaudio/WaveShaperNode.h: Added.

(WebCore::WaveShaperNode::create):
(WebCore::WaveShaperNode::waveShaperProcessor):

  • webaudio/WaveShaperNode.idl: Added.
  • webaudio/WaveShaperProcessor.cpp: Added.

(WebCore::WaveShaperProcessor::WaveShaperProcessor):
(WebCore::WaveShaperProcessor::~WaveShaperProcessor):
(WebCore::WaveShaperProcessor::createKernel):
(WebCore::WaveShaperProcessor::setCurve):
(WebCore::WaveShaperProcessor::process):

  • webaudio/WaveShaperProcessor.h: Added.

(WebCore::WaveShaperProcessor::curve):

Location:
trunk/Source/WebCore
Files:
8 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r91277 r91281  
     12011-07-19  Chris Rogers  <crogers@google.com>
     2
     3        Implement WaveShaperNode for Web Audio API
     4        https://bugs.webkit.org/show_bug.cgi?id=64644
     5
     6        Reviewed by Kenneth Russell.
     7       
     8        No new tests since audio API is not yet implemented.
     9
     10        * DerivedSources.make:
     11        * WebCore.gypi:
     12        * WebCore.xcodeproj/project.pbxproj:
     13        * bindings/js/JSWaveShaperNodeCustom.cpp: Added.
     14        (WebCore::JSWaveShaperNode::setCurve):
     15        * webaudio/AudioContext.cpp:
     16        (WebCore::AudioContext::createWaveShaper):
     17        * webaudio/AudioContext.h:
     18        * webaudio/AudioContext.idl:
     19        * webaudio/AudioNode.h:
     20        * webaudio/WaveShaperDSPKernel.cpp: Added.
     21        (WebCore::WaveShaperDSPKernel::process):
     22        * webaudio/WaveShaperDSPKernel.h: Added.
     23        (WebCore::WaveShaperDSPKernel::WaveShaperDSPKernel):
     24        (WebCore::WaveShaperDSPKernel::reset):
     25        (WebCore::WaveShaperDSPKernel::waveShaperProcessor):
     26        * webaudio/WaveShaperNode.cpp: Added.
     27        (WebCore::WaveShaperNode::WaveShaperNode):
     28        (WebCore::WaveShaperNode::setCurve):
     29        (WebCore::WaveShaperNode::curve):
     30        * webaudio/WaveShaperNode.h: Added.
     31        (WebCore::WaveShaperNode::create):
     32        (WebCore::WaveShaperNode::waveShaperProcessor):
     33        * webaudio/WaveShaperNode.idl: Added.
     34        * webaudio/WaveShaperProcessor.cpp: Added.
     35        (WebCore::WaveShaperProcessor::WaveShaperProcessor):
     36        (WebCore::WaveShaperProcessor::~WaveShaperProcessor):
     37        (WebCore::WaveShaperProcessor::createKernel):
     38        (WebCore::WaveShaperProcessor::setCurve):
     39        (WebCore::WaveShaperProcessor::process):
     40        * webaudio/WaveShaperProcessor.h: Added.
     41        (WebCore::WaveShaperProcessor::curve):
     42
    1432011-07-19  Robert Hogan  <robert@webkit.org>
    244
  • trunk/Source/WebCore/DerivedSources.make

    r89567 r91281  
    7979    OfflineAudioCompletionEvent \
    8080    RealtimeAnalyserNode \
     81    WaveShaperNode \
    8182    BarInfo \
    8283    BeforeLoadEvent \
  • trunk/Source/WebCore/WebCore.gypi

    r91250 r91281  
    14491449            'webaudio/OfflineAudioCompletionEvent.idl',
    14501450            'webaudio/RealtimeAnalyserNode.idl',
     1451            'webaudio/WaveShaperNode.idl',
    14511452            'websockets/CloseEvent.idl',
    14521453            'websockets/WebSocket.idl',
     
    60576058            'webaudio/RealtimeAnalyserNode.cpp',
    60586059            'webaudio/RealtimeAnalyserNode.h',
     6060            'webaudio/WaveShaperDSPKernel.cpp',
     6061            'webaudio/WaveShaperDSPKernel.h',
     6062            'webaudio/WaveShaperNode.cpp',
     6063            'webaudio/WaveShaperNode.h',
     6064            'webaudio/WaveShaperProcessor.cpp',
     6065            'webaudio/WaveShaperProcessor.h',
    60596066            'websockets/CloseEvent.h',
    60606067            'websockets/ThreadableWebSocketChannel.cpp',
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r91250 r91281  
    58615861                FD7868B9136B999200D403DF /* JSDynamicsCompressorNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7868B7136B999200D403DF /* JSDynamicsCompressorNode.cpp */; };
    58625862                FD7868BA136B999200D403DF /* JSDynamicsCompressorNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FD7868B8136B999200D403DF /* JSDynamicsCompressorNode.h */; };
     5863                FD7F299113D4C0CB00AD9535 /* WaveShaperDSPKernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7F298A13D4C0CB00AD9535 /* WaveShaperDSPKernel.cpp */; };
     5864                FD7F299213D4C0CB00AD9535 /* WaveShaperDSPKernel.h in Headers */ = {isa = PBXBuildFile; fileRef = FD7F298B13D4C0CB00AD9535 /* WaveShaperDSPKernel.h */; };
     5865                FD7F299313D4C0CB00AD9535 /* WaveShaperNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7F298C13D4C0CB00AD9535 /* WaveShaperNode.cpp */; };
     5866                FD7F299413D4C0CB00AD9535 /* WaveShaperNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FD7F298D13D4C0CB00AD9535 /* WaveShaperNode.h */; };
     5867                FD7F299613D4C0CB00AD9535 /* WaveShaperProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7F298F13D4C0CB00AD9535 /* WaveShaperProcessor.cpp */; };
     5868                FD7F299713D4C0CB00AD9535 /* WaveShaperProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = FD7F299013D4C0CB00AD9535 /* WaveShaperProcessor.h */; };
     5869                FD82D7F713D4C8BD004E4372 /* JSWaveShaperNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD82D7F513D4C8BD004E4372 /* JSWaveShaperNode.cpp */; };
     5870                FD82D7F813D4C8BD004E4372 /* JSWaveShaperNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FD82D7F613D4C8BD004E4372 /* JSWaveShaperNode.h */; };
     5871                FD8E9BDF13D4CD2B0050DC72 /* JSWaveShaperNodeCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD8E9BDE13D4CD2B0050DC72 /* JSWaveShaperNodeCustom.cpp */; };
    58635872                FDA15E9D12B03EE1003A583A /* JSAudioBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDA15E8112B03EE1003A583A /* JSAudioBuffer.cpp */; };
    58645873                FDA15E9E12B03EE1003A583A /* JSAudioBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA15E8212B03EE1003A583A /* JSAudioBuffer.h */; };
     
    1258212591                FD7868B7136B999200D403DF /* JSDynamicsCompressorNode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDynamicsCompressorNode.cpp; sourceTree = "<group>"; };
    1258312592                FD7868B8136B999200D403DF /* JSDynamicsCompressorNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDynamicsCompressorNode.h; sourceTree = "<group>"; };
     12593                FD7F298A13D4C0CB00AD9535 /* WaveShaperDSPKernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WaveShaperDSPKernel.cpp; sourceTree = "<group>"; };
     12594                FD7F298B13D4C0CB00AD9535 /* WaveShaperDSPKernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WaveShaperDSPKernel.h; sourceTree = "<group>"; };
     12595                FD7F298C13D4C0CB00AD9535 /* WaveShaperNode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WaveShaperNode.cpp; sourceTree = "<group>"; };
     12596                FD7F298D13D4C0CB00AD9535 /* WaveShaperNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WaveShaperNode.h; sourceTree = "<group>"; };
     12597                FD7F298E13D4C0CB00AD9535 /* WaveShaperNode.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WaveShaperNode.idl; sourceTree = "<group>"; };
     12598                FD7F298F13D4C0CB00AD9535 /* WaveShaperProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WaveShaperProcessor.cpp; sourceTree = "<group>"; };
     12599                FD7F299013D4C0CB00AD9535 /* WaveShaperProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WaveShaperProcessor.h; sourceTree = "<group>"; };
     12600                FD82D7F513D4C8BD004E4372 /* JSWaveShaperNode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWaveShaperNode.cpp; sourceTree = "<group>"; };
     12601                FD82D7F613D4C8BD004E4372 /* JSWaveShaperNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWaveShaperNode.h; sourceTree = "<group>"; };
     12602                FD8E9BDE13D4CD2B0050DC72 /* JSWaveShaperNodeCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWaveShaperNodeCustom.cpp; sourceTree = "<group>"; };
    1258412603                FDA15E8112B03EE1003A583A /* JSAudioBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSAudioBuffer.cpp; sourceTree = "<group>"; };
    1258512604                FDA15E8212B03EE1003A583A /* JSAudioBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSAudioBuffer.h; sourceTree = "<group>"; };
     
    1853618555                                49EECF7610508D9C00099FAB /* JSUint32ArrayCustom.cpp */,
    1853718556                                49EECF7510508D9C00099FAB /* JSUint8ArrayCustom.cpp */,
     18557                                FD8E9BDE13D4CD2B0050DC72 /* JSWaveShaperNodeCustom.cpp */,
    1853818558                                49EED14C1051971A00099FAB /* JSWebGLRenderingContextCustom.cpp */,
    1853918559                                319E68861327C911004AC91A /* JSWebKitAnimationCustom.cpp */,
     
    1997419994                                FD315FF412B0267600C1A359 /* RealtimeAnalyserNode.h */,
    1997519995                                FD315FF512B0267600C1A359 /* RealtimeAnalyserNode.idl */,
     19996                                FD7F298A13D4C0CB00AD9535 /* WaveShaperDSPKernel.cpp */,
     19997                                FD7F298B13D4C0CB00AD9535 /* WaveShaperDSPKernel.h */,
     19998                                FD7F298C13D4C0CB00AD9535 /* WaveShaperNode.cpp */,
     19999                                FD7F298D13D4C0CB00AD9535 /* WaveShaperNode.h */,
     20000                                FD7F298E13D4C0CB00AD9535 /* WaveShaperNode.idl */,
     20001                                FD7F298F13D4C0CB00AD9535 /* WaveShaperProcessor.cpp */,
     20002                                FD7F299013D4C0CB00AD9535 /* WaveShaperProcessor.h */,
    1997620003                        );
    1997720004                        path = webaudio;
     
    2011120138                                FDA15EC712B03F50003A583A /* JSRealtimeAnalyserNode.cpp */,
    2011220139                                FDA15EC812B03F50003A583A /* JSRealtimeAnalyserNode.h */,
     20140                                FD82D7F513D4C8BD004E4372 /* JSWaveShaperNode.cpp */,
     20141                                FD82D7F613D4C8BD004E4372 /* JSWaveShaperNode.h */,
    2011320142                        );
    2011420143                        name = WebAudio;
     
    2311123140                                4945BFD413CF809000CC3B38 /* TransformState.h in Headers */,
    2311223141                                4969B0F313D0B33F00DF3521 /* HitTestingTransformState.h in Headers */,
     23142                                FD7F299213D4C0CB00AD9535 /* WaveShaperDSPKernel.h in Headers */,
     23143                                FD7F299413D4C0CB00AD9535 /* WaveShaperNode.h in Headers */,
     23144                                FD7F299713D4C0CB00AD9535 /* WaveShaperProcessor.h in Headers */,
     23145                                FD82D7F813D4C8BD004E4372 /* JSWaveShaperNode.h in Headers */,
    2311323146                                5913A24213D49EBA00F5B05C /* IdentifiersFactory.h in Headers */,
    2311423147                        );
     
    2588325916                                4945BFD313CF809000CC3B38 /* TransformState.cpp in Sources */,
    2588425917                                4969B0F213D0B33F00DF3521 /* HitTestingTransformState.cpp in Sources */,
     25918                                FD7F299113D4C0CB00AD9535 /* WaveShaperDSPKernel.cpp in Sources */,
     25919                                FD7F299313D4C0CB00AD9535 /* WaveShaperNode.cpp in Sources */,
     25920                                FD7F299613D4C0CB00AD9535 /* WaveShaperProcessor.cpp in Sources */,
     25921                                FD82D7F713D4C8BD004E4372 /* JSWaveShaperNode.cpp in Sources */,
     25922                                FD8E9BDF13D4CD2B0050DC72 /* JSWaveShaperNodeCustom.cpp in Sources */,
    2588525923                                5913A24113D49EBA00F5B05C /* IdentifiersFactory.cpp in Sources */,
    2588625924                        );
  • trunk/Source/WebCore/webaudio/AudioContext.cpp

    r90853 r91281  
    5757#include "PlatformString.h"
    5858#include "RealtimeAnalyserNode.h"
     59#include "WaveShaperNode.h"
    5960#include "ScriptCallStack.h"
    6061
     
    325326}
    326327
     328PassRefPtr<WaveShaperNode> AudioContext::createWaveShaper()
     329{
     330    ASSERT(isMainThread());
     331    lazyInitialize();
     332    return WaveShaperNode::create(this);
     333}
     334
    327335PassRefPtr<LowPass2FilterNode> AudioContext::createLowPass2Filter()
    328336{
  • trunk/Source/WebCore/webaudio/AudioContext.h

    r90853 r91281  
    6161class DynamicsCompressorNode;
    6262class RealtimeAnalyserNode;
     63class WaveShaperNode;
    6364class JavaScriptAudioNode;
    6465
     
    108109    PassRefPtr<AudioGainNode> createGainNode();
    109110    PassRefPtr<BiquadFilterNode> createBiquadFilter();
     111    PassRefPtr<WaveShaperNode> createWaveShaper();
    110112    PassRefPtr<DelayNode> createDelayNode();
    111113    PassRefPtr<LowPass2FilterNode> createLowPass2Filter();
  • trunk/Source/WebCore/webaudio/AudioContext.idl

    r89789 r91281  
    6565        DelayNode createDelayNode();
    6666        BiquadFilterNode createBiquadFilter();
     67        WaveShaperNode createWaveShaper();
    6768        LowPass2FilterNode createLowPass2Filter();
    6869        HighPass2FilterNode createHighPass2Filter();
  • trunk/Source/WebCore/webaudio/AudioNode.h

    r88380 r91281  
    7070        NodeTypeAnalyser,
    7171        NodeTypeDynamicsCompressor,
     72        NodeTypeWaveShaper,
    7273        NodeTypeEnd
    7374    };
Note: See TracChangeset for help on using the changeset viewer.