Title: [110951] trunk
Revision
110951
Author
[email protected]
Date
2012-03-15 23:56:11 -0700 (Thu, 15 Mar 2012)

Log Message

Expose attack, release as DynamicsCompressorNode's attributes.
https://bugs.webkit.org/show_bug.cgi?id=81221

Patch by Gao Chun <[email protected]> on 2012-03-15
Reviewed by Chris Rogers.

Source/WebCore:

Test: webaudio/dynamicscompressor-basic.html

* platform/audio/DynamicsCompressor.h:
(DynamicsCompressor):
* webaudio/DynamicsCompressorNode.cpp:
(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
(WebCore::DynamicsCompressorNode::process):
* webaudio/DynamicsCompressorNode.h:
(WebCore::DynamicsCompressorNode::attack):
(WebCore::DynamicsCompressorNode::release):
(DynamicsCompressorNode):
* webaudio/DynamicsCompressorNode.idl:

LayoutTests:

* webaudio/dynamicscompressor-basic-expected.txt:
* webaudio/dynamicscompressor-basic.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (110950 => 110951)


--- trunk/LayoutTests/ChangeLog	2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/LayoutTests/ChangeLog	2012-03-16 06:56:11 UTC (rev 110951)
@@ -1,3 +1,13 @@
+2012-03-15  Gao Chun  <[email protected]>
+
+        Expose attack, release as DynamicsCompressorNode's attributes.
+        https://bugs.webkit.org/show_bug.cgi?id=81221
+
+        Reviewed by Chris Rogers.
+
+        * webaudio/dynamicscompressor-basic-expected.txt:
+        * webaudio/dynamicscompressor-basic.html:
+
 2012-03-15  Hans Wennborg  <[email protected]>
 
         Speech _javascript_ API: SpeechRecognition, Controller and Client

Modified: trunk/LayoutTests/webaudio/dynamicscompressor-basic-expected.txt (110950 => 110951)


--- trunk/LayoutTests/webaudio/dynamicscompressor-basic-expected.txt	2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/LayoutTests/webaudio/dynamicscompressor-basic-expected.txt	2012-03-16 06:56:11 UTC (rev 110951)
@@ -5,6 +5,8 @@
 PASS threshold attribute has correct default value.
 PASS knee attribute has correct default value.
 PASS ratio attribute has correct default value.
+PASS attack attribute has correct default value.
+PASS release attribute has correct default value.
 PASS successfullyParsed is true
 
 TEST COMPLETE

Modified: trunk/LayoutTests/webaudio/dynamicscompressor-basic.html (110950 => 110951)


--- trunk/LayoutTests/webaudio/dynamicscompressor-basic.html	2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/LayoutTests/webaudio/dynamicscompressor-basic.html	2012-03-16 06:56:11 UTC (rev 110951)
@@ -43,6 +43,16 @@
         else
             testFailed("ratio attribute has incorrect default value.");
         
+        if (compressor.attack.value - 0.003 < 1e-7)
+            testPassed("attack attribute has correct default value.");
+        else
+            testFailed("attack attribute has incorrect default value.");
+
+        if (compressor.release.value - 0.25 < 1e-7)
+            testPassed("release attribute has correct default value.");
+        else
+            testFailed("release attribute has incorrect default value.");
+
     } catch(e) {
         testFailed("Exception thrown when accessing DynamicsCompressorNode attributes.");
     }

Modified: trunk/Source/WebCore/ChangeLog (110950 => 110951)


--- trunk/Source/WebCore/ChangeLog	2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/Source/WebCore/ChangeLog	2012-03-16 06:56:11 UTC (rev 110951)
@@ -1,3 +1,23 @@
+2012-03-15  Gao Chun  <[email protected]>
+
+        Expose attack, release as DynamicsCompressorNode's attributes.
+        https://bugs.webkit.org/show_bug.cgi?id=81221
+
+        Reviewed by Chris Rogers.
+
+        Test: webaudio/dynamicscompressor-basic.html
+
+        * platform/audio/DynamicsCompressor.h:
+        (DynamicsCompressor):
+        * webaudio/DynamicsCompressorNode.cpp:
+        (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
+        (WebCore::DynamicsCompressorNode::process):
+        * webaudio/DynamicsCompressorNode.h:
+        (WebCore::DynamicsCompressorNode::attack):
+        (WebCore::DynamicsCompressorNode::release):
+        (DynamicsCompressorNode):
+        * webaudio/DynamicsCompressorNode.idl:
+
 2012-03-15  Hans Wennborg  <[email protected]>
 
         Speech _javascript_ API: SpeechRecognition, Controller and Client

Modified: trunk/Source/WebCore/platform/audio/DynamicsCompressor.h (110950 => 110951)


--- trunk/Source/WebCore/platform/audio/DynamicsCompressor.h	2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/Source/WebCore/platform/audio/DynamicsCompressor.h	2012-03-16 06:56:11 UTC (rev 110951)
@@ -85,8 +85,6 @@
     unsigned m_numberOfChannels;
 
     // m_parameters holds the tweakable compressor parameters.
-    // FIXME: expose some of the most important ones (such as threshold, attack, release)
-    // as DynamicsCompressorNode attributes.
     float m_parameters[ParamLast];
     void initializeParameters();
 

Modified: trunk/Source/WebCore/webaudio/DynamicsCompressorNode.cpp (110950 => 110951)


--- trunk/Source/WebCore/webaudio/DynamicsCompressorNode.cpp	2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/Source/WebCore/webaudio/DynamicsCompressorNode.cpp	2012-03-16 06:56:11 UTC (rev 110951)
@@ -50,11 +50,15 @@
     m_knee = AudioParam::create("knee", 30, 0, 40);
     m_ratio = AudioParam::create("ratio", 12, 1, 20);
     m_reduction = AudioParam::create("reduction", 0, -20, 0);
+    m_attack = AudioParam::create("attack", 0.003, 0, 1);
+    m_release = AudioParam::create("release", 0.250, 0, 1);
 
     m_threshold->setContext(context);
     m_knee->setContext(context);
     m_ratio->setContext(context);
     m_reduction->setContext(context);
+    m_attack->setContext(context);
+    m_release->setContext(context);
 
     initialize();
 }
@@ -72,10 +76,14 @@
     float threshold = m_threshold->value();
     float knee = m_knee->value();
     float ratio = m_ratio->value();
+    float attack = m_attack->value();
+    float release = m_release->value();
 
     m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamThreshold, threshold);
     m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamKnee, knee);
     m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamRatio, ratio);
+    m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamAttack, attack);
+    m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamRelease, release);
 
     m_dynamicsCompressor->process(input(0)->bus(), outputBus, framesToProcess);
 

Modified: trunk/Source/WebCore/webaudio/DynamicsCompressorNode.h (110950 => 110951)


--- trunk/Source/WebCore/webaudio/DynamicsCompressorNode.h	2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/Source/WebCore/webaudio/DynamicsCompressorNode.h	2012-03-16 06:56:11 UTC (rev 110951)
@@ -52,6 +52,8 @@
     AudioParam* threshold() { return m_threshold.get(); }
     AudioParam* knee() { return m_knee.get(); }
     AudioParam* ratio() { return m_ratio.get(); }
+    AudioParam* attack() { return m_attack.get(); }
+    AudioParam* release() { return m_release.get(); }
 
     // Amount by which the compressor is currently compressing the signal in decibels.
     AudioParam* reduction() { return m_reduction.get(); }
@@ -67,6 +69,8 @@
     RefPtr<AudioParam> m_knee;
     RefPtr<AudioParam> m_ratio;
     RefPtr<AudioParam> m_reduction;
+    RefPtr<AudioParam> m_attack;
+    RefPtr<AudioParam> m_release;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/webaudio/DynamicsCompressorNode.idl (110950 => 110951)


--- trunk/Source/WebCore/webaudio/DynamicsCompressorNode.idl	2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/Source/WebCore/webaudio/DynamicsCompressorNode.idl	2012-03-16 06:56:11 UTC (rev 110951)
@@ -31,5 +31,7 @@
         readonly attribute AudioParam knee; // in Decibels
         readonly attribute AudioParam ratio; // unit-less
         readonly attribute AudioParam reduction; // in Decibels
+        readonly attribute AudioParam attack; // in Seconds
+        readonly attribute AudioParam release; // in Seconds
     };
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to